{{-- ===================================================== Etebarit - by Gisoo Web Solutions ------------------------------------------------------ Gisoo.net ------------------------------------------------------ Copyright (c) 2026 Gisoo Web Solutions ===================================================== This code is protected by copyright ===================================================== File: welcome.blade.php ------------------------------------------------------ Use: The public home page: the hero, the four-step cycle, the credit and merchant value blocks, why-us, and the closing call to action. Brand palette, RTL, no external assets. ===================================================== --}} @extends('layouts.public') @section('title', ($siteTitle ?? __('front.app.name')).' - '.__('front.public.home.hero_sub')) @php use App\Support\Format; // Small formatting helpers so the dynamic figures read cleanly below. $fa = fn ($n) => Format::persianDigits((string) $n); $toman = fn ($n) => Format::persianDigits(Format::tomanFa((int) $n)); $pct = fn ($bp) => Format::persianDigits(Format::percentFromBp((int) $bp)); @endphp @section('content') {{-- ===== Pinned scroll hero ===== --}} {{-- A 420vh pinned stage: the intro fades out as you scroll, revealing a scroll-scrubbed diagram of the BNPL cycle. Driven by initHomeHero in app.js; collapses to a normal static hero on small screens / reduced motion (see app.css). --}}
{{-- 3D scroll-driven blobs --}}
{{-- INTRO --}}
{{-- copy column --}}
{{ __('front.public.home.badge') }}

{{ __('front.public.home.hero_a1') }} {{ __('front.public.home.hero_a2') }} {{ __('front.public.home.hero_b1') }} {{ __('front.public.home.hero_b2') }}

{{ __('front.public.home.hero_sub') }}

@php $heroStats = [ ['v' => $maxMonths > 0 ? __('front.public.home.stat_months_value', ['count' => $fa($maxMonths)]) : __('front.public.home.chips.0'), 'l' => $hasInterest ? __('front.public.home.plans_eyebrow') : __('front.public.home.stat_no_interest'), 'c' => 'text-primary-600'], ['v' => '۱۰۰٪', 'l' => __('front.public.home.stat_settle_full'), 'c' => 'text-secondary-500'], ['v' => $fa($shopCount), 'l' => __('front.public.home.stat_shops'), 'c' => 'text-primary-600'], ]; @endphp
@foreach ($heroStats as $i => $stat) @if ($i > 0)@endif
{{ $stat['v'] }}
{{ $stat['l'] }}
@endforeach
{{-- visual composition column (mouse-parallax) --}}
{{-- scroll cue --}}
{{ __('front.public.home.scroll_cue') }}
{{-- DIAGRAM STAGE (scroll-scrubbed) --}}
{{-- eyebrow --}}
{{ __('front.public.home.diagram_eyebrow') }}
{{-- connecting lines --}} {{-- STORE node --}}
{{ __('front.public.home.node_store') }}
{{ __('front.public.home.node_store_sub') }}
{{ __('front.public.home.node_store_cash') }}
{{-- CUSTOMER node --}}
{{ __('front.public.home.node_customer') }}
{{ __('front.public.home.node_customer_sub') }}
{{ __('front.public.home.node_cust_got') }}
{{-- HUB --}}
{{ __('front.public.home.node_hub') }}
{{ str_replace(':paid', '۰', __('front.public.home.hub_count')) }}
{{-- product token --}}
{{ __('front.public.home.token_product') }}
{{-- cash token --}}
{{ __('front.public.home.token_cash') }}
{{-- installment chips --}} @foreach (__('front.public.home.chips') as $ci => $chip)
{{ $chip }}
@endforeach {{-- caption --}}
۱
{{ __('front.public.home.phases.0.t') }}
{{ __('front.public.home.phases.0.s') }}
{{-- Flow phases + hub-count template for the scroll driver. --}}
{{-- ===== How it works ===== --}}

{{ __('front.public.home.how_title') }}

{{ __('front.public.home.how_sub') }}

@foreach (__('front.public.home.steps') as $i => $step)
@fa($i + 1)
{{ $step['t'] }}

{{ $step['d'] }}

@endforeach
{{-- ===== Credit limit ring ===== --}} @if ($maxCreditCap > 0)
{{ __('front.public.nav.credit') }}

{{ __('front.public.home.credit_sub') }}

    @foreach (__('front.public.home.credit_points') as $point)
  • {{ $point }}
  • @endforeach
{{ __('front.public.home.cta_credit') }}
{{-- The number and the arc keep cycling through varied credit ceilings with a soft transition (creditRing in app.js). --}}
{{ __('front.public.home.limit_ring_label') }}
۰
{{ __('front.public.home.card_toman') }}
@endif {{-- ===== Plans showcase (dynamic) ===== --}}
{{ __('front.public.home.plans_eyebrow') }}

{{ __('front.public.home.plans_title') }}

{{ __('front.public.home.plans_sub') }}

