Install
Works with Drupal: ^11.3Using Composer to manage Drupal site dependencies
Alternative installation files
Download tar.gz
29.25 MB
MD5: 0fcb7cc57718a3276a610943544146f6
SHA-1: 96340622117bb9049ac351dded127d1c156ad45f
SHA-256: 5a725bd825d902a15ab56fcf350cc089c029f9374cdad0bd7cf73bb49d9137f2
Download zip
31.09 MB
MD5: 60c5415dab4679a490c71414c97b840f
SHA-1: 9429e1003c54c61b06b223df40c707cdfe0fb7d4
SHA-256: 59700966aa0c792d94ecb45a7d2be62f682510d79db9dfdcfbbef0598460a2d6
Release notes
This release includes tons of bugfixes, see the entire list below. A few features too to highlight:
- There's a new
drcommand in Drupal Core for 11.4.x (see https://www.drupal.org/node/3584928). This made possible to include adr canvas:doctorcommand, which will check several canvas-related conditions to verify the health of your site. These checks also run incrementally with cron (no matter your core version), so the requirements page will show any conflicts it might find. In the future we will expand this with our own detailed report page. - When creating content-entity-reference props in code components, entity references targeting multiple bundles were excluded. Now they are supported (some restrictions still hold, that will be losen up in future releases).
Contributors (37)
ahmad-khalil-imagex, akhil babu, amangrover90, arianraeesi, balintbrews, bernardm28, bnjmnm, catch, davituri, effulgentsia, f.mazeikis, flyke, hanmant.sapkal, hooroomoo, isholgueras, jptaranto, jucs7, justafish, kunal.sachdev, lauriii, longwave, marcus_johansson, mark-dodgson, mayur-sose, narendrar, neha_bawankar, penyaskito, phenaproxima, prabha1997, ravi.maniyar.123, sgalata, tedbow, tim.plunkett, utkarsh_33, vipin.mittal18, wim leers, wotnak
Changelog
Issues: 55 issues resolved.
Changes since 1.8.0 (compare):
Bug
- fix(Auto-save): #3591789 Deleting a content entity translation leaves its auto-save snapshot behind; publishing resurrects the deleted translation
- fix: #3591794 Canvas topbar's fixed width is causing the icons to overlap on at smaller viewport widths.
- fix: #3591798 Checkmark and options menu disappear from LanguageSelect on preview page refresh
- revert: #3591798 Checkmark and options menu disappear from LanguageSelect on preview page refresh
- fix(Conflict detection): #3591803 AutoSaveManager::saveEntity() silently clears unresolved conflicts for Page entities
- bug: #3549885 Prevent deleting Code Components if there are usages in forward revisions
- fix: #3591832 vh-height sections with background images cause unbounded iframe growth via feedback loop
- fix: #3591798 Checkmark and options menu disappear from LanguageSelect on preview page refresh
- fix(Config management): #3573022 [upstream] Data loss: `drush config:import` deletes config (e.g. code component + component config entities) and bypasses config system data integrity checks
- fix(Symmetric Translations): #3591821 Default page title changes after unpublish in `content` entities
- fix(Data model): #3591868 Coalescer drops multi-bundle reference picks when the reference field also has a direct leaf pick
- fix(Conflict detection): #3591842 Stale selected change remains after discard from review UI
- fix(Theme builder): #3591867 Uncaught TypeError (Cannot destructure property 'entityFields') when recreating a component after deleting an unadded draft
- fix(Data model): #3591846 Code component entity-reference props ignore the negotiated language
- fix: #3591802 Allow addNewComponentToLayout to accept a caller-supplied UUID
- fix(Redux-integrated field widgets): #3591773 Unchecked checkbox for a boolean prop initializes as checked in the component inputs form
- bug: #3591857 Removing a media item from one image prop deletes the stored value of every other media-backed prop on the same component instance
- fix(Headless): #3591877 Recover draft sessions after client resets and delayed timers
- fix(Headless): #3591878 Prevent stale headless previews after rapid navigation
- fix(Auto-save, Translation, Conflict detection): #3591820 Publishing a symmetrically-translated canvas_page 422s when a default-language edit changes a non-translatable component input
- fix(Data model): #3582200 component_tree sequence keys sorted lexicographically instead of numerically, breaking component order at 10+ instances per level
- fix(Extensions): #3591835 Canvas extensions do not update until caches are rebuilt after installing or uninstalling a module
Feature
- feat(Headless): #3591775 Introduce the authentication and security model for headless draft preview
- feat(Headless): #3591818 Introduce Headless SDK
- feat(Headless): #3591807 Synchronize components from decoupled apps into headless Canvas
- feat(Headless): #3591822 Add configuration UI for headless frontends
- feat(Headless): #3591823 Add support for rendering Canvas component trees in the Headless SDK
- feat(Headless): #3591834 Support converting existing Code Components to external components with local fallbacks
- feat(Conflict detection): #3591591 Add side-by-side review UI for selected Page changes
- feat(Headless): #3591836 Return Canvas auto-save data from CE API
- feat(Headless): #3591849 Prepare Headless SDK packages for publishing on npm
- feat(Internal HTTP API): #3591674 Explicitly support `comment` as a referenceable content entity type (stop omitting it from the content entity types endpoint)
- feat(Config management): #3591667 Add `canvas:doctor` Drupal CLI command to check health of Canvas' data: validate every Canvas (content|config) entity + translation, validate every non-Canvas content entity component tree field revision+translation, and more
- feat(Headless): #3591837 Implement editor frame height sync in Headless SDK
- feat(Headless): #3591847 Make Canvas editor frame work for headless frontends
- feat(Headless): #3591879 Show loading progress during headless preview navigation
- feat(Data model, Internal HTTP API): #3591656 Support multi-target-bundle references in code component content-entity-reference props
Misc
- Commit message:
- task(AI): #3591809 Canvas AI: Create the canvas_dev_ai module with a mock AI controller
- task(AI): #3591810 Canvas AI: Add AiWizardDev.tsx dev chat wizard gated by the aiDevMode flag
- task(AI): #3591812 Canvas AI: Add the edit_components AI tool (+ kernel test)
- task(AI): #3591811 Canvas AI: Add the place_components AI tool (+ kernel test)
- task(AI): #3591813 Canvas AI: Add the set_page_value AI tool (+ kernel test)
- task(AI): #3591814 Canvas AI: Add the get_component_details AI tool + component-context helper (+ tests)
- Add built assets for release 1.9.0
Task
- chore(Shape matching): #3591779 Add content_translation_source and content_translation_outdated to `\Drupal\canvas\ShapeMatcher\PropSourceSuggester::isConsideredIrrelevant()`
- fix: #3591784 Enforce "Delete Translations" permission on the Canvas API translation delete route
- chore(Component sources): #3591819 Enforce self:: for own-hierarchy class constants with a PHPStan rule
- chore(Headless): #3591826 Simplify headless app environment configuration
- feat(Conflict detection): #3591723 "Add 'Conflict detected' toast message"
- chore(CLI Tool): #3591849 Bump drupal-canvas, eslint-config, and workbench versions
- fix(Symmetric Translations): #3591784 Enforce "Delete Translations" permission on the Canvas API translation delete route
- chore: #3591858 Add `Instantiator` to dictionary.txt
- chore(Data model): #3591829 Multi-bundle content-entity-reference picks fail to coalesce into a branch expression
- ci(CLI Tool,Headless): #3566545 Introduce Turborepo, changesets, and unified CI and publishing for packages
- chore: version packages
- ci(CLI Tool,Headless): #3566545 Skip test and cache jobs on the automated version merge request
- chore: #3591871 Update npm dependencies
- chore: version packages