{# ProjectDetail content block - before/after comparison slider. ProjectDetail-only block type, no Actualité equivalent - see "Repeatable Block Templates (Exception)" in spec-driven-development/rules/section-component-architecture.md. Parameters: - block (object): block data with `id`, `type`, `fields.{beforeImage, afterImage, beforeImagePath, afterImagePath, beforeLabel, afterLabel}` (`beforeImage`/`afterImage` = media UUIDs for the editor's data-media-id; `beforeImagePath`/`afterImagePath` = resolved file paths for , set by ProjectDetailPageEnricher::resolveBlockImages()) Interactive drag behavior (Pointer Events, clip-path) lives in assets/components/before-after-slider.ts, mounted from assets/project-detail.ts, guarded by `[data-before-after-handle]` - works identically in edit mode and public view (decision (c) in spec-driven-development/project-detail-redesign.md). This partial only renders the static structure + accessibility attributes; layout/positioning is SCSS (follow-up pass). #} {% set beforeLabel = block.fields.beforeLabel|default('Avant') %} {% set afterLabel = block.fields.afterLabel|default('Après') %}
{% if editMode|default(false) %} {{ include('components/_actualite-block-controls.html.twig', { showMobilePositionToggle: false }) }} {% endif %}
{% if editMode|default(false) and not (block.fields.beforeImage|default(false) or block.fields.beforeImageDark|default(false)) %} + Ajouter l'image "avant" {% endif %} {% include 'components/_themed_img.html.twig' with {light: block.fields.beforeImagePath|default(''), dark: block.fields.beforeImageDarkPath|default(''), alt: beforeLabel, class: 'project-detail-block-before-after__img'} only %}
{% if editMode|default(false) and not (block.fields.afterImage|default(false) or block.fields.afterImageDark|default(false)) %} + Ajouter l'image "après" {% endif %} {% include 'components/_themed_img.html.twig' with {light: block.fields.afterImagePath|default(''), dark: block.fields.afterImageDarkPath|default(''), alt: afterLabel, class: 'project-detail-block-before-after__img'} only %}
{{ beforeLabel }} {{ afterLabel }}