{% extends "public_base.html" %} {% import "marketplace/_macros.html" as mk %} {% block title %}{{ feature.short }} · {{ _("Marketplace") }}{% endblock %} {% block content %}
{{ mk.monogram(feature.short, large=true) }}

{{ feature.short }}

{{ feature.org }}/{{ feature.repo }}

{{ mk.version_pill(feature) }} {{ mk.archetype_badge(feature.archetype) }} {% if feature.category %}{{ feature.category }}{% endif %} {% if feature.env %}{{ feature.env }}{% endif %} {% if feature.refinement %}{{ _("refinement") }}{% endif %}
{# ── Left column: about, contract, dependencies ─────────────────── #}

{{ mk.icon("info") }}{{ _("About") }}

{{ feature.description or _("No description yet.") }}

{{ mk.icon("box") }}{{ _("Provides") }}

{% if feature.provides.models or feature.provides.services or feature.provides.routes or feature.provides.hooks or feature.provides.signals or feature.provides.commands or feature.provides.translations %}
{{ mk.contract_row(_("Models"), feature.provides.models) }} {{ mk.contract_row(_("Services"), feature.provides.services) }} {{ mk.contract_row(_("Routes"), feature.provides.routes) }} {{ mk.contract_row(_("Hooks"), feature.provides.hooks) }} {{ mk.contract_row(_("Signals"), feature.provides.signals) }} {{ mk.contract_row(_("Commands"), feature.provides.commands) }} {{ mk.contract_row(_("Translations"), feature.provides.translations) }}
{% else %}

{{ _("This feature declares no public contract surface.") }}

{% endif %}

{{ mk.icon("git-branch") }}{{ _("Dependencies") }}

{% if feature.requires.features %}
{{ _("Requires") }}
{% for dep in feature.requires.features %}{{ mk.feature_chip(dep) }}{% endfor %}
{% endif %} {% if feature.requires.features_optional %}
{{ _("Works better with") }}
{% for dep in feature.requires.features_optional %}{{ mk.feature_chip(dep) }}{% endfor %}
{% endif %} {% if feature.used_by %}
{{ _("Used by") }}
{% for dep in feature.used_by %}{{ mk.feature_chip(dep) }}{% endfor %}
{% endif %} {% if feature.requires.env_vars %}
{{ _("Env vars") }}
{% for var in feature.requires.env_vars %}{{ var }}{% endfor %}
{% endif %} {% if not (feature.requires.features or feature.requires.features_optional or feature.used_by or feature.requires.env_vars) %}

{{ _("No hard dependencies.") }}

{% endif %}
{% if collisions %}

{{ mk.icon("alert-triangle") }}{{ _("Collisions") }}

    {% for c in collisions %}
  • {{ c.item }} ({{ c.kind }}) {{ _("also provided by") }} {% for other in c.features if other != feature.short %}{{ mk.feature_chip(other) }}{% endfor %}
  • {% endfor %}
{% endif %}
{# ── Right column (sticky): install + metadata ──────────────────── #}
{% endblock %} {% block scripts %} {% endblock %}