tour-content.php
112 lines
| 1 | <?php |
| 2 | /** |
| 3 | * Frontend Dashboard Tour Content Template |
| 4 | * |
| 5 | * Loaded by Modal::template() as the modal body. |
| 6 | * Alpine state is inherited from the parent x-data="tutorTour(...)" wrapper. |
| 7 | * |
| 8 | * @package Tutor\Templates |
| 9 | * @subpackage Dashboard |
| 10 | * @author Themeum <support@themeum.com> |
| 11 | * @link https://themeum.com |
| 12 | * |
| 13 | * @since 4.0.0 |
| 14 | */ |
| 15 | |
| 16 | defined( 'ABSPATH' ) || exit; |
| 17 | |
| 18 | use Tutor\Components\Button; |
| 19 | use Tutor\Components\Constants\Variant; |
| 20 | |
| 21 | ?> |
| 22 | |
| 23 | <div class="tutor-tour-modal tutor-modal-content"> |
| 24 | <div class="tutor-tour-images tutor-mb-6" :data-direction="slideDirection"> |
| 25 | <template x-for="(slide, index) in slides" :key="index"> |
| 26 | <div |
| 27 | class="tutor-tour-slide-image" |
| 28 | :class="'tutor-slide-' + index" |
| 29 | x-show="currentSlide === index" |
| 30 | x-transition:enter="tutor-transition-slide-enter" |
| 31 | x-transition:enter-start="tutor-transition-slide-enter-start" |
| 32 | x-transition:enter-end="tutor-transition-slide-enter-end" |
| 33 | x-transition:leave="tutor-transition-slide-leave" |
| 34 | x-transition:leave-start="tutor-transition-slide-leave-start" |
| 35 | x-transition:leave-end="tutor-transition-slide-leave-end" |
| 36 | > |
| 37 | <picture> |
| 38 | <source media="(min-width: 768px)" :srcset="slide.imageLarge"> |
| 39 | <img :src="slide.imageSmall" :alt="slide.title" class="tutor-img-responsive"> |
| 40 | </picture> |
| 41 | </div> |
| 42 | </template> |
| 43 | </div> |
| 44 | |
| 45 | <div class="tutor-tour-body"> |
| 46 | <!-- Dots --> |
| 47 | <div class="tutor-tour-dots tutor-flex tutor-justify-center tutor-items-center tutor-gap-2 tutor-mb-7"> |
| 48 | <template x-for="(slide, index) in slides" :key="index"> |
| 49 | <span class="tutor-tour-dot" :class="{ 'is-active': currentSlide === index }"></span> |
| 50 | </template> |
| 51 | </div> |
| 52 | |
| 53 | <!-- Title --> |
| 54 | <h3 class="tutor-h4 tutor-mb-6" x-text="slides[currentSlide].title"></h3> |
| 55 | |
| 56 | <!-- Actions --> |
| 57 | <div class="tutor-tour-actions tutor-flex tutor-gap-4 tutor-mb-4"> |
| 58 | <template x-if="currentSlide === 0 && slides.length > 1"> |
| 59 | <?php |
| 60 | Button::make() |
| 61 | ->label( __( 'Take the Tour', 'tutor' ) ) |
| 62 | ->block() |
| 63 | ->attr( '@click', 'next' ) |
| 64 | ->render(); |
| 65 | ?> |
| 66 | </template> |
| 67 | <template x-if="currentSlide > 0 && currentSlide < slides.length - 1"> |
| 68 | <div class="tutor-flex tutor-gap-4 tutor-w-full"> |
| 69 | <?php |
| 70 | Button::make() |
| 71 | ->label( __( 'Back', 'tutor' ) ) |
| 72 | ->block() |
| 73 | ->variant( Variant::SECONDARY ) |
| 74 | ->attr( '@click', 'back' ) |
| 75 | ->render(); |
| 76 | |
| 77 | Button::make() |
| 78 | ->label( __( 'Next', 'tutor' ) ) |
| 79 | ->block() |
| 80 | ->attr( '@click', 'next' ) |
| 81 | ->render(); |
| 82 | ?> |
| 83 | </div> |
| 84 | </template> |
| 85 | <template x-if="currentSlide === slides.length - 1"> |
| 86 | <?php |
| 87 | Button::make() |
| 88 | ->label( __( 'Get Started', 'tutor' ) ) |
| 89 | ->block() |
| 90 | ->attr( '@click', 'skip' ) |
| 91 | ->render(); |
| 92 | ?> |
| 93 | </template> |
| 94 | </div> |
| 95 | </div> |
| 96 | </div> |
| 97 | |
| 98 | <div |
| 99 | class="tutor-tour-skip-wrapper tutor-text-center tutor-mt-4" |
| 100 | :style="currentSlide < slides.length - 1 ? '' : 'opacity: 0; visibility: hidden; pointer-events: none;'" |
| 101 | > |
| 102 | <?php |
| 103 | Button::make() |
| 104 | ->label( __( 'Skip', 'tutor' ) ) |
| 105 | ->variant( Variant::GHOST ) |
| 106 | ->attr( 'class', 'tutor-tour-skip-btn' ) |
| 107 | ->attr( '@click', 'skip' ) |
| 108 | ->render(); |
| 109 | ?> |
| 110 | </div> |
| 111 | |
| 112 |