{#
  Shared body for the product widget and [rvx-review-form]: overview → toolbar → list → form.
  Twig vars: show (graph/filter/list/form booleans), eligibility, login_url, register_url, registration_enabled.
#}
{% set show = show|default({ graph: true, filter: true, list: true, form: true }) %}
<div class="rvx-space-y-space24">

  {% if show.graph %}
  <template x-if="status === 'loading'">{% include 'storefront/ui/skeleton.twig' with { variant: 'overview' } %}</template>
  <template x-if="status === 'error'">{% include 'storefront/ui/error-state.twig' %}</template>
  <template x-if="status === 'ready' && aggregation">{% include 'storefront/widget/Features/Overview/index.twig' %}</template>
  {% endif %}

  {% if show.list %}
  <template x-if="status === 'ready'">
    <div class="rvx-space-y-space16">
      {% if show.filter %}
      <div x-show="hasReviews || isFiltering">
        {% include 'storefront/widget/Features/Reviews/Filter/ReviewFilter.twig' with { write_button: show.form } %}
      </div>
      {% endif %}

      <template x-if="listStatus === 'loading'">{% include 'storefront/ui/skeleton.twig' with { variant: 'list' } %}</template>
      <template x-if="listStatus === 'error'">{% include 'storefront/ui/error-state.twig' with { retry: 'fetchReviews({ reset: true })' } %}</template>
      <template x-if="listStatus === 'ready' && hasReviews">
        <div>{% include 'storefront/widget/Features/Reviews/ReviewsLayout.twig' %}</div>
      </template>
      <template x-if="listStatus === 'ready' && !hasReviews && isFiltering">
        {% set clear_action %}{% include 'storefront/ui/button.twig' with { label: __('Clear filters', 'reviewx'), variant: 'secondary', size: 'sm', attrs: '@click="resetFilters()"' } %}{% endset %}
        {% include 'storefront/ui/empty-state.twig' with { icon: 'filter', title: __('No reviews match these filters', 'reviewx'), action: clear_action } %}
      </template>
      <template x-if="listStatus === 'ready' && !hasReviews && !isFiltering">
        {% include 'storefront/ui/empty-state.twig' with { icon: 'chat', title: __('No reviews yet', 'reviewx'), text: show.form and (eligibility.can_review|default(false)) ? __('Be the first to share your experience.', 'reviewx') : '' } %}
      </template>
    </div>
  </template>
  {% endif %}

  {% if show.form %}
  <div x-show="status !== 'loading'" x-cloak>
    {% include 'storefront/widget/Features/ReviewForm/gate.twig' %}
  </div>
  {% endif %}
</div>

{% if show.list %}{% include 'storefront/widget/Features/Reviews/Modals/ReviewDetailModal.twig' %}{% endif %}
{% if show.form %}{% include 'storefront/widget/Features/Reviews/Modals/ReviewSuccessModal.twig' %}{% endif %}
{% include 'storefront/ui/toast.twig' %}
