Drupal is a registered trademark of Dries Buytaert
cms 2.1.3 Update released for Drupal core (2.1.3)! drupal 10.5.11 Update released for Drupal core (10.5.11)! drupal 11.3.11 Update released for Drupal core (11.3.11)! drupal 11.2.13 Update released for Drupal core (11.2.13)! drupal 10.6.10 Update released for Drupal core (10.6.10)! cms 2.1.2 Update released for Drupal core (2.1.2)! drupal 11.1.10 Update released for Drupal core (11.1.10)! drupal 10.5.10 Update released for Drupal core (10.5.10)! drupal 10.4.10 Update released for Drupal core (10.4.10)! drupal 11.2.12 Update released for Drupal core (11.2.12)! drupal 11.3.10 Update released for Drupal core (11.3.10)! drupal 10.6.9 Update released for Drupal core (10.6.9)! drupal 10.6.8 Update released for Drupal core (10.6.8)! drupal 11.3.9 Update released for Drupal core (11.3.9)! drupal 11.3.8 Update released for Drupal core (11.3.8)! drupal 11.3.7 Update released for Drupal core (11.3.7)! drupal 11.2.11 Update released for Drupal core (11.2.11)! drupal 10.6.7 Update released for Drupal core (10.6.7)! drupal 10.5.9 Update released for Drupal core (10.5.9)! cms 2.1.1 Update released for Drupal core (2.1.1)!

canvas_extjs

95 sites Security covered
View on drupal.org

This module adds a new component source plugin to Canvas that allows you
to integrate external JavaScript-rendered components (like Vue, React, or
Nuxt components) into Canvas pages.

The External JavaScript component source works by:

  • Storing component metadata (props, slots) within Canvas component configuration entities
  • Rendering components using custom JavaScript, either provided as custom Javascript files or loaded via the Custom Elements previews.

Requirements

Usage options

  • JavaScript may be used to render client-side within Drupal, either via custom JavaScript or Custom Elements previews
  • Fully decoupled - via Custom Elements and Lupus Decoupled pages are provided via API and can be rendered fully decoupled, with full server-side rendering support (when provided by the frontend framework)

Related modules

  • The Custom Elements module provides a pluggable component-preview system that may be used to render components. Atm it comes with support for Nuxt. When paired with Lupus CE Renderer provides a full-page API for Canvas pages.
  • Lupus Decoupled builds upon the Custom Elements and Lupus CE Renderer modules to provide an easy to use setup with fully-decoupled frontend rendering.

Useful frontend packages

  • fullfatthings/drupal-canvas-react helps exposing React components to Canvas and generates a component-index.json file to use with this module.
  • The nuxt-component-preview Nuxt-module exposes Vue components to Canvas and generates a component-index.json file to use with this module.

Example frontend


💡Compatibility note

The Canvas External JavaScript Components module builds upon the
Canvas ComponentSource API, which is not yet declared stable. This is
mitigated by the following process:

  • Each release of Canvas External JavaScript Components is only declared
    compatible with the current Canvas minor version (e.g. 1.4.*), not with any
    future versions.
  • When a new Canvas version is released, the module is updated and any
    compatibility issues are checked and addressed before a compatible release is
    published.
  • As a result, you may have to wait a few days before a compatible version for a new Canvas minor version is out. But this ensures updates are always safe and tested.


Activity

Total releases
18
First release
Sep 2025
Latest release
2 weeks ago
Release cadence
14 days
Stability
11% stable

Release Timeline

Releases

Version Type Release date
1.1.0 Stable May 18, 2026
1.0.0 Stable Apr 14, 2026
1.0.0-beta11 Pre-release Mar 26, 2026
1.0.0-beta10 Pre-release Mar 21, 2026
1.0.0-beta9 Pre-release Mar 9, 2026
1.0.0-beta8 Pre-release Mar 6, 2026
1.0.0-beta7 Pre-release Feb 13, 2026
1.0.0-beta6 Pre-release Feb 12, 2026
1.0.0-beta5 Pre-release Jan 14, 2026
1.0.0-beta4 Pre-release Jan 13, 2026
1.0.0-beta3 Pre-release Dec 18, 2025
1.0.0-beta2 Pre-release Dec 5, 2025
1.0.0-beta1 Pre-release Nov 27, 2025
1.0.0-alpha3 Pre-release Nov 24, 2025
1.0.0-alpha2 Pre-release Oct 29, 2025
1.0.0-alpha1 Pre-release Oct 15, 2025
1.0.x-dev Dev Oct 12, 2025
1.x-dev Dev Sep 30, 2025