phase oen updates
This commit is contained in:
@@ -0,0 +1 @@
|
||||
@if($latestBlogPosts->isNotEmpty())<section class="section"><div class="wrap"><div class="heading"><span>{{ $data['eyebrow'] ?? '' }}</span><h2>{{ $data['heading'] ?? '' }}</h2></div><div class="grid three">@foreach($latestBlogPosts->take($data['limit'] ?? 3) as $post)<article class="card"><b>{{ optional($post->published_at)->format('d M Y') }}</b><h3>{{ $post->title }}</h3><p>{{ $post->excerpt }}</p><a class="read-more" href="{{ route('blog.public.show',$post->slug) }}">Read article →</a></article>@endforeach</div></div></section>@endif
|
||||
@@ -0,0 +1 @@
|
||||
<section class="cta" id="contact"><div class="wrap"><h2>{{ $data['heading'] ?? '' }}</h2><p>{{ $data['description'] ?? '' }}</p><a class="btn light" href="{{ $data['button_url'] ?? '#' }}">{{ $data['button_label'] ?? 'Get started' }} →</a></div></section>
|
||||
@@ -0,0 +1 @@
|
||||
@if($faqs->isNotEmpty())<section class="section"><div class="wrap faq"><div><span class="section-label">{{ $data['eyebrow'] ?? 'FAQ' }}</span><h2>{{ $data['heading'] ?? '' }}</h2></div><div>@foreach($faqs->take($data['limit'] ?? 12) as $faq)<article><button type="button" @click="openFaq = openFaq === {{ $faq->id }} ? null : {{ $faq->id }}">{{ $faq->question }}<span>+</span></button><p x-cloak x-show="openFaq === {{ $faq->id }}">{{ $faq->answer }}</p></article>@endforeach</div></div></section>@endif
|
||||
@@ -0,0 +1 @@
|
||||
<section class="section" id="features"><div class="wrap"><div class="heading"><span>{{ $data['eyebrow'] ?? '' }}</span><h2>{{ $data['heading'] ?? '' }}</h2><p>{{ $data['description'] ?? '' }}</p></div><div class="grid three">@foreach($data['items'] ?? [] as $i => $item)<article class="card"><b>{{ str_pad((string)($i+1),2,'0',STR_PAD_LEFT) }}</b><h3>{{ $item['title'] ?? '' }}</h3><p>{{ $item['description'] ?? '' }}</p></article>@endforeach</div></div></section>
|
||||
@@ -0,0 +1,5 @@
|
||||
<section class="hero"><div class="glow one"></div><div class="glow two"></div><div class="wrap hero-inner">
|
||||
<span class="eyebrow">{{ $data['eyebrow'] ?? '' }}</span><h1>{{ $data['heading'] ?? $document->title }}</h1><p>{{ $data['description'] ?? '' }}</p>
|
||||
<div class="actions"><a class="btn primary" href="{{ $data['primary_url'] ?? '#' }}">{{ $data['primary_label'] ?? 'Get started' }} →</a>@if(filled($data['secondary_label'] ?? null))<a class="btn secondary" href="{{ $data['secondary_url'] ?? '#' }}">{{ $data['secondary_label'] }}</a>@endif</div>
|
||||
@if($data['show_metrics'] ?? false)<div class="dashboard"><div class="dash-top"><b>Performance overview</b><span>Live</span></div><div class="metrics"><article><small>Monthly revenue</small><strong>£48,240</strong><em>+18.4%</em></article><article><small>Active users</small><strong>12,842</strong><em>+9.2%</em></article><article><small>Conversion</small><strong>7.8%</strong><em>+2.1%</em></article></div><div class="chart"><i style="height:28%"></i><i style="height:42%"></i><i style="height:35%"></i><i style="height:62%"></i><i style="height:54%"></i><i style="height:78%"></i><i style="height:92%"></i></div></div>@endif
|
||||
</div></section>
|
||||
@@ -0,0 +1 @@
|
||||
@if($latestNewsArticles->isNotEmpty())<section class="section alt"><div class="wrap"><div class="heading"><span>{{ $data['eyebrow'] ?? '' }}</span><h2>{{ $data['heading'] ?? '' }}</h2></div><div class="grid three">@foreach($latestNewsArticles->take($data['limit'] ?? 3) as $article)<article class="card"><b>{{ optional($article->published_at)->format('d M Y') }}</b><h3>{{ $article->title }}</h3><p>{{ $article->excerpt }}</p><a class="read-more" href="{{ route('news.public.show',$article->slug) }}">Read update →</a></article>@endforeach</div></div></section>@endif
|
||||
@@ -0,0 +1 @@
|
||||
<section class="section alt"><div class="wrap"><div class="content-card newsletter-panel"><div><span class="section-label">{{ $data['eyebrow'] ?? '' }}</span><h2>{{ $data['heading'] ?? '' }}</h2><p>{{ $data['description'] ?? '' }}</p></div><form method="POST" action="{{ route('newsletter.public.subscribe') }}">@csrf<input type="email" name="email" required placeholder="you@example.com" aria-label="Email address"><button class="btn primary" type="submit">{{ $data['button_label'] ?? 'Subscribe' }}</button></form></div></div></section>
|
||||
@@ -0,0 +1 @@
|
||||
@if($pricingPlans->isNotEmpty())<section class="section alt" id="pricing"><div class="wrap"><div class="heading"><span>{{ $data['eyebrow'] ?? '' }}</span><h2>{{ $data['heading'] ?? '' }}</h2><p>{{ $data['description'] ?? '' }}</p></div><div class="grid three pricing">@foreach($pricingPlans->take($data['limit'] ?? 6) as $plan)<article class="card plan {{ $plan->is_featured ? 'featured' : '' }}">@if($plan->is_featured)<div class="popular">Most popular</div>@endif<h3>{{ $plan->name }}</h3><strong>@if($plan->price !== null){{ $plan->currency === 'GBP' ? '£' : $plan->currency.' ' }}{{ rtrim(rtrim(number_format((float)$plan->price,2), '0'), '.') }}<small>/{{ $plan->billing_period ?: 'month' }}</small>@else Custom @endif</strong><p>{{ $plan->description }}</p><ul>@foreach((array)$plan->features as $feature)<li>{{ $feature }}</li>@endforeach</ul><a class="btn {{ $plan->is_featured ? 'primary' : 'secondary' }}" href="{{ $plan->cta_url ?: '#contact' }}">{{ $plan->cta_label ?: 'Learn more' }}</a></article>@endforeach</div></div></section>@endif
|
||||
@@ -0,0 +1 @@
|
||||
@include('stylist-theme-saasland::partials.footer')
|
||||
@@ -0,0 +1 @@
|
||||
@include('stylist-theme-saasland::partials.header')
|
||||
@@ -0,0 +1 @@
|
||||
@if($teamMembers->isNotEmpty())<section class="section alt"><div class="wrap"><div class="heading"><span>{{ $data['eyebrow'] ?? '' }}</span><h2>{{ $data['heading'] ?? '' }}</h2></div><div class="grid three">@foreach($teamMembers->take($data['limit'] ?? 8) as $member)<article class="card"><h3>{{ $member->name }}</h3><b>{{ $member->job_title }}</b><p>{{ $member->biography }}</p></article>@endforeach</div></div></section>@endif
|
||||
@@ -0,0 +1 @@
|
||||
@if($testimonials->isNotEmpty())<section class="section"><div class="wrap"><div class="heading"><span>{{ $data['eyebrow'] ?? '' }}</span><h2>{{ $data['heading'] ?? '' }}</h2></div><div class="grid three">@foreach($testimonials->take($data['limit'] ?? 6) as $testimonial)<blockquote class="card">“{{ $testimonial->content }}”<footer>{{ $testimonial->name }}@if($testimonial->company) · {{ $testimonial->company }}@endif</footer></blockquote>@endforeach</div></div></section>@endif
|
||||
@@ -4,71 +4,15 @@
|
||||
$title = $siteTitle;
|
||||
$description = $siteDescription;
|
||||
$hero = true;
|
||||
$enabled = fn (string $key, bool $default = true) => filter_var($themeSettings[$key] ?? $default, FILTER_VALIDATE_BOOL);
|
||||
$heroTitle = filled($themeSettings['hero_title'] ?? null) ? $themeSettings['hero_title'] : 'Transform Your Business With Our SaaS Solution';
|
||||
$heroText = filled($themeSettings['hero_description'] ?? null) ? $themeSettings['hero_description'] : 'Streamline operations, boost productivity, and improve customer satisfaction with one connected platform built for modern teams.';
|
||||
$pageKey = 'home';
|
||||
$contentRenderer = app(\Modules\Content\Services\PageRenderer::class);
|
||||
$hasComposition = $contentRenderer->hasComposition($pageKey);
|
||||
@endphp
|
||||
|
||||
@section('content')
|
||||
<section class="hero">
|
||||
<div class="glow one"></div><div class="glow two"></div>
|
||||
<div class="wrap hero-inner">
|
||||
<span class="eyebrow">{{ $themeSettings['hero_eyebrow'] ?? 'A better way to run your business' }}</span>
|
||||
<h1>{{ $heroTitle }}</h1>
|
||||
<p>{{ $heroText }}</p>
|
||||
<div class="actions">
|
||||
<a class="btn primary" href="{{ $themeSettings['primary_cta_url'] ?? (Route::has('register') ? route('register') : '#contact') }}">{{ $themeSettings['primary_cta_label'] ?? 'Get started free' }} →</a>
|
||||
<a class="btn secondary" href="{{ $themeSettings['secondary_cta_url'] ?? '#contact' }}">{{ $themeSettings['secondary_cta_label'] ?? 'Book demo' }}</a>
|
||||
</div>
|
||||
@if($enabled('show_metrics', true))
|
||||
<div class="dashboard">
|
||||
<div class="dash-top"><b>Performance overview</b><span>Live</span></div>
|
||||
<div class="metrics"><article><small>Monthly revenue</small><strong>£48,240</strong><em>+18.4%</em></article><article><small>Active users</small><strong>12,842</strong><em>+9.2%</em></article><article><small>Conversion</small><strong>7.8%</strong><em>+2.1%</em></article></div>
|
||||
<div class="chart" aria-label="Performance chart"><i style="height:28%"></i><i style="height:42%"></i><i style="height:35%"></i><i style="height:62%"></i><i style="height:54%"></i><i style="height:78%"></i><i style="height:92%"></i></div>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@if($enabled('show_features', true))
|
||||
<section class="section" id="features"><div class="wrap"><div class="heading"><span>Powerful features</span><h2>Everything your team needs to grow</h2><p>Planning, collaboration, reporting, publishing, commerce and customer insight in one extensible platform.</p></div><div class="grid three">
|
||||
@foreach([['Smart automation','Remove repetitive work and delays.'],['Real-time analytics','Turn activity into useful business insight.'],['Content operations','Create, review and publish confidently.'],['Secure by design','Protect users and data with dependable controls.'],['Flexible integrations','Connect the tools your organisation already uses.'],['Modular architecture','Activate only the capabilities each site needs.']] as $i => $feature)
|
||||
<article class="card"><b>{{ str_pad((string)($i+1),2,'0',STR_PAD_LEFT) }}</b><h3>{{ $feature[0] }}</h3><p>{{ $feature[1] }}</p></article>
|
||||
@endforeach
|
||||
</div></div></section>
|
||||
@endif
|
||||
|
||||
@if($enabled('show_pricing', true) && $pricingPlans->isNotEmpty())
|
||||
<section class="section alt" id="pricing"><div class="wrap"><div class="heading"><span>Simple pricing</span><h2>Choose a plan that fits</h2><p>Plans are managed from Products & Pricing in the CMS.</p></div><div class="grid three pricing">
|
||||
@foreach($pricingPlans as $plan)
|
||||
<article class="card plan {{ $plan->is_featured ? 'featured' : '' }}">@if($plan->is_featured)<div class="popular">Most popular</div>@endif<h3>{{ $plan->name }}</h3><strong>@if($plan->price !== null){{ $plan->currency === 'GBP' ? '£' : $plan->currency.' ' }}{{ rtrim(rtrim(number_format((float)$plan->price,2), '0'), '.') }}<small>/{{ $plan->billing_period ?: 'month' }}</small>@else Custom @endif</strong><p>{{ $plan->description }}</p><ul>@foreach((array)$plan->features as $feature)<li>{{ $feature }}</li>@endforeach</ul><a class="btn {{ $plan->is_featured ? 'primary' : 'secondary' }}" href="{{ $plan->cta_url ?: '#contact' }}">{{ $plan->cta_label ?: 'Learn more' }}</a></article>
|
||||
@endforeach
|
||||
</div></div></section>
|
||||
@endif
|
||||
|
||||
@if($enabled('show_testimonials', true) && $testimonials->isNotEmpty())
|
||||
<section class="section"><div class="wrap"><div class="heading"><span>Customer stories</span><h2>Trusted by ambitious teams</h2></div><div class="grid three">@foreach($testimonials as $testimonial)<blockquote class="card">“{{ $testimonial->content }}”<footer>{{ $testimonial->name }}@if($testimonial->company) · {{ $testimonial->company }}@endif</footer></blockquote>@endforeach</div></div></section>
|
||||
@endif
|
||||
|
||||
@if($enabled('show_team', false) && $teamMembers->isNotEmpty())
|
||||
<section class="section alt"><div class="wrap"><div class="heading"><span>Our team</span><h2>People behind the platform</h2></div><div class="grid three">@foreach($teamMembers as $member)<article class="card"><h3>{{ $member->name }}</h3><b>{{ $member->job_title }}</b><p>{{ $member->biography }}</p></article>@endforeach</div></div></section>
|
||||
@endif
|
||||
|
||||
@if($enabled('show_blog', true) && $latestBlogPosts->isNotEmpty())
|
||||
<section class="section"><div class="wrap"><div class="heading"><span>Insights</span><h2>Latest from the blog</h2></div><div class="grid three">@foreach($latestBlogPosts as $post)<article class="card"><b>{{ optional($post->published_at)->format('d M Y') }}</b><h3>{{ $post->title }}</h3><p>{{ $post->excerpt }}</p><a class="read-more" href="{{ route('blog.public.show',$post->slug) }}">Read article →</a></article>@endforeach</div></div></section>
|
||||
@endif
|
||||
|
||||
@if($enabled('show_news', true) && $latestNewsArticles->isNotEmpty())
|
||||
<section class="section alt"><div class="wrap"><div class="heading"><span>Newsroom</span><h2>Latest news</h2></div><div class="grid three">@foreach($latestNewsArticles as $article)<article class="card"><b>{{ optional($article->published_at)->format('d M Y') }}</b><h3>{{ $article->title }}</h3><p>{{ $article->excerpt }}</p><a class="read-more" href="{{ route('news.public.show',$article->slug) }}">Read update →</a></article>@endforeach</div></div></section>
|
||||
@endif
|
||||
|
||||
@if($enabled('show_faq', true) && $faqs->isNotEmpty())
|
||||
<section class="section"><div class="wrap faq"><div><span class="section-label">FAQ</span><h2>Answers before you begin</h2></div><div>@foreach($faqs as $faq)<article><button type="button" @click="openFaq = openFaq === {{ $faq->id }} ? null : {{ $faq->id }}">{{ $faq->question }}<span>+</span></button><p x-cloak x-show="openFaq === {{ $faq->id }}">{{ $faq->answer }}</p></article>@endforeach</div></div></section>
|
||||
@endif
|
||||
|
||||
@if($enabled('show_newsletter', true))
|
||||
<section class="section alt"><div class="wrap"><div class="content-card newsletter-panel"><div><span class="section-label">Newsletter</span><h2>Useful updates, no noise</h2><p>Receive product news, publishing guidance, and practical platform updates.</p></div><form method="POST" action="{{ route('newsletter.public.subscribe') }}">@csrf<input type="email" name="email" required placeholder="you@example.com" aria-label="Email address"><button class="btn primary" type="submit">Subscribe</button></form></div></div></section>
|
||||
@endif
|
||||
|
||||
<section class="cta" id="contact"><div class="wrap"><h2>{{ $themeSettings['cta_title'] ?? 'Ready to transform your business?' }}</h2><p>{{ $themeSettings['cta_description'] ?? 'Start building a faster, more connected operation today.' }}</p>@auth<a class="btn light" href="{{ route('dashboard') }}">Open dashboard →</a>@else @if(Route::has('register'))<a class="btn light" href="{{ route('register') }}">Get started free →</a>@endif @endauth</div></section>
|
||||
@if($hasComposition)
|
||||
{!! $contentRenderer->renderRegion($pageKey, 'body') !!}
|
||||
@else
|
||||
@include('stylist-theme-saasland::legacy-home-content')
|
||||
@endif
|
||||
@endsection
|
||||
|
||||
@@ -25,7 +25,16 @@
|
||||
</head>
|
||||
<body>
|
||||
<div class="saasland-theme" x-data="{ menuOpen: false, openFaq: null }">
|
||||
@include('stylist-theme-saasland::partials.header')
|
||||
@php
|
||||
$compositionRenderer = app(\Modules\Content\Services\PageRenderer::class);
|
||||
$compositionPageKey = $pageKey ?? null;
|
||||
$hasPageComposition = $compositionPageKey && $compositionRenderer->hasComposition($compositionPageKey);
|
||||
@endphp
|
||||
@if($hasPageComposition)
|
||||
{!! $compositionRenderer->renderRegion($compositionPageKey, 'header') !!}
|
||||
@else
|
||||
@include('stylist-theme-saasland::partials.header')
|
||||
@endif
|
||||
|
||||
@unless($hero)
|
||||
<section class="page-hero">
|
||||
@@ -52,7 +61,11 @@
|
||||
@yield('content')
|
||||
</main>
|
||||
|
||||
@include('stylist-theme-saasland::partials.footer')
|
||||
@if($hasPageComposition)
|
||||
{!! $compositionRenderer->renderRegion($compositionPageKey, 'footer') !!}
|
||||
@else
|
||||
@include('stylist-theme-saasland::partials.footer')
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<script src="{{ route('stylist.theme.asset', ['theme' => 'saasland', 'path' => 'js/app.js']) }}" defer></script>
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
<section class="hero">
|
||||
<div class="glow one"></div><div class="glow two"></div>
|
||||
<div class="wrap hero-inner">
|
||||
<span class="eyebrow">{{ $themeSettings['hero_eyebrow'] ?? 'A better way to run your business' }}</span>
|
||||
<h1>{{ $heroTitle }}</h1>
|
||||
<p>{{ $heroText }}</p>
|
||||
<div class="actions">
|
||||
<a class="btn primary" href="{{ $themeSettings['primary_cta_url'] ?? (Route::has('register') ? route('register') : '#contact') }}">{{ $themeSettings['primary_cta_label'] ?? 'Get started free' }} →</a>
|
||||
<a class="btn secondary" href="{{ $themeSettings['secondary_cta_url'] ?? '#contact' }}">{{ $themeSettings['secondary_cta_label'] ?? 'Book demo' }}</a>
|
||||
</div>
|
||||
@if($enabled('show_metrics', true))
|
||||
<div class="dashboard">
|
||||
<div class="dash-top"><b>Performance overview</b><span>Live</span></div>
|
||||
<div class="metrics"><article><small>Monthly revenue</small><strong>£48,240</strong><em>+18.4%</em></article><article><small>Active users</small><strong>12,842</strong><em>+9.2%</em></article><article><small>Conversion</small><strong>7.8%</strong><em>+2.1%</em></article></div>
|
||||
<div class="chart" aria-label="Performance chart"><i style="height:28%"></i><i style="height:42%"></i><i style="height:35%"></i><i style="height:62%"></i><i style="height:54%"></i><i style="height:78%"></i><i style="height:92%"></i></div>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@if($enabled('show_features', true))
|
||||
<section class="section" id="features"><div class="wrap"><div class="heading"><span>Powerful features</span><h2>Everything your team needs to grow</h2><p>Planning, collaboration, reporting, publishing, commerce and customer insight in one extensible platform.</p></div><div class="grid three">
|
||||
@foreach([['Smart automation','Remove repetitive work and delays.'],['Real-time analytics','Turn activity into useful business insight.'],['Content operations','Create, review and publish confidently.'],['Secure by design','Protect users and data with dependable controls.'],['Flexible integrations','Connect the tools your organisation already uses.'],['Modular architecture','Activate only the capabilities each site needs.']] as $i => $feature)
|
||||
<article class="card"><b>{{ str_pad((string)($i+1),2,'0',STR_PAD_LEFT) }}</b><h3>{{ $feature[0] }}</h3><p>{{ $feature[1] }}</p></article>
|
||||
@endforeach
|
||||
</div></div></section>
|
||||
@endif
|
||||
|
||||
@if($enabled('show_pricing', true) && $pricingPlans->isNotEmpty())
|
||||
<section class="section alt" id="pricing"><div class="wrap"><div class="heading"><span>Simple pricing</span><h2>Choose a plan that fits</h2><p>Plans are managed from Products & Pricing in the CMS.</p></div><div class="grid three pricing">
|
||||
@foreach($pricingPlans as $plan)
|
||||
<article class="card plan {{ $plan->is_featured ? 'featured' : '' }}">@if($plan->is_featured)<div class="popular">Most popular</div>@endif<h3>{{ $plan->name }}</h3><strong>@if($plan->price !== null){{ $plan->currency === 'GBP' ? '£' : $plan->currency.' ' }}{{ rtrim(rtrim(number_format((float)$plan->price,2), '0'), '.') }}<small>/{{ $plan->billing_period ?: 'month' }}</small>@else Custom @endif</strong><p>{{ $plan->description }}</p><ul>@foreach((array)$plan->features as $feature)<li>{{ $feature }}</li>@endforeach</ul><a class="btn {{ $plan->is_featured ? 'primary' : 'secondary' }}" href="{{ $plan->cta_url ?: '#contact' }}">{{ $plan->cta_label ?: 'Learn more' }}</a></article>
|
||||
@endforeach
|
||||
</div></div></section>
|
||||
@endif
|
||||
|
||||
@if($enabled('show_testimonials', true) && $testimonials->isNotEmpty())
|
||||
<section class="section"><div class="wrap"><div class="heading"><span>Customer stories</span><h2>Trusted by ambitious teams</h2></div><div class="grid three">@foreach($testimonials as $testimonial)<blockquote class="card">“{{ $testimonial->content }}”<footer>{{ $testimonial->name }}@if($testimonial->company) · {{ $testimonial->company }}@endif</footer></blockquote>@endforeach</div></div></section>
|
||||
@endif
|
||||
|
||||
@if($enabled('show_team', false) && $teamMembers->isNotEmpty())
|
||||
<section class="section alt"><div class="wrap"><div class="heading"><span>Our team</span><h2>People behind the platform</h2></div><div class="grid three">@foreach($teamMembers as $member)<article class="card"><h3>{{ $member->name }}</h3><b>{{ $member->job_title }}</b><p>{{ $member->biography }}</p></article>@endforeach</div></div></section>
|
||||
@endif
|
||||
|
||||
@if($enabled('show_blog', true) && $latestBlogPosts->isNotEmpty())
|
||||
<section class="section"><div class="wrap"><div class="heading"><span>Insights</span><h2>Latest from the blog</h2></div><div class="grid three">@foreach($latestBlogPosts as $post)<article class="card"><b>{{ optional($post->published_at)->format('d M Y') }}</b><h3>{{ $post->title }}</h3><p>{{ $post->excerpt }}</p><a class="read-more" href="{{ route('blog.public.show',$post->slug) }}">Read article →</a></article>@endforeach</div></div></section>
|
||||
@endif
|
||||
|
||||
@if($enabled('show_news', true) && $latestNewsArticles->isNotEmpty())
|
||||
<section class="section alt"><div class="wrap"><div class="heading"><span>Newsroom</span><h2>Latest news</h2></div><div class="grid three">@foreach($latestNewsArticles as $article)<article class="card"><b>{{ optional($article->published_at)->format('d M Y') }}</b><h3>{{ $article->title }}</h3><p>{{ $article->excerpt }}</p><a class="read-more" href="{{ route('news.public.show',$article->slug) }}">Read update →</a></article>@endforeach</div></div></section>
|
||||
@endif
|
||||
|
||||
@if($enabled('show_faq', true) && $faqs->isNotEmpty())
|
||||
<section class="section"><div class="wrap faq"><div><span class="section-label">FAQ</span><h2>Answers before you begin</h2></div><div>@foreach($faqs as $faq)<article><button type="button" @click="openFaq = openFaq === {{ $faq->id }} ? null : {{ $faq->id }}">{{ $faq->question }}<span>+</span></button><p x-cloak x-show="openFaq === {{ $faq->id }}">{{ $faq->answer }}</p></article>@endforeach</div></div></section>
|
||||
@endif
|
||||
|
||||
@if($enabled('show_newsletter', true))
|
||||
<section class="section alt"><div class="wrap"><div class="content-card newsletter-panel"><div><span class="section-label">Newsletter</span><h2>Useful updates, no noise</h2><p>Receive product news, publishing guidance, and practical platform updates.</p></div><form method="POST" action="{{ route('newsletter.public.subscribe') }}">@csrf<input type="email" name="email" required placeholder="you@example.com" aria-label="Email address"><button class="btn primary" type="submit">Subscribe</button></form></div></div></section>
|
||||
@endif
|
||||
|
||||
<section class="cta" id="contact"><div class="wrap"><h2>{{ $themeSettings['cta_title'] ?? 'Ready to transform your business?' }}</h2><p>{{ $themeSettings['cta_description'] ?? 'Start building a faster, more connected operation today.' }}</p>@auth<a class="btn light" href="{{ route('dashboard') }}">Open dashboard →</a>@else @if(Route::has('register'))<a class="btn light" href="{{ route('register') }}">Get started free →</a>@endif @endauth</div></section>
|
||||
@@ -0,0 +1,74 @@
|
||||
@extends('stylist-theme-saasland::layouts.app')
|
||||
|
||||
@php
|
||||
$title = $siteTitle;
|
||||
$description = $siteDescription;
|
||||
$hero = true;
|
||||
$enabled = fn (string $key, bool $default = true) => filter_var($themeSettings[$key] ?? $default, FILTER_VALIDATE_BOOL);
|
||||
$heroTitle = filled($themeSettings['hero_title'] ?? null) ? $themeSettings['hero_title'] : 'Transform Your Business With Our SaaS Solution';
|
||||
$heroText = filled($themeSettings['hero_description'] ?? null) ? $themeSettings['hero_description'] : 'Streamline operations, boost productivity, and improve customer satisfaction with one connected platform built for modern teams.';
|
||||
@endphp
|
||||
|
||||
@section('content')
|
||||
<section class="hero">
|
||||
<div class="glow one"></div><div class="glow two"></div>
|
||||
<div class="wrap hero-inner">
|
||||
<span class="eyebrow">{{ $themeSettings['hero_eyebrow'] ?? 'A better way to run your business' }}</span>
|
||||
<h1>{{ $heroTitle }}</h1>
|
||||
<p>{{ $heroText }}</p>
|
||||
<div class="actions">
|
||||
<a class="btn primary" href="{{ $themeSettings['primary_cta_url'] ?? (Route::has('register') ? route('register') : '#contact') }}">{{ $themeSettings['primary_cta_label'] ?? 'Get started free' }} →</a>
|
||||
<a class="btn secondary" href="{{ $themeSettings['secondary_cta_url'] ?? '#contact' }}">{{ $themeSettings['secondary_cta_label'] ?? 'Book demo' }}</a>
|
||||
</div>
|
||||
@if($enabled('show_metrics', true))
|
||||
<div class="dashboard">
|
||||
<div class="dash-top"><b>Performance overview</b><span>Live</span></div>
|
||||
<div class="metrics"><article><small>Monthly revenue</small><strong>£48,240</strong><em>+18.4%</em></article><article><small>Active users</small><strong>12,842</strong><em>+9.2%</em></article><article><small>Conversion</small><strong>7.8%</strong><em>+2.1%</em></article></div>
|
||||
<div class="chart" aria-label="Performance chart"><i style="height:28%"></i><i style="height:42%"></i><i style="height:35%"></i><i style="height:62%"></i><i style="height:54%"></i><i style="height:78%"></i><i style="height:92%"></i></div>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@if($enabled('show_features', true))
|
||||
<section class="section" id="features"><div class="wrap"><div class="heading"><span>Powerful features</span><h2>Everything your team needs to grow</h2><p>Planning, collaboration, reporting, publishing, commerce and customer insight in one extensible platform.</p></div><div class="grid three">
|
||||
@foreach([['Smart automation','Remove repetitive work and delays.'],['Real-time analytics','Turn activity into useful business insight.'],['Content operations','Create, review and publish confidently.'],['Secure by design','Protect users and data with dependable controls.'],['Flexible integrations','Connect the tools your organisation already uses.'],['Modular architecture','Activate only the capabilities each site needs.']] as $i => $feature)
|
||||
<article class="card"><b>{{ str_pad((string)($i+1),2,'0',STR_PAD_LEFT) }}</b><h3>{{ $feature[0] }}</h3><p>{{ $feature[1] }}</p></article>
|
||||
@endforeach
|
||||
</div></div></section>
|
||||
@endif
|
||||
|
||||
@if($enabled('show_pricing', true) && $pricingPlans->isNotEmpty())
|
||||
<section class="section alt" id="pricing"><div class="wrap"><div class="heading"><span>Simple pricing</span><h2>Choose a plan that fits</h2><p>Plans are managed from Products & Pricing in the CMS.</p></div><div class="grid three pricing">
|
||||
@foreach($pricingPlans as $plan)
|
||||
<article class="card plan {{ $plan->is_featured ? 'featured' : '' }}">@if($plan->is_featured)<div class="popular">Most popular</div>@endif<h3>{{ $plan->name }}</h3><strong>@if($plan->price !== null){{ $plan->currency === 'GBP' ? '£' : $plan->currency.' ' }}{{ rtrim(rtrim(number_format((float)$plan->price,2), '0'), '.') }}<small>/{{ $plan->billing_period ?: 'month' }}</small>@else Custom @endif</strong><p>{{ $plan->description }}</p><ul>@foreach((array)$plan->features as $feature)<li>{{ $feature }}</li>@endforeach</ul><a class="btn {{ $plan->is_featured ? 'primary' : 'secondary' }}" href="{{ $plan->cta_url ?: '#contact' }}">{{ $plan->cta_label ?: 'Learn more' }}</a></article>
|
||||
@endforeach
|
||||
</div></div></section>
|
||||
@endif
|
||||
|
||||
@if($enabled('show_testimonials', true) && $testimonials->isNotEmpty())
|
||||
<section class="section"><div class="wrap"><div class="heading"><span>Customer stories</span><h2>Trusted by ambitious teams</h2></div><div class="grid three">@foreach($testimonials as $testimonial)<blockquote class="card">“{{ $testimonial->content }}”<footer>{{ $testimonial->name }}@if($testimonial->company) · {{ $testimonial->company }}@endif</footer></blockquote>@endforeach</div></div></section>
|
||||
@endif
|
||||
|
||||
@if($enabled('show_team', false) && $teamMembers->isNotEmpty())
|
||||
<section class="section alt"><div class="wrap"><div class="heading"><span>Our team</span><h2>People behind the platform</h2></div><div class="grid three">@foreach($teamMembers as $member)<article class="card"><h3>{{ $member->name }}</h3><b>{{ $member->job_title }}</b><p>{{ $member->biography }}</p></article>@endforeach</div></div></section>
|
||||
@endif
|
||||
|
||||
@if($enabled('show_blog', true) && $latestBlogPosts->isNotEmpty())
|
||||
<section class="section"><div class="wrap"><div class="heading"><span>Insights</span><h2>Latest from the blog</h2></div><div class="grid three">@foreach($latestBlogPosts as $post)<article class="card"><b>{{ optional($post->published_at)->format('d M Y') }}</b><h3>{{ $post->title }}</h3><p>{{ $post->excerpt }}</p><a class="read-more" href="{{ route('blog.public.show',$post->slug) }}">Read article →</a></article>@endforeach</div></div></section>
|
||||
@endif
|
||||
|
||||
@if($enabled('show_news', true) && $latestNewsArticles->isNotEmpty())
|
||||
<section class="section alt"><div class="wrap"><div class="heading"><span>Newsroom</span><h2>Latest news</h2></div><div class="grid three">@foreach($latestNewsArticles as $article)<article class="card"><b>{{ optional($article->published_at)->format('d M Y') }}</b><h3>{{ $article->title }}</h3><p>{{ $article->excerpt }}</p><a class="read-more" href="{{ route('news.public.show',$article->slug) }}">Read update →</a></article>@endforeach</div></div></section>
|
||||
@endif
|
||||
|
||||
@if($enabled('show_faq', true) && $faqs->isNotEmpty())
|
||||
<section class="section"><div class="wrap faq"><div><span class="section-label">FAQ</span><h2>Answers before you begin</h2></div><div>@foreach($faqs as $faq)<article><button type="button" @click="openFaq = openFaq === {{ $faq->id }} ? null : {{ $faq->id }}">{{ $faq->question }}<span>+</span></button><p x-cloak x-show="openFaq === {{ $faq->id }}">{{ $faq->answer }}</p></article>@endforeach</div></div></section>
|
||||
@endif
|
||||
|
||||
@if($enabled('show_newsletter', true))
|
||||
<section class="section alt"><div class="wrap"><div class="content-card newsletter-panel"><div><span class="section-label">Newsletter</span><h2>Useful updates, no noise</h2><p>Receive product news, publishing guidance, and practical platform updates.</p></div><form method="POST" action="{{ route('newsletter.public.subscribe') }}">@csrf<input type="email" name="email" required placeholder="you@example.com" aria-label="Email address"><button class="btn primary" type="submit">Subscribe</button></form></div></div></section>
|
||||
@endif
|
||||
|
||||
<section class="cta" id="contact"><div class="wrap"><h2>{{ $themeSettings['cta_title'] ?? 'Ready to transform your business?' }}</h2><p>{{ $themeSettings['cta_description'] ?? 'Start building a faster, more connected operation today.' }}</p>@auth<a class="btn light" href="{{ route('dashboard') }}">Open dashboard →</a>@else @if(Route::has('register'))<a class="btn light" href="{{ route('register') }}">Get started free →</a>@endif @endauth</div></section>
|
||||
@endsection
|
||||
Reference in New Issue
Block a user