feat: #3620058 Re-export the Canvas component configs for the Canvas Icon Picker
Issue: https://www.drupal.org/project/educare/issues/3620058
Re-exports five Canvas component configs against the converted theme, and rewrites the icon prop to the picker shape on every stored version, not only the active one:
| component | new active version |
|---|---|
| icon | 9bc1e1a79ad3aca5 |
| icon-toggle | c46ff94ac9f4ece2 |
| badge | 60738022e738eef8 |
| button | 423695058e28f2f8 |
| card-icon | 62345acf6ed14ba8 |
Rewriting the non-active stored versions is what does the work. The shipped content still pins button@a3bdd446d7020573 (19 references across 11 files) and the header region pins icon-toggle@f94416574e5a0133. Keeping those hashes as stored versions, with the icon prop rewritten inside them, brings the picker to that content with no content re-pinning and no update hook, which matters because a theme cannot implement hook_update_N.
Each config gains canvas_icon_picker in its dependencies; options stays, because the other props on these components are still list_string.
This recipe does not install the module and does not set the packs: Varbase Admin Base does, in https://www.drupal.org/project/varbase_admin_base/issues/3620064. Land with the theme change, https://www.drupal.org/project/vartheme_bs5_educare/issues/3620057.
What does not work, so nobody repeats it: deleting these configs so Canvas derives them fresh. The shipped default content pins those exact component_version hashes and the install then fails at content import with 'icon' is not a supported key.
Verified on two fresh Varbase 11 installs applying this recipe during install, one from a codebase built from scratch: install green; every stored version on canvas_icon_picker/string; allowed_icon_ids matching the manifests (51/50/43/51/43); the Home page Button, still pinned to the old version, gets the picker rather than the 52-option select; picking people stores the bare id and renders bi bi-people anonymously; clearing stores an empty string with no validation error; every Canvas page 200 anonymously; picker endpoints 403; zero log entries at Error or worse.
The files are re-encoded with Drupal's own Yaml::encode, so the diff is the real change: 1,316 added, 28 removed, and the removals are only the old active_version lines and a few relocated default_value entries.
AI-Generated: Yes
Checkpoints:
- File an issue
- Addition/Change/Update/Fix
- Testing to ensure no regression
- Automated unit testing coverage
- Automated functional testing coverage
- UX/UI designer responsibilities
- Readability
- Accessibility
- Performance
- Security
- Developer Documentation
- User Guide Documentation
- Reviewed by human
- Code review by maintainers
- Full testing and approval
- Credit contributors
- Review with the product owner
- Release notes snippet
- Release