Problem/Motivation
It looks like there's quite a bit of refactoring of logic/code still planned for the Settings Tray module.
Before BigPipe was marked stable, we marked all classes & interfaces @internal
, because BigPipe provides only functionality, not APIs.
I think that you probably want to do something similar for Settings Tray? I think you want to limit the API surface in a very clear, very simple way:
Any block that provides an
off_canvas
form in their block plugin annotation, is automatically picked up.
(Plus probably something for making things other than blocks configurable via the Settings Tray.)
Proposed resolution
- Mark as much as possible as
@internal
. That would include all PHP code, all HTML (Twig templates), all JS, all CSS. The only thing that's an API, is the declaration of "off_canvas
forms". - Add a
outside_in.api.php
file to document the actual API.
(And yes, off_canvas
should be renamed to settings_tray
, but that's probably part of #2803375: Rename Outside-in module to "Settings Tray" for real.)
Remaining tasks
TBD
User interface changes
None.
API changes
None.
Data model changes
None.