The API of Single Directory Components includes:
- The component plugin manager (the service with name plugin.manager.sdc).
This service will be needed by modules that need to find and instantiate
components.
- The exceptions. Code using Single Directory Components can rely, and extend,
the exceptions provided by the experimental module.
- The folder structure of a component and the naming conventions of the files
in it.
- The structure of the component metadata (the my-component.component.yml).
Note that the metadata of the component is described, and optionally
validated, by the schema in metadata.schema.json (this file is for internal validation and not part of the API).
- The render element and its class \Drupal\sdc\Element\ComponentElement.
- The naming convention for the ID when using Twig's include, embed, and
extends. This naming convention is [module/theme]:[component machine name].
See the example below.
{% embed 'my-theme:my-component' with { prop1: content.field_for_prop1 } %}
{% block slot1 %}
{{ content|without('field_for_prop1') }}
{% endblock %}
{% endembed %}
This way of specifying the component for Twig's include, embed, and
extends('my-theme:my-component' in the example) will not change, as it is
considered an API.