Problem/Motivation

This module provides the great features of making the paragraph editable through the standalone form and other modules use it as a foundation. I understand, that as a standalone solution, this module needs contextual_links module to be enabled so that the links to forms are visible to users. But other modules, like "Frontend Editing" display the links to the form in their own way and do not need the contextual links to be visible, as then there is a duplication.

Steps to reproduce

Install Frontend Editing module in version 1.x, or in version 2.x but also with submodule frontend_editing_paragraphs.
Paragraphs Edit module will be installed as it is a dependency of Frontend Editing.
Contextual Links module will be installed as it is a dependency of Paragraphs Edit.

As reported in this issue #3557686: Add option to hide contextual links both contextual and links from Frontend Editing are visual, and it is confusing for users and of course creates duplication.

Proposed resolution

As Contextual Links module is part of core, there is no need to pull it with composer or any other way, it is just always available in the codebase. Also there is no "hard" dependency on any functionality from contextual links module in paragraphs edit module. The links will be displayed when contextual links module is enabled, but if it is not, the module will still work, it will be still possible to create/edit/delete paragraphs if you know the links or the links are displayed in some other way.

Therefore I propose to make contextual links as a "soft" dependency, meaning, just enable it with hook_install, but do not add it to `.info.yml` file as a dependency. This way, if the links are not needed, then user can uninstall the contextual links module and still use the paragraphs_edit functionality.

Alternatively, it is also possible to create a submodule that depends on contextual_links module, like paragraphs_edit_ui or something, as paragraphs_edit is more of "framework" (base) functionality and contextual_links is more like optional UI only thing.

Remaining tasks

Implement one of the proposed approaches

Comments

a.dmitriiev created an issue.