Releases: NGXSMK/ngxsmk-ui-kit
Release list
NGXSMK v3.0.0 — Angular 22 Readiness, Accessibility Primitives, Universal Token Engine & AI Developer Tooling
Overview
NGXSMK 3.0.0 is a major release advancing the Angular-first design system ecosystem with full Angular 22 compatibility, enhanced accessibility primitives, design token refinement, automated developer toolchains, and AI assistant capabilities.
This release consolidates 150+ standalone, zoneless-ready, signal-native components and behavioral primitives under a unified @ngxsmk/* namespace.
Highlights
1. Angular 22 & Ivy Partial Compilation Readiness
- Verified and aligned with Angular 22's template type checking, signals-only reactive primitives, and zoneless change detection patterns.
- Resolved template compilation edge cases with
@fortrack expressions and updated phase-aware rendering lifecycle hooks (afterNextRender). - Added robust downlevel iterator compatibility across all package entry points (
DOM.Iterable/ ES2022).
2. New Accessibility & Behavioral Primitives (@ngxsmk/cdk)
- Skip Link (
@ngxsmk/cdk/skip-link): Off-screen keyboard navigation utility that slides into view upon Tab focus, enabling screen-reader and keyboard users to bypass repetitive header navigation. - Roving Focus (
@ngxsmk/cdk/roving-focus): Directive suite implementing the WAI-ARIA roving tabindex pattern for composite widgets like menus, toolbars, grids, and listboxes. - Enhanced Focus Trap & Live Announcer: Improved focus containment and dynamic screen-reader announcement reliability across modal overlays and alert dialogs.
3. Universal Design Token Engine (@ngxsmk/theme)
- Multi-Framework Adapters: Extended runtime CSS variable generator with support for Tailwind CSS v3 / v4 integration and Ionic token variable derivation (
--ion-*). - Runtime Theme Injector (
NgxThemeInjectorService): Server-Side Rendering (SSR)-safe runtime theme injection decoupled from class toggling and storage logic. - Design Tokens: Standardized
--ngxsmk-*custom properties with light, dark, and high-contrast system palettes.
4. CLI, Migration Codemods & Automation (@ngxsmk/cli)
- Migration Engine: Automated migration codemods for seamless upgrades from v1.x and v2.x to v3.0.0 secondary entry points.
- Secondary Entry Point Architecture: Every component and primitive is published as an isolated entry point (e.g.
@ngxsmk/core/button,@ngxsmk/cdk/focus-trap) for tree-shaking and minimal bundle impact. - Cross-Platform Scripting: Hardened publication and build automation scripts with automatic retry logic and Windows file-locking fault tolerance.
5. AI Coding Assistant Surface & MCP Tooling (@ngxsmk/mcp)
- Model Context Protocol Server (
@ngxsmk/mcp): Updated MCP stdio server providing AI agents with live component search (ngxsmk_search_components), API explanation (ngxsmk_explain_api), and layout recommendation (ngxsmk_recommend_layout). - AI Documentation Indices: Auto-generated
llms.txtandllms-full.txtAPI reference files synchronized for LLM consumption. - Claude Code Plugin & Skills: Bundled canonical skill in
plugins/ngxsmkfor AI pair programming.
Detailed Changelog
Added
- Added
@ngxsmk/cdk/skip-linkstandalone component for accessible navigation bypass. - Added
@ngxsmk/cdk/roving-focusdirective suite (NgxsmkRovingFocusGroup,NgxsmkRovingFocusItem). - Added
audit:a11y,audit:seo,audit:complexity, andaudit:consistencyautomated verification suites in CI. - Added complete migration documentation and automated schematics/codemods.
Changed
- Bumped all packages (
@ngxsmk/core,@ngxsmk/theme,@ngxsmk/cdk,@ngxsmk/cli,@ngxsmk/mcp) to3.0.0. - Relaxed
@ngxsmk/corepeer dependency on@ngxsmk/cdkto>=2.0.0. - Updated demo application versioning, headers, sidebars, and release changelog.
- Automated Linux-rendered visual regression baseline updates via CI GitHub Actions workflows.
Fixed
- Fixed
@fortracking expression inNgxsmkReasoningTimelineto eliminate TypeScript class property lookup errors (TS2339). - Fixed invalid projected content fallback in
NgxsmkSkipLinkresolvingNG5002. - Fixed type safety, null checking, and DOM reference typing in
NgxThemeInjectorService. - Fixed
afterNextRenderphase callback signature in the showcase application root. - Fixed
rmSyncfile-lock contentions on Windows environments during build and publish scripts. - Resolved ESLint and Angular template accessibility warnings across all packages and demo pages.
Upgrading to v3.0.0
Install the latest version via npm:
npm install @ngxsmk/core@latest @ngxsmk/theme@latest @ngxsmk/cdk@latestNGXSMK 2.0.0: 24 New Components, Universal Angular 17–20+ Support & MCP AI Engine
Release Version:
v2.0.0
Release Date: July 25, 2026
License: MIT
Angular Target: Angular 17.0.0 - 20.0.0+ (Zoneless Signal APIs)
📋 Table of Contents
🚀 Overview
NGXSMK 2.0.0 represents a major architectural milestone in our Angular design system ecosystem. Rebuilt from the ground up for modern Angular (17 through 20+), version 2.0.0 features:
- 150+ Standalone, Signals-Native Components: Every single primitive uses signals (
input(),output(),model(),computed(),effect()) with zerozone.jsruntime assumptions. - 24 New Components & Enterprise Primitives: Advanced tools including AI reasoning indicators, Kanban boards, rich text editors, image croppers, and data visualizers.
- Universal Cross-Version Build Pipeline: Seamless compilation and runtime execution across Angular 17, 18, 19, and 20+.
- Built-In MCP AI Assistant Integration: Embedded Stdio MCP server (
@ngxsmk/mcp) so AI tools (Claude Code, Antigravity, Cursor) can scaffold and refactor NGXSMK UI code directly.
✨ What's New in 2.0.0
🎨 24 New Signal-Native Components
1. AI Thinking Indicator (@ngxsmk/core/ai-thinking-indicator)
Real-time animated visualizer for AI model reasoning, token generation, and streaming state.
<ngxsmk-ai-thinking-indicator [thinking]="isGenerating()" [label]="'Reasoning...'" />2. Audio Visualizer (@ngxsmk/core/audio-visualizer)
Dynamic SVG audio frequency and wave visualization for voice agents and audio recording interfaces.
<ngxsmk-audio-visualizer [stream]="mediaStream" [barCount]="24" />3. Code Editor (@ngxsmk/core/code-editor)
Lightweight code editor component supporting line numbers, syntax highlighting, and active tab management.
<ngxsmk-code-editor [(code)]="sourceCode" [language]="'typescript'" />4. Compare Image (@ngxsmk/core/compare-image)
Interactive visual diff slider for side-by-side image comparison.
<ngxsmk-compare-image [beforeImage]="'img/before.png'" [afterImage]="'img/after.png'" />5. Credit Card Input (@ngxsmk/core/credit-card-input)
Form control with real-time card brand detection, formatting, and expiration/CVC validation.
<ngxsmk-credit-card-input [(cardNumber)]="cardNumber" [(cvc)]="cvc" />6. File Tree (@ngxsmk/core/file-tree)
Hierarchical file explorer with file-type icons, selection signals, and collapsible folders.
<ngxsmk-file-tree [nodes]="fileStructure()" (nodeSelect)="onFileOpened($event)" />7. Filter Builder (@ngxsmk/core/filter-builder)
Dynamic condition tree builder for complex query filtering in enterprise platforms.
<ngxsmk-filter-builder [(filters)]="filterConditions" [fields]="availableFields" />8. Gauge (@ngxsmk/core/gauge)
Configurable SVG radial gauge meter for key metrics and performance dashboards.
<ngxsmk-gauge [value]="cpuUsage()" [min]="0" [max]="100" [unit]="'%'" />9. Image Cropper (@ngxsmk/core/image-cropper)
Client-side image aspect ratio cropping and manipulation control.
<ngxsmk-image-cropper [src]="avatarUri" (cropComplete)="onCrop($event)" />10. Kanban Board (@ngxsmk/core/kanban-board)
Drag-and-drop task board with column signals, reordering, and item movement events.
<ngxsmk-kanban-board [(columns)]="columnsSignal" (itemDropped)="onTaskMoved($event)" />11. Masonry Grid (@ngxsmk/core/masonry-grid)
Responsive Pinterest-style multi-column layout engine for dynamic card grids.
<ngxsmk-masonry-grid [columns]="3" [gap]="'1rem'">
@for (item of galleryItems(); track item.id) {
<ngxsmk-card>{{ item.title }}</ngxsmk-card>
}
</ngxsmk-masonry-grid>12. Notification Center (@ngxsmk/core/notification-center)
Toast notification queue drawer with unread badges, action triggers, and filter tabs.
<ngxsmk-notification-center [notifications]="notifications()" (markAsRead)="onRead($event)" />13. OTP Input (@ngxsmk/core/otp-input)
Multi-digit security code input field with auto-focus, paste parsing, and mask configuration.
<ngxsmk-otp-input [length]="6" [(value)]="verificationCode" />14. Password Strength Meter (@ngxsmk/core/password-strength-meter)
Entropy calculator with real-time requirement checklists and color-coded progress bars.
<ngxsmk-password-strength-meter [password]="userPassword()" />15. Prompt Input (@ngxsmk/core/prompt-input)
AI prompt composer field with auto-resize textarea, file attachments, and prompt suggestions.
<ngxsmk-prompt-input (submitPrompt)="onSend($event)" />16. Prompt Library (@ngxsmk/core/prompt-library)
Template prompt drawer for storing, searching, and inserting AI system prompts.
<ngxsmk-prompt-library [prompts]="savedPrompts()" (selectPrompt)="insertPrompt($event)" />17. Range Slider (@ngxsmk/core/range-slider)
Dual-thumb numeric range selector for price, date, or threshold bounds.
<ngxsmk-range-slider [(minValue)]="minPrice" [(maxValue)]="maxPrice" [min]="0" [max]="1000" />18. Rich Text Editor (@ngxsmk/core/rich-text-editor)
WYSIWYG HTML document editor component with floating formatting toolbar.
<ngxsmk-rich-text-editor [(content)]="htmlBody" />19. Scroll Spy (@ngxsmk/core/scroll-spy)
Intersection-observer active section navigation watcher for documentation pages.
<ngxsmk-scroll-spy [selectors]="['#intro', '#setup', '#api']" (activeChange)="setActive($event)" />20. Sparkline (@ngxsmk/core/sparkline)
Micro SVG inline trend chart for summary cards and tabular statistics.
<ngxsmk-sparkline [data]="[12, 18, 14, 28, 35, 42]" [color]="'#16a34a'" />21. Stat Trend Card (@ngxsmk/core/stat-trend-card)
Analytical KPI card featuring percentage changes, icon badges, and mini sparklines.
<ngxsmk-stat-trend-card [title]="'MRR'" [value]="'$48,250'" [trend]="'+14.2%'" [isPositive]="true" />22. Timeline Stepper (@ngxsmk/core/timeline-stepper)
Vertical/horizontal step tracker with status indicators, sub-steps, and time timestamps.
<ngxsmk-timeline-stepper [steps]="workflowSteps()" />23. Token Counter (@ngxsmk/core/token-counter)
Real-time LLM token estimator and character counter for prompt optimization.
<ngxsmk-token-counter [text]="promptText()" [model]="'gpt-4o'" />24. Tour (@ngxsmk/core/tour)
Interactive element walkthrough popover guide with backdrop highlighting and step controls.
<ngxsmk-tour [steps]="onboardingSteps" (complete)="onFinishTour()" />🌐 Universal Angular 17–20+ Compatibility
- Multi-Version Toolchain: Integrated compatibility runner (
verify-compat.mjs) ensuring seamless compilation under Angular 17, 18, 19, and 20+. - Secondary Entry Point Path Mappings: Resolved DTS generation for sub-packages (
@ngxsmk/cdk/*,@ngxsmk/theme/*,@ngxsmk/core/*) when compiling partial Ivy FESM bundles. - Zoneless Signal Enforcement: Validated with
npm run check:zonelessto guarantee no runtime imports or coupling tozone.js.
⚡ 100% Design Token Engine Overhaul
- Dynamic Theme CSS: All styling is driven by
--ngxsmk-*CSS custom properties generated bytools/scripts/generate-theme-css.ts. - Pre-packaged Palette CSS: Ships with ready-to-use color schemes (
ngxsmk.css,ngxsmk.violet.css,ngxsmk.emerald.css,ngxsmk.rose.css,ngxsmk.neutral.css). - Dark Mode Support: Native
:root.darkclass overrides with high contrast and WCAG AA accessible color ratios.
🤖 Model Context Protocol (MCP) AI Tooling
- STDIO MCP Server (
packages/mcp): Connect your AI IDE extensions (Claude Code, Antigravity, Cursor) directly to NGXSMK tools:ngxsmk_search_components: Query component APIs and code snippets by keyword.ngxsmk_explain_api: Fetch detailed signal inputs/outputs for any component.ngxsmk_recommend_layout: Get layout recommendations for complex SaaS and AI interfaces.
- Claude Code Skill: Plug-and-play skill in
.claude/skills/using-ngxsmk.
🛠 Breaking Changes & Enhancements
- Kanban Board (
NgxsmkKanbanItem): ChangedcolumnId: stringtocolumnId?: stringso items passed within column item arrays do not require explicitcolumnIdparameters. - Angular Template Syntax: Escaped
@character in template text (!@#$) inpassword-strength-meterto eliminateNG5002control flow block syntax errors on Angular 19/20. - Bundle Baseline Updated: Updated baseline bundle size manifest (
tools/bundle-size-baseline.json) for all 246 library entry points.
📦 Upgrade & Installation Guide
Installation
npm install @ngxsmk/core@latest @ngxsmk/cdk@latest @ngxsmk/theme@latestTheme Setup
Include the NGXSMK theme CSS in your angular.json or main stylesheet:
@import '@ngxsmk/theme/styles/ngxsmk.css';Or generate tailored HSL variables using the CLI:
npx ngxsmk theme:cssNGXSMK 2.0.0 is licensed under the MIT License.
v1.3.2 — AI-agent tooling, generated API reference, and core upgrades
NGXSMK 1.3.2 makes the kit first-class for AI-assisted development, ships a generated API reference, and upgrades core form controls, theming, and CI.
✨ Highlights
AI-agent tooling
@ngxsmk/mcpnow covers all 214 components (up from 3 hand-written entries) — powersngxsmk_search_components,ngxsmk_explain_api, andngxsmk_recommend_layout.- Generated
llms.txt/llms-full.txtcomponent API references at the repo root and served from the demo site. - Claude Code plugin + skill (
.claude/skills/using-ngxsmk) and MCP registry manifest so agents learn the kit's import paths, signal APIs, and theming rules. AGENTS.md/CLAUDE.mdcontributor guidance and atools/scripts/generate-ai-docs.mjsgenerator that keeps everything in sync with component sources.
Generated API Reference page (/api)
- Full API reference for every component/directive — search, category filter, scroll-spy sidebar, sticky headers, copy-selector/import buttons, and
kind/required/two-waybadges. Fully translatable across all 10 locales.
Core
- New form-field component, select family upgrades with proper CVA + overlay behavior, OKLCH color support, and developer-tooling improvements.
Demo consistency
- Unified dotted-grid backgrounds and
ngxsmk-headingusage across docs, API, explorer, templates, themes, and playground pages (token-driven, dark-mode aware).
🐛 Fixes
- GitHub Pages deep links — added a
404.htmlSPA fallback and correctedbase-hrefhandling so routes like/showcase/explorerload directly. - Relative translation loader path for custom base-href subpaths.
- Replaced
ngxsmk.devURLs with the GitHub Pages deploy URL.
🔧 CI / Tooling
- Bundle-size budgets, zoneless guard, axe accessibility audit, and Linux-rendered visual regression baselines.
Full changelog: 1.3.1...1.3.2
v1.3.1: Premium Design Overhaul, Canvas-based Charts, and Runtime i18n
We are excited to release v1.3.1 of the ngxsmk ecosystem! This release brings a premium visual polish to our core component styles, introduces a high-performance HTML5 Canvas chart engine, adds runtime internationalization (i18n) for 10 languages, and includes key library bug fixes.
🚀 What's New
🎨 Design System Overhaul & Refinements
- Unified Focus Rings: Replaced custom outlines with a unified
--ngxsmk-focus-ringshadow token across collapsible, navigation, and menu components. - RTL Logical Spacings: Converted directional margins, paddings, and borders to logical inline/block properties (
*-inline-*), ensuring robust RTL layouts. - Modern Hover Animations: Migrated to advanced CSS
color-mix()rules and cleaned up layout transition hygiene to remove accidental layout jumps. - Typography & Opacity Scaling: Upgraded font-sizes to semantic text roles (
label-*,title-*) and mapped literal opacity rules to muted design tokens.
📊 Shared Canvas Chart Engine
The entire chart family has been rewritten to render directly to HTML5 Canvas (fully DPR-aware and retina-crisp) with responsive container sizing:
- Animations & Interactivity: Added smooth draw-in animations, responsive cartesian grids, custom tooltips on hover, and toggleable legend components.
- Supported Charts: Line, Area, Bar, Pie/Donut, Scatter, Heatmap, and Candlestick charts.
- Diameter Controls: Defaulted
chart-pieto non-responsive by default so that the inputsizedirectly defines the circle diameter.
🌐 Runtime Multi-language (i18n) Support
- Dynamic Switcher: Integrated
@ngx-translate/coreand@ngx-translate/http-loaderfor runtime locale switching. - RTL & Localization: Added a global
LangServicethat persists preferences to storage, updates document headers, and dynamically toggles the layout direction todir="rtl"for Arabic. - 10 Core Languages: Added full translations (1,067+ translation keys) for English, Spanish, Swedish, Arabic, French, German, Chinese, Japanese, Portuguese, and Hindi.
🛠️ Bug Fixes & Library Adjustments
number-input: Resolved bugs where typing decimals or clearing the field was clobbered by value updates. Added step rounding to prevent floating-point inaccuracies.breadcrumb-item: Fixed breadcrumb separator missing issues and content projection dropouts by refactoring to a single-projection architecture.- Workspace Hygiene: Configured
.gitattributesto enforce consistentLFline-endings and resolved all codebase Prettier formatting checks. - Undici & MCP Integration: Added typescript types and mock clients (
MockClient,MockPool,MockInterceptor) to facilitate request testing in@ngxsmk/mcp.
📦 Dependency Upgrades
- Added
@ngx-translate/coreand@ngx-translate/http-loader(v18) - Updated
@ngxsmk/themeand@ngxsmk/mcppackages tov1.3.1
v1.3.0 — SEO utilities, astryx removal & Emerald-as-default theming
Highlights
- New @ngxsmk/core/seo entry point — NgxsmkSeoService + provideSeo() for declarative, runtime-managed SEO (title, description, canonical, robots, Open Graph, Twitter Card, JSON-LD). Ships with 7 unit tests.
- Default preset is now Emerald — the astryx preset has been removed entirely. emeraldPreset is the built-in default; violetPreset, neutralPreset, and rosePreset remain.
Breaking changes
- Removed astryx preset (theme tokens, CLI --preset astryx, generated CSS, playground). If you referenced astryxPreset, migrate to emeraldPreset (its visual successor; primary blue moved to #2563EB).
Improvements
- Repo & package discoverability — added description + keywords to root and package manifests; expanded README with a component catalog, CLI/schematics, a11y, and SEO sections; fixed the theming quick-start example and a dead link.
- Demo site SEO — apps/demo now sets canonical/OG/Twitter/JSON-LD meta via NgxsmkSeoService and ships static fallbacks in index.html.
- Centralized demo version — demo home/templates badge reads from a single APP_VERSION constant.
- Bumped all packages to 1.3.0 (and @ngxsmk/core peer @ngxsmk/cdk to ^1.3.0).
Compatibility
- Requires Angular >=17.3.0. SEO provider uses ENVIRONMENT_INITIALIZER (not the Angular 19+ provideAppInitializer) to stay compatible with the 17.3 floor.
Chores
- Prettier/format cleanup; build:libs, ng test @ngxsmk/core (133 passing), and lint all green.
feat: 1.2.0 — partial-Ivy build fix, expanded components & interactive demo platform
Summary
This release fixes the library NG0203 runtime error by compiling in partial Ivy mode and adds a full interactive demo/documentation platform to the demo app, alongside lint/format/test cleanup.
Highlights
- Library build fix: packages now compile with compilationMode: "partial" (root tsconfig.json), resolving NG0203; cross-entry-point re-exports use package specifiers (@ngxsmk/core/x).
- Component Registry + Search: ComponentRegistry indexes ~100 components; SearchService (MiniSearch) powers live search with idField: 'name'.
- Command Palette: ⌘K/Ctrl+K palette for fast component navigation.
- Theme Context: ThemeContextService for mode, direction (LTR/RTL), and custom CSS overrides.
- Component Explorer: browsable page with category navigation and deep-linking (/showcase/#).
- Interactive Playground: curated live preview for 38 components with an editable prop panel, generated code, and API tables.
Notable fixes - NgxsmkResizeObserver output renamed resize → resized (native DOM event name); spec updated.
- NgxsmkFab selector ngxsmk-fab → ngxsmkFab (camelCase directive-selector); spec + CSS class updated.
- tree-view: added aria-selected + keyboard/focus handling; dropped unused MouseEvent param so the keydown handler type-checks.
- Lint clean (0 errors / 0 warnings), Prettier clean across packages and apps/demo.
Verification - npm run build:libs ✅
- npm run lint ✅ (exit 0, no warnings)
- npm run format:check ✅
- npm test ✅ — theme 12, cdk 21, core 126 (all passing)
v1.1.0 — Command Palette, Prompt Carousel & Angular 17–22 Compatibility
What's new in v1.1.0
✨ New Components
@ngxsmk/core/command-palette— A fully accessible command palette for quick search and actions, with keyboard navigation and fuzzy filtering.@ngxsmk/core/prompt-carousel— A prompt carousel component designed for AI-focused UIs, with animated slide transitions and customizable templates.
🔧 Improvements
- Standardized workspace configuration and Angular builder options across the monorepo.
- Verified and confirmed Angular compatibility matrix: 17.3, 18, 19, 20, 21, and 22 — all supported out of the box.
📦 Packages
| Package | Version |
|---|---|
@ngxsmk/core |
1.1.0 |
@ngxsmk/cdk |
1.1.0 |
@ngxsmk/theme |
1.1.0 |
🚀 Installation
npm install @ngxsmk/core@1.1.0 @ngxsmk/cdk@1.1.0 @ngxsmk/theme@1.1.0Release v1.0.0 — Angular 17.3+ support, npm publish setup & docs
Summary
First stable release of the NGXSMK UI kit. This PR bumps all packages to
1.0.0, widens Angular compatibility to 17.3+ (previously pinned to
Angular 22), and wires up the npm publish pipeline.
What's changed
Version & publishing
- Bumped
@ngxsmk/cdk,@ngxsmk/core,@ngxsmk/theme(and root) to1.0.0. - Added
publishConfig: { "access": "public" }andlicense: "MIT"to all
three library packages. - Updated the
@ngxsmk/cdkpeer range in@ngxsmk/coreto^1.0.0. - Added
npm run publish(builds libs, then publishescdk→theme→core).
Angular 17.3+ compatibility
- Relaxed peer dependencies from
^22.0.0→>=17.3.0. - Fixed
DOCUMENTimports: moved from@angular/coreto@angular/common
(valid in all versions;@angular/coreonly re-exports it from 19+). - Added explicit
standalone: trueto 195 component/directive/pipe decorators
(Angular 17/18 default to non-standalone, which brokeimports/[(x)]). - Fixed
NgxsmkPagination: removed a redundant explicitpageChangeoutput
that conflicted with themodel(page)change emitter (NG1054).
CI & tooling
- Added
.github/workflows/compatibility.yml— builds the three libraries
against Angular 17, 18, 19, 20, 21, and 22. - Added
tools/scripts/gen-ci-angularjson.mjs(generates a libs-only
angular.jsonper major so the build is not blocked by demo/app builder
schema differences). - Added per-package
tsconfig.jsonforng-packagrauto-discovery.
Docs
- README: 17.3+ version note, verified/CI note, "Stable 1.0.0" status, Angular
badge updated to17.3+, and hero taglinev1.0.0 · Signals-native · Zoneless. - Replaced the default Angular-CLI stub READMEs for
cdk/core/themewith
real package docs (compatibility, install, usage, publish path). - Demo changelog page: added the
v1.0.0release entry.
Verification
All three publishable packages compile cleanly on Angular 17.3 (via the v17 CLI
builder) as well as 18–22. npm run build:libs is green on the repo's Angular
22 toolchain, and npm publish ./dist/ngxsmk/cdk --dry-run produces a valid
tarball.
Notes
- The published artifact is built with the lowest supported Angular so the
partial-Ivy output stays forward-compatible. - Publishing still requires
npm loginthennpm run publish(not done here).