@if ($plans->isEmpty())
{{ __('front.public.home.plans_empty') }}
@else {{-- Slideshow: fixed cards-per-view, arrow + dot controls, pointer drag, autoplay that pauses on hover. Vertical padding on the clip box leaves room for the hover lift + shadow. --}}
@foreach ($plans as $plan) @php $selectable = $plan->status === \App\Models\Plan::STATUS_ACTIVE; @endphp
{{ $plan->name }}
@if ($selectable) {{ __('front.public.home.card_no_interest') }} @else {{ __('front.public.home.plans_statuses.'.$plan->status) }} @endif
{{ __('front.public.home.plans_months', ['count' => $fa($plan->months)]) }}
{{ __('front.public.home.plans_amount', ['min' => $toman($plan->min_amount), 'max' => $toman($plan->max_amount)]) }}
{{ __('front.public.home.plans_fee', ['fee' => $pct($plan->fee_percent)]) }}
@php $planCols = array_values(array_filter($plan->collaterals ?? [])); @endphp @if (! empty($planCols))
{{ __('front.public.home.plans_collateral_title') }}
@foreach ($planCols as $c) {{ __('front.credit.collaterals.'.$c) }} @endforeach
@endif $selectable, 'pointer-events-none bg-[#f2f0fa] text-ink-muted' => ! $selectable, ])>{{ $selectable ? __('front.public.home.cta_credit') : __('front.public.home.plans_statuses.'.$plan->status) }}
@endforeach
{{-- Controls (shown only when the plans overflow one view) --}}
{{-- prev = towards the earlier cards (on the right in RTL) --}}
@endif
{{-- ===== Acceptable collateral (dynamic) ===== --}}
{{ __('front.public.home.collateral_eyebrow') }}

{{ __('front.public.home.collateral_title') }}

{{ __('front.public.home.collateral_sub') }}

@foreach ($collaterals as $col)
$col['available'], 'border-dashed border-[#e3e1ec] opacity-75' => ! $col['available'], ])> @switch ($col['type']) @case ('cheque') @break @case ('gold') @break @case ('salary') @break @default @endswitch
{{ $col['label'] }}

{{ $col['desc'] }}

@if ($col['available'] && $col['max'] > 0) {{ __('front.public.home.collateral_up_to', ['max' => $toman($col['max'])]) }} @else {{ __('front.public.home.collateral_soon') }} @endif
@endforeach
{{-- ===== Merchants (stores) ===== --}}
{{ __('front.public.nav.stores') }}

{{ __('front.public.home.stores_title') }}

{{ __('front.public.home.stores_sub') }}

    @foreach (__('front.public.home.stores_points') as $point)
  • {{ $point }}
  • @endforeach
{{ __('front.public.home.cta_merchant') }}
@php $storeStats = [ ['v' => '۱۰۰٪', 'l' => __('front.public.home.stat_settle_instant')], ['v' => $fa($shopCount), 'l' => __('front.public.home.stat_shops')], ['v' => $fa($plans->where('status', \App\Models\Plan::STATUS_ACTIVE)->count()), 'l' => __('front.public.home.stat_plans')], ['v' => 'API', 'l' => __('front.public.home.stat_docs')], ]; @endphp
@foreach ($storeStats as $st)
{{ $st['v'] }}
{{ $st['l'] }}
@endforeach
@if ($shops->isNotEmpty()) @php // Repeat the shops so even one shop produces a full, endless // stream; each of the two copies holds the same padded list. $repeat = max(1, (int) ceil(8 / max(1, $shops->count()))); $logoBase = collect(); for ($k = 0; $k < $repeat; $k++) { $logoBase = $logoBase->concat($shops); } @endphp
{{ __('front.public.home.stores_logos_title') }}
{{-- Two identical copies laid out LTR; the gap is baked into each chip (me-4) so translateX(-50%) lands exactly one copy over -- a seamless, endless loop regardless of how many shops there are. The container is forced LTR so the RTL page can't offset the track and break the loop point. --}}
@foreach ([1, 2] as $rep) @foreach ($logoBase as $shop) @endforeach @endforeach
@endif
{{-- ===== Why us ===== --}}

{{ __('front.public.home.why_title') }}

{{ __('front.public.home.why_sub') }}

@foreach (__('front.public.home.why_items') as $item)
{{ $item['t'] }}

{{ $item['d'] }}

@endforeach
{{-- ===== Final CTA ===== --}}
{{ __('front.public.home.final_badge') }}

{{ __('front.public.home.final_title') }}

{{ __('front.public.home.final_sub') }}

@if ($maxCreditCap > 0)
{{ __('front.public.home.final_card_label') }} {{ __('front.public.home.final_card_status') }}
{{ $toman($maxCreditCap) }} {{ __('front.public.home.card_toman') }}
{{ __('front.public.home.final_card_paid', ['paid' => $fa(3)]) }} {{ __('front.public.home.final_card_remaining', ['n' => $fa(1)]) }}
@endif
@endsection