Install

Works with Drupal: ^11.2

Using Composer to manage Drupal site dependencies

Alternative installation files

Download tar.gz 28.34 MB
MD5: 60b7f908b40ae96ca14da8481b648dd2
SHA-1: 3c719e00063208cea8800b5d4fcedc2843ad88e6
SHA-256: 5036ea314dbfeb034da524b8412ec707815c15f9db71e4975acf3a9038aa0142
Download zip 29.9 MB
MD5: 8fb06e937d00a7ff21fffc21e077d602
SHA-1: 3f04b06eef6acd60031a9ddf42f170728f00a0c8
SHA-256: 46c71824bda0a427418660ece1af71f0a89e2d056b643e9f85191310aa864f88

Release notes

With Drupal Canvas 1.7.0, Translation support is almost ready for full release. It is still experimental and potentially unstable, so requires enabling the canvas_dev_translation submodule (hidden from the UI, but can be enabled via Drush), which we only recommend doing on test sites, not on production sites. However, all Critical bugs with it that have so far been found while testing have been fixed, and we plan to ungate it from the canvas_dev_translation module once it has been tested more thoroughly.

This release also adds a "page" extension type so that developers creating extensions to the Drupal Canvas UI can now create extensions that take over nearly the entire viewport.

Contributors (28)

adaptative, adhariwal, akhil babu, balintbrews, bbrala, bnjmnm, effulgentsia, f.mazeikis, hitchshock, hooroomoo, isholgueras, jucs7, julien, justafish, kunal.sachdev, larowlan, lauriii, marcus_johansson, mark dodgson, mglaman, narendrar, omarlopesino, penyaskito, ravi.maniyar.123, shubham.prakash, tedbow, wim leers, wotnak

Changelog

Issues: 32 issues resolved.

Changes since 1.6.0 (compare):

Bug

  • fix: #3591699 Entity-reference component inputs (e.g. image src) are exposed as translatable, breaking rendering of translated config
  • fix: #3591693 Validate translations (`LanguageConfigOverride`s) of Canvas' config entities even though core doesn't
  • fix: #3591701 Make tests pass again on Drupal 11.3: block config schema changed, `ComponentInputsEvolutionTest` needs to handle <=11.2 vs>11.2 differently
  • fix(Internal HTTP API): #3591689 `redirectCanvasToDefaultLanguage()` causes endless redirect loop when using an invalid langcode prefix
  • fix(Data model): #3591702 Fatal error (AssertionError on dev env) in `ComputedUrlWithQueryString` when a component instance's image references a deleted file
  • fix: #3591705 languageSelect.spec.ts Failing in 1.x
  • fix: #3591705 languageSelect.spec.ts Failing in 1.x - round 2
  • fix: #3591708 Refactor `RequestTrait` to prevent request stack mutation during kernel tests
  • fix(AI): #3591660 Canvas AI: Fix orchestrator UUID lost by setData(); add UUID recovery
  • fix(CLI Tool): #3591717 Flat named component validation in @drupal-canvas/eslint-config misses sibling entrypoints
  • fix(autoSave, internalHttpApi): #3591729 Draft asset library JS asset registered as a file triggers file_get_contents() warning in locale's JS scan

Feature

  • feat: #3590948 Add TMGMT translation integration for content entities
  • feat(Theme builder): #3585355 `content-entity-reference` prop selection UI: a "Typed Data browser" to let a Code Component Developer pick which data to consume
  • feat(Data model): #3583379 `Evaluator` must respect the referencing entity's language when evaluating a referenced entity, or fall back to the negotiated content language
  • feat(Extensions): #3591662 Add "page" extension type for full-screen Canvas extensions
  • feat: #3591695 Include language-aware indexing for ContentTemplate-rendered Canvas content
  • feat(Conflict detection): #3585970 Add conflict detection and resolution UI for selective publishing behind dev flag

Task

  • chore: #3591694 Bump drupal-canvas package to 0.4.2
  • feat(Data model): #3591678 Coalesce reference fields whose values are consumed only through nested objects
  • chore(Project management): #3591706 Submodule info.yml core requirements are not in sync with canvas
  • chore(CLI Tool): #3591707 Remove deprecated upload and download CLI commands
  • refactor(Data model): #3591680 Make `Coalescer` operate on `EntityFieldBasedPropExpressionInterface` objects instead of lists of strings
  • chore(Data model): #3591679 Use string representations of expressions in `CoalescerTest` and `ApiUiContentEntityReferenceControllersTest`
  • chore: #3591709 Update JS packages
  • chore: #3591711 Add feature flag for content entity reference props
  • feat(Auto-save,Internal HTTP API): #3591704 Only show default-language entities when reviewing auto-saved (pending) changes
  • chore(Project management): #3591722 Split the PHPUnit-Kernel test suite across 4 parallel CI jobs instead of 3
  • task: #3591654 Update the delete link generation in ApiLayoutController.php to use canvas.api.config.translation.delete in the template context
  • feat(Data model, translation): #3591596 Symmetric translation: component instance version updates must propagate to all translations
  • chore(Conflict detection): #3591725 Put conflict detection behind a dev mode flag
  • Resolve "Add validation constraint similar to core's `ContentTranslationSynchronizedFieldsConstraint` to guarantee symmetrical translations have the same values as the default translation for non-translatable input keys"
  • task(AI): #3591591 Canvas AI: add layout fixture support so page builder and template builder agent tests can run against a realistic layout
  • refactor(AI): #3591652 Canvas AI: replace hardcoded component source IDs with SOURCE_PLUGIN_ID constants
  • Add built assets for release 1.7.0
Created by: balintbrews
Created on: 25 Jun 2026 at 22:54 UTC
Last updated: 25 Jun 2026 at 22:56 UTC
Bug fixes
New features
Insecure

Other releases