Install
Works with Drupal: ^11.2Using Composer to manage Drupal site dependencies
Alternative installation files
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