first commit

This commit is contained in:
benjibennn
2023-12-22 12:35:55 +08:00
commit 9f89a732d6
872 changed files with 156291 additions and 0 deletions

View File

@@ -0,0 +1,44 @@
@php $announcement = Wave\Announcement::orderBy('created_at', 'DESC')->first() @endphp
<div id="announcement" class="fixed bottom-0 right-0 z-50 flex items-end justify-center px-4 py-6 transition-all duration-200 ease-out transform translate-y-0 opacity-100 cursor-pointer pointer-events-none hover:-translate-y-1 sm:p-6 sm:items-start sm:justify-end" data-href="{{ route('wave.announcement', $announcement->id) }}">
<div id="announcement_content" class="relative w-full max-w-sm bg-white border border-gray-200 rounded-lg shadow-lg pointer-events-auto">
<div class="relative p-5">
<span id="announcement_close" class="absolute top-0 right-0 inline-flex mt-5 mr-5 text-gray-400 transition duration-150 ease-in-out cursor-pointer focus:outline-none focus:text-gray-500">
<svg class="w-5 h-5" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor">
<path fill-rule="evenodd" d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z" clip-rule="evenodd" />
</svg>
</span>
<h4 class="text-sm font-medium leading-5 text-gray-900">{{ $announcement->title }}</h4>
<p class="mt-2 text-sm leading-5 text-gray-500">{{ $announcement->description }}</p>
<div id="announcement_footer" class="mt-1"><a href="{{ route('wave.announcement', $announcement->id) }}" class="text-sm font-medium leading-5 text-indigo-600 transition duration-150 ease-in-out hover:text-indigo-500 focus:outline-none focus:underline">Learn More</a></div>
</div>
</div>
</div>
<script>
var announcementEl = document.getElementById('announcement');
document.getElementById('announcement_close').addEventListener('click', function(evt){
announcementEl.classList.remove('opacity-100');
announcementEl.classList.add('opacity-0');
markNotificationsRead();
evt.stopPropagation();
setTimeout(function(){
announcementEl.remove();
}, 300);
});
announcementEl.addEventListener('click', function(e){
if(e.target.parentElement.id != "announcement_close" && e.target.id != "announcement_close"){
markNotificationsRead();
window.location = announcementEl.dataset.href;
}
});
function markNotificationsRead(endpoint, splitPopReadyState){
var HttpRequest = new XMLHttpRequest();
HttpRequest.open("POST", "{{ route('wave.announcements.read') }}", true);
HttpRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
HttpRequest.send("_token={{ csrf_token() }}");
}
</script>

View File

@@ -0,0 +1,53 @@
<!-- Cancel Confirmation -->
<div x-data x-init="
$watch('$store.confirmCancel.open', value => {
if (value === true) { document.body.classList.add('overflow-hidden') }
else { document.body.classList.remove('overflow-hidden') }
});" id="confirmCancel" x-show="$store.confirmCancel.open" class="fixed inset-0 z-50 overflow-y-auto" x-cloak>
<div class="flex items-end justify-center min-h-screen px-4 pt-4 pb-20 text-center sm:block sm:p-0">
<div x-show="$store.confirmCancel.open" x-on:click="$store.confirmCancel.open = false" x-transition:enter="ease-out duration-300" x-transition:enter-start="opacity-0" x-transition:enter-end="opacity-100" x-transition:leave="ease-in duration-200" x-transition:leave-start="opacity-100" x-transition:leave-end="opacity-0" class="fixed inset-0 transition-opacity">
<div class="absolute inset-0 bg-black opacity-50"></div>
</div>
<span class="hidden sm:inline-block sm:align-middle sm:h-screen"></span>&#8203;
<div x-show="$store.confirmCancel.open" x-transition:enter="ease-out duration-300" x-transition:enter-start="opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95" x-transition:enter-end="opacity-100 translate-y-0 sm:scale-100" x-transition:leave="ease-in duration-200" x-transition:leave-start="opacity-100 translate-y-0 sm:scale-100" x-transition:leave-end="opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95" class="inline-block px-4 pt-5 pb-4 overflow-hidden text-left align-bottom transition-all transform bg-white rounded-lg shadow-xl sm:my-8 sm:align-middle sm:max-w-lg sm:w-full sm:p-6" role="dialog">
<div class="flex flex-col justify-between w-full mt-2">
<div class="flex flex-col items-center">
<div class="flex items-center justify-center w-12 h-12 mx-auto text-center bg-red-100 rounded-full">
<svg class="w-6 h-6 text-red-600" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"></path>
</svg>
</div>
<div class="mt-3 text-center sm:ml-4">
<h3 class="text-lg font-medium leading-6 text-gray-900" id="modal-headline">
Cancel Subscription
</h3>
<div class="mt-1">
<p class="text-sm leading-5 text-gray-500">Are you sure you want to cancel?</p>
</div>
</div>
</div>
<div class="mt-5 sm:mt-6 sm:flex sm:flex-row-reverse">
<span class="flex flex-1 w-full rounded-md shadow-sm sm:ml-3 sm:w-full">
<div data-url="{{ auth()->user()->subscription->cancel_url }}" @click="$store.confirmCancel.open=false" class="inline-flex justify-center w-full px-4 py-2 text-base font-medium leading-6 text-white transition duration-150 ease-in-out bg-red-600 border border-transparent rounded-md shadow-sm cursor-pointer checkout-cancel hover:bg-red-500 focus:outline-none focus:border-red-700 focus:shadow-outline-red sm:text-sm sm:leading-5">
Cancel Subscription
</div>
</span>
<span class="flex flex-1 w-full mt-3 rounded-md shadow-sm sm:mt-0 sm:w-full">
<button onclick="closeCancelModal()" type="button" class="inline-flex justify-center w-full px-4 py-2 text-base font-medium leading-6 text-gray-700 transition duration-150 ease-in-out bg-white border border-gray-300 rounded-md shadow-sm hover:text-gray-500 focus:outline-none focus:border-blue-300 focus:shadow-outline-blue sm:text-sm sm:leading-5">
Close
</button>
</span>
</div>
</div>
</div>
</div>
</div>
<!-- END Cancel Confirmation -->
<!-- Javascript to close the modal -->
<script>
window.closeCancelModal = function(){
Alpine.store('confirmCancel').close();
}
</script>

View File

@@ -0,0 +1,7 @@
<div class="flex items-center justify-between p-5 m-8 bg-red-200 border border-red-400 rounded-lg">
<div class="relative">
<h5 class="mb-2 text-xl font-bold text-red-700">Cancel Subscription Plan</h5>
<p class="text-red-600">Danger Zone! This will cancel your subscription</p>
</div>
<div @click="$store.confirmCancel.open = true" class="px-4 py-2 text-sm font-medium text-white bg-red-600 rounded-lg cursor-pointer">Cancel</div>
</div>

View File

@@ -0,0 +1,124 @@
@php
$companies = \App\Models\Company::whereNotNull('name_english')->whereNotNull('name_chinese')->orderBy('created_at', 'desc')->get()->take(5);
if ($companies && ! auth()->user()->adminActiveCompany) {
auth()->user()->update([
'admin_active_company_id' => $companies->first()->id,
]);
}
@endphp
<div class="main-dashboard-navigation">
<div class="main-dashboard-title">
<h1 class="h2-title white">{{ __("Hi, :Name Welcome back!", ['name' => auth()->user()->name]) }}</h1>
</div>
<div class="main-dashboard-buttons">
<ul>
<li class="has-dropdown">
<a href="" class="with-dropdown"><img src="{{ asset('themes/tailwind/images/language.svg') }}"> {{ strtoupper(app()->getLocale()) }}</a>
<ul class="dropdown user-selection">
@foreach(config('app.available_locales') as $available_locale => $locale_name)
<li class="{{ $available_locale === app()->getLocale() ? 'active' : '' }}"><a class="change-language" href="{{ route('language', [$available_locale]) }}">{{ $locale_name }}</a></li>
@endforeach
</ul>
</li>
<li class="has-dropdown">
{{-- <a href="" class="with-dropdown"><img src="{{ asset('themes/tailwind/images/sample-user.svg') }}"> {{ auth()->user()->name }}</a> --}}
<a href="" class="with-dropdown"><img src="{{ asset('themes/tailwind/images/sample-user.svg') }}"> {{ isset(auth()->user()->adminActiveCompany->name) ? auth()->user()->adminActiveCompany->name : '' }}</a>
<ul class="dropdown user-selection">
@foreach($companies as $company)
<li class="{{ auth()->user()->admin_active_company_id === $company->id ? 'active' : '' }}"><a class="" href="{{ route('cms.change-active-company', [$company->id]) }}"><img src="{{ asset('themes/tailwind/images/sample-company.png') }}"> {{ $company->name ?? 'null' }}</a></li>
@endforeach
<li>
<div class="user-selection__buttons">
<button class="btn" type="button">{{ __("Add Account") }}</button>
<a href="{{ route('wave.logout') }}" class="btn btn-error" >{{ __("Logout this account") }}</a>
</div>
</li>
</ul>
</li>
<li class="has-dropdown mr-0">
<a href="" class="position-relative notification-icon">
<img src="{{ asset('themes/tailwind/images/notification.svg') }}">
<span class="new-icon" style="display:none;"></span>
</a>
<ul class="dropdown notification-selection">
<h3 class="dropdown-title">{{ __("Notification") }}</h3>
<div id="notificationWrapper">
{{-- <div class="dropdown-list-item">
<div class="dropdown-sidetext">
<h4 class="dropdown-subtitle">{{ __("Service Chat") }}</h4>
<a href="">{{ __("Check") }}</a>
</div>
<ul class="dropdown-list">
<li>
<div class="item-list">
<img src="{{ asset('themes/tailwind/images/building.svg') }}">
<span>Hi. I am Logistics Manager at companyA. My Name is Ellen... </span>
<a href="">{{ __("Check") }}</a>
</div>
</li>
<li>
<div class="item-list">
<img src="{{ asset('themes/tailwind/images/building.svg') }}">
<span>Hi. I am Logistics Manager at companyA. My Name is Ellen... </span>
<a href="">{{ __("Check") }}</a>
</div>
</li>
</ul>
</div>
<div class="dropdown-list-item">
<div class="dropdown-sidetext">
<h4 class="dropdown-subtitle">{{ __("Service Chat") }}</h4>
<a href="">{{ __("Check") }}</a>
</div>
<ul class="dropdown-list">
<li>
<div class="item-list">
<img src="{{ asset('themes/tailwind/images/pdf.svg') }}">
<span>ABC Ltd_202301Bank statement_... <i class="success item-list-note">Entry Completed</i></span>
<a href="">{{ __("Check") }}</a>
</div>
</li>
<li>
<div class="item-list">
<img src="{{ asset('themes/tailwind/images/pdf.svg') }}">
<span>ABC Ltd_202301Bank statement_... <i class="success item-list-note">Entry Completed</i></span>
<a href="">{{ __("Check") }}</a>
</div>
</li>
</ul>
</div>
<div class="dropdown-list-item">
<div class="dropdown-sidetext">
<h4 class="dropdown-subtitle">{{ __("Service Chat") }}</h4>
<a href="">{{ __("Check") }}</a>
</div>
<ul class="dropdown-list">
<li>
<div class="item-list">
<img src="{{ asset('themes/tailwind/images/jpg.svg') }}">
<span>ABC Ltd_202301Bank statement_... <i class="item-list-note success">Entry Completed</i></span>
<a href="">{{ __("Check") }}</a>
</div>
</li>
<li>
<div class="item-list">
<img src="{{ asset('themes/tailwind/images/jpg.svg') }}">
<span>ABC Ltd_202301Bank statement_... <i class="failed item-list-note">Failed</i></span>
<a href="">{{ __("Check") }}</a>
</div>
</li>
</ul>
</div> --}}
</div>
<a href="#" class="d-flex align-items-center justify-content-center py-3" id="notificationShowMore" style="font-size: 16px;">{{ __("Show more") }}</a>
</ul>
</li>
@if (auth()->user()->userRole->hasAccess('manage-company-settings'))
<li>
<a href="{{ route('cms.settings') }}"><img src="{{ asset('themes/tailwind/images/setting.svg') }}"></a>
</li>
@endif
</ul>
</div>
</div>

View File

@@ -0,0 +1,18 @@
<div class="relative bottom-0 left-0 z-30 hidden w-full h-16 md:block bg-gradient-to-r from-wave-500 via-wave-600 to-purple-500">
<div class="flex items-center justify-between w-full h-full px-3 mx-auto max-w-7xl">
<div class="relative flex items-center">
<a href="https://devdojo.com/wave" target="_blank" class="flex items-center text-sm text-blue-200 hover:underline">
<span class="hidden font-medium text-blue-100 xl:block">This is a demo of Wave.</span>
<span class="ml-1 font-normal">The self-hosted Software as a Service Starter Kit</span>
<svg class="w-5 h-5 ml-1" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 8l4 4m0 0l-4 4m4-4H3"></path></svg>
</a>
</div>
<div class="w-auto">
<a href="https://github.com/thedevdojo/wave" target="_blank" class="flex items-center h-8 px-3 text-sm font-medium text-white border border-white rounded-md cursor-pointer">
<svg class="w-7 h-8 h-full pr-1 pr-2.5 border-r text-white" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true"><path fill-rule="evenodd" d="M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z" clip-rule="evenodd"></path></svg>
<span class="py-1.5 pl-2.5">View On Github</span>
</a>
</div>
</div>
</div>

View File

@@ -0,0 +1,52 @@
<div
x-init="$watch('open', value => {
if(value){
document.body.classList.add('overflow-hidden');
let thisElement = $el;
} else {
document.body.classList.remove('overflow-hidden');
}})"
id="wave_dev_bar"
class="fixed bottom-0 left-0 z-40 w-full h-screen transition-all duration-150 ease-out transform"
x-data="{ open: false, url: '', active: '' }"
:class="{ 'translate-y-full': !open, 'translate-y-0': open }"
x-on:keydown.escape.window="open = false"
x-cloak>
<div class="fixed inset-0 z-20 bg-black bg-opacity-25" x-show="open" @click="open=false"></div>
<div class="absolute inset-0 z-30 hidden sm:block" :class="{ 'bottom-0': !open }">
<div class="inset-0 z-40 transition duration-200 ease-out" :class="{ 'absolute h-14': open, 'relative h-10 -mt-10': !open }">
<div class="w-full h-full border-t border-blue-500 bg-gradient-to-r from-wave-500 via-blue-500 to-purple-600" :class="{ 'overflow-hidden': open }">
<div class="flex justify-between w-full h-full">
<div class="flex h-full">
<div class="relative flex items-center justify-center h-full" :class="{ 'px-2': !open, 'px-4': open }">
<svg class="mx-0.5" :class="{ 'w-5 h-5': !open, 'w-6 h-6': open }" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 208 206"><defs></defs><defs><linearGradient id="a_devbar" x1="100%" x2="0%" y1="45.596%" y2="45.596%"><stop offset="0%" stop-color="#ffffff"></stop><stop offset="100%" stop-color="#ffffff"></stop></linearGradient><linearGradient id="b_devbar" x1="50%" x2="50%" y1="0%" y2="100%"><stop offset="0%" stop-color="#ffffff"></stop><stop offset="100%" stop-color="#ffffff"></stop></linearGradient><linearGradient id="c_devbar" x1="0%" x2="99.521%" y1="50%" y2="50%"><stop offset="0%" stop-color="#ffffff"></stop><stop offset="99.931%" stop-color="#ffffff"></stop></linearGradient></defs><g fill="none" fill-rule="evenodd"><path fill="url(#a_devbar)" d="M185.302 38c14.734 18.317 22.742 41.087 22.698 64.545C208 159.68 161.43 206 103.986 206c-39.959-.01-76.38-22.79-93.702-58.605C-7.04 111.58-2.203 69.061 22.727 38a104.657 104.657 0 00-9.283 43.352c0 54.239 40.55 98.206 90.57 98.206 50.021 0 90.571-43.973 90.571-98.206A104.657 104.657 0 00185.302 38z"></path><path fill="url(#b_devbar)" d="M105.11 0A84.144 84.144 0 01152 14.21C119.312-.651 80.806 8.94 58.7 37.45c-22.105 28.51-22.105 68.58 0 97.09 22.106 28.51 60.612 38.101 93.3 23.239-30.384 20.26-70.158 18.753-98.954-3.75-28.797-22.504-40.24-61.021-28.47-95.829C36.346 23.392 68.723.002 105.127.006L105.11 0z"></path><path fill="url(#c_devbar)" d="M118.98 13c36.39-.004 66.531 28.98 68.875 66.234 2.343 37.253-23.915 69.971-60.006 74.766 29.604-8.654 48.403-38.434 43.99-69.685-4.413-31.25-30.678-54.333-61.459-54.014-30.78.32-56.584 23.944-60.38 55.28v-1.777C49.99 44.714 80.872 13.016 118.98 13z"></path></g></svg>
</div>
<div @click="open=true; url='/docs'; active='docs';" class="flex items-center justify-center h-full text-xs leading-none text-blue-100 border-l border-blue-500 cursor-pointer hover:bg-wave-600" :class="{ 'px-3': !open, 'px-5': open, 'bg-wave-600': active == 'docs' && open, 'bg-wave-500': active != 'docs' }">
Documentation
</div>
@if(!auth()->guest() && auth()->user()->can('browse_admin'))
<div @click="open=true; url='/admin'; active='admin';" class="flex items-center justify-center h-full text-xs leading-none text-blue-100 border-l border-blue-500 cursor-pointer hover:bg-wave-600" :class="{ 'px-3': !open, 'px-5': open, 'bg-wave-600': active == 'admin' && open, 'bg-wave-500': active != 'admin' }">
Admin
</div>
@endif
</div>
<div x-show="open" @click="open=false" class="flex flex-col items-center justify-center h-full text-white border-l border-purple-500 opacity-75 cursor-pointer w-14 hover:bg-black hover:bg-opacity-10 hover:opacity-100">
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path></svg>
<span class="text-xs opacity-50">esc</span>
</div>
</div>
</div>
</div>
<div class="relative w-full h-full overflow-hidden bg-white">
<iframe class="w-full h-full pt-14" :src="url"></iframe>
</div>
</div>
</div>

View File

@@ -0,0 +1,231 @@
<!-- Section 1 -->
<footer class="@if(Request::is('/')){{ 'bg-white' }}@else{{ 'bg-gray-50' }}@endif">
<div class="px-8 pt-16 mx-auto lg:px-12 xl:px-16 max-w-7xl">
<div class="flex flex-wrap items-start justify-between pb-20">
<a href="#_" class="flex items-center w-auto text-lg font-bold md:w-1/6">
@if(Voyager::image(theme('footer_logo')))
<img class="h-10" src="{{ Voyager::image(theme('footer_logo')) }}" alt="Company name">
@else
<div class="relative flex items-center text-gray-500 leading-tighter">
<svg class="h-8 mt-1 fill-current" viewBox="0 0 164 145" xmlns="http://www.w3.org/2000/svg"><path d="M161.47 45.02c-.22-1-.46-2-.72-3v-.28l-.19-.27-.18-.66h-.14c-2.69-7.59-9.38-11.76-18.95-11.76-14.1 0-33.18 9-51.05 24.2l-2.3 2c-18.72-8.37-27.87-24.27-35.26-37.1C46.86 8.03 42.26.04 34.68.04c-3.8 0-7.73 2.05-12.29 6.39-.15.14-15.84 15.85-21.08 41.81a76.56 76.56 0 001.13 33.75v.19c.06.26.12.52.2.78v.16c.54 2.08 1.2 4.21 2 6.35l.25.69a81.55 81.55 0 00130.26 33.92l.75-.59v-.08a81.73 81.73 0 0025.51-43.44c.24-1.11.46-2.24.66-3.36a83.42 83.42 0 001.08-8.83 80.61 80.61 0 00-1.68-22.76zm-67.95 12c17-14.4 34.86-23 47.81-23 7.5 0 12.3 2.85 14.26 8.48l-.07.42.24.34c.06.46.08.91.11 1.36V46.9c0 .57-.09 1.12-.17 1.66v.25c-.08.46-.16.92-.28 1.36-.12.44-.23.74-.35 1.1-.05.14-.08.28-.14.41a13.28 13.28 0 01-2.42 4c-4.47 5.18-13.39 8-25.13 8-1.22 0-2.46 0-3.72-.1h-.46c-1.2-.06-2.42-.16-3.65-.28l-.64-.06c-1.21-.13-2.44-.28-3.68-.46l-.64-.1c-1.27-.19-2.53-.4-3.81-.64l-.47-.09c-1.31-.26-2.63-.53-4-.84h-.11c-1.33-.31-2.66-.65-4-1l-.54-.15c-1.28-.35-2.55-.73-3.81-1.13l-.67-.21c-1.25-.41-2.49-.83-3.73-1.28l-.26-.09.33-.23zM5.26 68.34a67.54 67.54 0 011-19.13 83.46 83.46 0 0119.57-39.12c3.53-3.36 6.53-5.07 8.9-5.07 4.67 0 8.63 6.89 13.65 15.6C55.46 32.93 65 49.51 83.79 58.79l-.14.12-.77.66c-9.74 8.39-20.7 17.82-31.24 25.22C43.55 69.34 32.39 60.48 21 60.48a19.21 19.21 0 00-15.12 7c-.19.26-.41.55-.62.86zm4.42 20.08c-.8-2.19-1.48-4.37-2-6.5l-.06-.25a5.18 5.18 0 01-.14-.53v-.2c-.06-.25-.09-.5-.13-.75-.04-.25-.08-.46-.1-.69-.02-.23 0-.48 0-.72v-.64-.73-.62c0-.2.08-.47.12-.7.04-.23.07-.42.12-.63.05-.21.12-.43.19-.65.07-.22.11-.43.19-.64.08-.21.16-.38.24-.57.08-.19.18-.45.29-.67.11-.22.17-.31.26-.47.09-.16.26-.49.41-.72a.86.86 0 01.07-.1c.23-.346.476-.68.74-1a14.22 14.22 0 0111.22-5.13c9.49 0 19.07 7.93 26.27 21.74l.21.39c-10.5 6.88-18.71 10.24-25 10.24-5.99-.05-10.18-3.14-12.9-9.48v.02zm72.1 50.66a76.7 76.7 0 01-13.33-1.17c-1.24-.22-2.46-.47-3.68-.75l-.7-.16c-1.17-.28-2.33-.58-3.49-.92l-.65-.19c-1.14-.34-2.27-.7-3.38-1.09l-.19-.06a83.04 83.04 0 01-3.42-1.31l-.67-.28c-1.1-.46-2.19-.94-3.26-1.45l-.55-.27c-1-.5-2.07-1-3.08-1.58-.09-.05-.19-.09-.28-.15-1.06-.58-2.1-1.19-3.13-1.81l-.61-.38c-1-.63-2-1.28-3-2l-.43-.3c-.94-.66-1.86-1.33-2.77-2-.1-.09-.22-.17-.32-.25-.947-.74-1.877-1.5-2.79-2.28l-.54-.46c-.9-.79-1.79-1.59-2.66-2.42l-.31-.31c-.82-.79-1.63-1.6-2.42-2.44l-.34-.35a76.17 76.17 0 01-2.38-2.69l-.46-.54c-.78-.93-1.53-1.87-2.27-2.83l-.2-.28c-.7-.92-1.37-1.87-2-2.82l-.33-.48c-.66-1-1.31-2-1.93-3l-.16-.27c8.08 2.92 19.11-.15 33.93-9.8.45.75.91 1.5 1.39 2.24l.33.5c.37.56.74 1.13 1.12 1.68l.53.75c.32.47.65.93 1 1.39l.63.83.94 1.26c.23.29.46.57.68.86l.94 1.17.73.87.95 1.12c.25.29.51.57.77.86l1 1.07.8.85 1 1 .83.83 1 1 .22.21c.082.088.169.172.26.25l.36.34 1 .91.94.85.94.83 1 .86c.3.25.6.51.91.75l1.06.86.89.7 1.12.85.85.63 1.18.84.83.58c.4.28.81.55 1.22.82l.81.52c.42.28.84.54 1.26.8l.79.48 1.31.77.76.44 1.35.74.74.39 1.38.7.72.35 1.42.67.7.31 1.45.62c.22.1.45.18.67.27l1.49.59.64.23c.51.19 1 .37 1.52.54l.61.2 1.55.48.58.17c.53.15 1.06.3 1.59.43l.53.13c.55.13 1.09.27 1.64.38l.47.1c.56.11 1.12.23 1.69.32.12 0 .25 0 .37.06.59.1 1.19.2 1.78.28h.21a49.06 49.06 0 006.14.4c.79 0 1.57 0 2.34-.07h.29a76.19 76.19 0 01-32.42 7.21v.02zm75.37-63.34c-.19 1.07-.4 2.14-.64 3.2a76.65 76.65 0 01-24.5 41.23l-.08.06c-.45.35-.91.66-1.37 1l-.6.4-.44.3c-.39.25-.8.48-1.2.71l-.79.45-.28.15c-.42.22-.85.42-1.28.62-.43.2-.73.35-1.11.5-.38.15-.9.35-1.36.52-.46.17-.74.28-1.12.4-.38.12-1 .28-1.46.41-.46.13-.75.22-1.13.3-.38.08-1.06.22-1.59.31-.37.07-.72.15-1.09.21-.61.09-1.23.14-1.84.2l-.95.11c-.94.06-1.9.1-2.87.1-.66 0-1.32 0-2-.05h-.65l-1.34-.09-.79-.09-1.21-.14-.84-.13-1.17-.19-.88-.17-1.13-.23-.9-.22c-.37-.09-.75-.17-1.12-.27l-.91-.25-1.11-.32-.92-.3c-.37-.11-.74-.23-1.1-.36-.36-.13-.61-.21-.92-.33l-1.1-.4-.91-.36-1.1-.45-.91-.4-1.1-.49-.9-.43-1.09-.54-.9-.46-1.08-.58-.89-.49-1.07-.62-.89-.53-1.06-.65-.87-.56-1.05-.69-.87-.59-1-.73-.85-.61-1-.77-.84-.65-1-.8c-.28-.22-.56-.44-.83-.67l-1-.84-.82-.7-.81-.72-.17-.15-.78-.72-1-.94-.72-.69-1-1-.66-.67-1.06-1.12-.58-.63-1.1-1.23-.5-.57c-.39-.45-.78-.91-1.16-1.37-.13-.16-.27-.32-.4-.49-.41-.5-.81-1-1.21-1.52l-.31-.38c-.43-.56-.85-1.13-1.27-1.7l-.19-.26c-.47-.64-.92-1.29-1.37-1.94v-.06c-.34-.49-.66-1-1-1.47-.48-.73-.95-1.47-1.4-2.22-.15-.24-.3-.47-.44-.71 10.87-7.59 22.09-17.24 32.06-25.82l2.71-2.33c12.69 5.09 26.26 7.89 38.38 7.89 13.42 0 23.45-3.39 29-9.81a18.24 18.24 0 001.27-1.66l.18-.26c.14-.22.3-.43.43-.65a76.24 76.24 0 01-1.08 19.17z" fill-rule="nonzero"/></svg>
<span class="ml-4 text-3xl font-thin tracking-wide">wave</span>
</div>
@endif
</a>
<div class="grid w-full grid-cols-2 pt-2 mt-20 sm:grid-cols-4 gap-y-16 lg:gap-x-8 md:w-5/6 md:mt-0 md:pr-6">
<div class="md:justify-self-end">
<h3 class="font-semibold text-black">Product</h3>
<ul class="mt-6 space-y-4 text-sm">
<li>
<a href="#_" class="relative inline-block text-black group">
<span class="absolute bottom-0 w-full transition duration-150 ease-out transform -translate-y-1 border-b border-black opacity-0 group-hover:opacity-100 group-hover:translate-y-1"></span>
<span>Features</span>
</a>
</li>
<li>
<a href="#_" class="relative inline-block text-black group">
<span class="absolute bottom-0 w-full transition duration-150 ease-out transform -translate-y-1 border-b border-black opacity-0 group-hover:opacity-100 group-hover:translate-y-1"></span>
<span>Integrations</span>
</a>
</li>
<li>
<a href="#_" class="relative inline-block text-black group">
<span class="absolute bottom-0 w-full transition duration-150 ease-out transform -translate-y-1 border-b border-black opacity-0 group-hover:opacity-100 group-hover:translate-y-1"></span>
<span>Documentation</span>
</a>
</li>
<li>
<a href="#_" class="relative inline-block text-black group">
<span class="absolute bottom-0 w-full transition duration-150 ease-out transform -translate-y-1 border-b border-black opacity-0 group-hover:opacity-100 group-hover:translate-y-1"></span>
<span>Pricing</span>
</a>
</li>
</ul>
</div>
<div class="md:justify-self-end">
<h3 class="font-semibold text-black">About</h3>
<ul class="mt-6 space-y-4 text-sm">
<li>
<a href="#_" class="relative inline-block text-black group">
<span class="absolute bottom-0 w-full transition duration-150 ease-out transform -translate-y-1 border-b border-black opacity-0 group-hover:opacity-100 group-hover:translate-y-1"></span>
<span>Our Story</span>
</a>
</li>
<li>
<a href="#_" class="relative inline-block text-black group">
<span class="absolute bottom-0 w-full transition duration-150 ease-out transform -translate-y-1 border-b border-black opacity-0 group-hover:opacity-100 group-hover:translate-y-1"></span>
<span>Company</span>
</a>
</li>
<li>
<a href="#_" class="relative inline-block text-black group">
<span class="absolute bottom-0 w-full transition duration-150 ease-out transform -translate-y-1 border-b border-black opacity-0 group-hover:opacity-100 group-hover:translate-y-1"></span>
<span>Our Team</span>
</a>
</li>
<li>
<a href="#_" class="relative inline-block text-black group">
<span class="absolute bottom-0 w-full transition duration-150 ease-out transform -translate-y-1 border-b border-black opacity-0 group-hover:opacity-100 group-hover:translate-y-1"></span>
<span>Work With Us</span>
</a>
</li>
</ul>
</div>
<div class="md:justify-self-end">
<h3 class="font-semibold text-black">Resources</h3>
<ul class="mt-6 space-y-4 text-sm">
<li>
<a href="#_" class="relative inline-block text-black group">
<span class="absolute bottom-0 w-full transition duration-150 ease-out transform -translate-y-1 border-b border-black opacity-0 group-hover:opacity-100 group-hover:translate-y-1"></span>
<span>Help Center</span>
</a>
</li>
<li>
<a href="#_" class="relative inline-block text-black group">
<span class="absolute bottom-0 w-full transition duration-150 ease-out transform -translate-y-1 border-b border-black opacity-0 group-hover:opacity-100 group-hover:translate-y-1"></span>
<span>Developer API</span>
</a>
</li>
<li>
<a href="#_" class="relative inline-block text-black group">
<span class="absolute bottom-0 w-full transition duration-150 ease-out transform -translate-y-1 border-b border-black opacity-0 group-hover:opacity-100 group-hover:translate-y-1"></span>
<span>Our Blog</span>
</a>
</li>
<li>
<a href="#_" class="relative inline-block text-black group">
<span class="absolute bottom-0 w-full transition duration-150 ease-out transform -translate-y-1 border-b border-black opacity-0 group-hover:opacity-100 group-hover:translate-y-1"></span>
<span>Status</span>
</a>
</li>
<li>
<a href="#_" class="relative inline-block text-black group">
<span class="absolute bottom-0 w-full transition duration-150 ease-out transform -translate-y-1 border-b border-black opacity-0 group-hover:opacity-100 group-hover:translate-y-1"></span>
<span>Sitemap</span>
</a>
</li>
</ul>
</div>
<div class="md:justify-self-end">
<h3 class="font-semibold text-black">Contact</h3>
<ul class="mt-6 space-y-4 text-sm">
<li>
<a href="#_" class="relative inline-block text-black group">
<span class="absolute bottom-0 w-full transition duration-150 ease-out transform -translate-y-1 border-b border-black opacity-0 group-hover:opacity-100 group-hover:translate-y-1"></span>
<span>Advertising</span>
</a>
</li>
<li>
<a href="#_" class="relative inline-block text-black group">
<span class="absolute bottom-0 w-full transition duration-150 ease-out transform -translate-y-1 border-b border-black opacity-0 group-hover:opacity-100 group-hover:translate-y-1"></span>
<span>Press</span>
</a>
</li>
<li>
<a href="#_" class="relative inline-block text-black group">
<span class="absolute bottom-0 w-full transition duration-150 ease-out transform -translate-y-1 border-b border-black opacity-0 group-hover:opacity-100 group-hover:translate-y-1"></span>
<span>Partners</span>
</a>
</li>
<li>
<a href="#_" class="relative inline-block text-black group">
<span class="absolute bottom-0 w-full transition duration-150 ease-out transform -translate-y-1 border-b border-black opacity-0 group-hover:opacity-100 group-hover:translate-y-1"></span>
<span>Email</span>
</a>
</li>
</ul>
</div>
</div>
</div>
<div class="flex flex-col items-center justify-between py-10 border-t border-solid lg:flex-row border-gray">
<ul class="flex flex-wrap space-x-5 text-xs">
<li class="mb-6 text-center flex-full lg:flex-none lg:mb-0">&copy; {{ date('Y') }} {{ setting('site.title', 'Laravel Wave') }}, Inc. All rights reserved.</li>
<li class="lg:ml-6">
<a href="#_" class="relative inline-block text-black group">
<span class="absolute bottom-0 w-full transition duration-150 ease-out transform -translate-y-1 border-b border-black opacity-0 group-hover:opacity-100 group-hover:translate-y-0"></span>
<span>Privacy Policy</span>
</a>
</li>
<li class="ml-auto mr-auto text-center lg:ml-6 lg:mr-0">
<a href="#_" class="relative inline-block text-black group">
<span class="absolute bottom-0 w-full transition duration-150 ease-out transform -translate-y-1 border-b border-black opacity-0 group-hover:opacity-100 group-hover:translate-y-0"></span>
<span>Disclaimers</span>
</a>
</li>
<li class="lg:ml-6">
<a href="#_" class="relative inline-block text-black group">
<span class="absolute bottom-0 w-full transition duration-150 ease-out transform -translate-y-1 border-b border-black opacity-0 group-hover:opacity-100 group-hover:translate-y-0"></span>
<span>Terms and Conditions</span>
</a>
</li>
</ul>
<ul class="flex items-center mt-10 space-x-5 lg:mt-0">
<li>
<a href="#" class="text-gray-600 hover:text-gray-900">
<span class="sr-only">Facebook</span>
<svg class="w-5 h-5" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true">
<path fill-rule="evenodd" d="M22 12c0-5.523-4.477-10-10-10S2 6.477 2 12c0 4.991 3.657 9.128 8.438 9.878v-6.987h-2.54V12h2.54V9.797c0-2.506 1.492-3.89 3.777-3.89 1.094 0 2.238.195 2.238.195v2.46h-1.26c-1.243 0-1.63.771-1.63 1.562V12h2.773l-.443 2.89h-2.33v6.988C18.343 21.128 22 16.991 22 12z" clip-rule="evenodd"></path>
</svg>
</a>
</li>
<li>
<a href="#" class="text-gray-600 hover:text-gray-900">
<span class="sr-only">Instagram</span>
<svg class="w-5 h-5" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true">
<path fill-rule="evenodd" d="M12.315 2c2.43 0 2.784.013 3.808.06 1.064.049 1.791.218 2.427.465a4.902 4.902 0 011.772 1.153 4.902 4.902 0 011.153 1.772c.247.636.416 1.363.465 2.427.048 1.067.06 1.407.06 4.123v.08c0 2.643-.012 2.987-.06 4.043-.049 1.064-.218 1.791-.465 2.427a4.902 4.902 0 01-1.153 1.772 4.902 4.902 0 01-1.772 1.153c-.636.247-1.363.416-2.427.465-1.067.048-1.407.06-4.123.06h-.08c-2.643 0-2.987-.012-4.043-.06-1.064-.049-1.791-.218-2.427-.465a4.902 4.902 0 01-1.772-1.153 4.902 4.902 0 01-1.153-1.772c-.247-.636-.416-1.363-.465-2.427-.047-1.024-.06-1.379-.06-3.808v-.63c0-2.43.013-2.784.06-3.808.049-1.064.218-1.791.465-2.427a4.902 4.902 0 011.153-1.772A4.902 4.902 0 015.45 2.525c.636-.247 1.363-.416 2.427-.465C8.901 2.013 9.256 2 11.685 2h.63zm-.081 1.802h-.468c-2.456 0-2.784.011-3.807.058-.975.045-1.504.207-1.857.344-.467.182-.8.398-1.15.748-.35.35-.566.683-.748 1.15-.137.353-.3.882-.344 1.857-.047 1.023-.058 1.351-.058 3.807v.468c0 2.456.011 2.784.058 3.807.045.975.207 1.504.344 1.857.182.466.399.8.748 1.15.35.35.683.566 1.15.748.353.137.882.3 1.857.344 1.054.048 1.37.058 4.041.058h.08c2.597 0 2.917-.01 3.96-.058.976-.045 1.505-.207 1.858-.344.466-.182.8-.398 1.15-.748.35-.35.566-.683.748-1.15.137-.353.3-.882.344-1.857.048-1.055.058-1.37.058-4.041v-.08c0-2.597-.01-2.917-.058-3.96-.045-.976-.207-1.505-.344-1.858a3.097 3.097 0 00-.748-1.15 3.098 3.098 0 00-1.15-.748c-.353-.137-.882-.3-1.857-.344-1.023-.047-1.351-.058-3.807-.058zM12 6.865a5.135 5.135 0 110 10.27 5.135 5.135 0 010-10.27zm0 1.802a3.333 3.333 0 100 6.666 3.333 3.333 0 000-6.666zm5.338-3.205a1.2 1.2 0 110 2.4 1.2 1.2 0 010-2.4z" clip-rule="evenodd"></path>
</svg>
</a>
</li>
<li>
<a href="#" class="text-gray-600 hover:text-gray-900">
<span class="sr-only">Twitter</span>
<svg class="w-5 h-5" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true">
<path d="M8.29 20.251c7.547 0 11.675-6.253 11.675-11.675 0-.178 0-.355-.012-.53A8.348 8.348 0 0022 5.92a8.19 8.19 0 01-2.357.646 4.118 4.118 0 001.804-2.27 8.224 8.224 0 01-2.605.996 4.107 4.107 0 00-6.993 3.743 11.65 11.65 0 01-8.457-4.287 4.106 4.106 0 001.27 5.477A4.072 4.072 0 012.8 9.713v.052a4.105 4.105 0 003.292 4.022 4.095 4.095 0 01-1.853.07 4.108 4.108 0 003.834 2.85A8.233 8.233 0 012 18.407a11.616 11.616 0 006.29 1.84"></path>
</svg>
</a>
</li>
<li>
<a href="#" class="text-gray-600 hover:text-gray-900">
<span class="sr-only">GitHub</span>
<svg class="w-5 h-5" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true">
<path fill-rule="evenodd" d="M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z" clip-rule="evenodd"></path>
</svg>
</a>
</li>
<li>
<a href="#" class="text-gray-600 hover:text-gray-900">
<span class="sr-only">Dribbble</span>
<svg class="w-5 h-5" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true">
<path fill-rule="evenodd" d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10c5.51 0 10-4.48 10-10S17.51 2 12 2zm6.605 4.61a8.502 8.502 0 011.93 5.314c-.281-.054-3.101-.629-5.943-.271-.065-.141-.12-.293-.184-.445a25.416 25.416 0 00-.564-1.236c3.145-1.28 4.577-3.124 4.761-3.362zM12 3.475c2.17 0 4.154.813 5.662 2.148-.152.216-1.443 1.941-4.48 3.08-1.399-2.57-2.95-4.675-3.189-5A8.687 8.687 0 0112 3.475zm-3.633.803a53.896 53.896 0 013.167 4.935c-3.992 1.063-7.517 1.04-7.896 1.04a8.581 8.581 0 014.729-5.975zM3.453 12.01v-.26c.37.01 4.512.065 8.775-1.215.25.477.477.965.694 1.453-.109.033-.228.065-.336.098-4.404 1.42-6.747 5.303-6.942 5.629a8.522 8.522 0 01-2.19-5.705zM12 20.547a8.482 8.482 0 01-5.239-1.8c.152-.315 1.888-3.656 6.703-5.337.022-.01.033-.01.054-.022a35.318 35.318 0 011.823 6.475 8.4 8.4 0 01-3.341.684zm4.761-1.465c-.086-.52-.542-3.015-1.659-6.084 2.679-.423 5.022.271 5.314.369a8.468 8.468 0 01-3.655 5.715z" clip-rule="evenodd"></path>
</svg>
</a>
</li>
</ul>
</div>
</div>
</footer>
@if(!auth()->guest() && auth()->user()->hasAnnouncements())
@include('theme::partials.announcements')
@endif
<!-- Scripts -->
<script src="{{ asset('themes/' . $theme->folder . '/js/app.js') }}"></script>
@yield('javascript')
@if(setting('site.google_analytics_tracking_id', ''))
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id={{ setting('site.google_analytics_tracking_id') }}"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', '{{ setting("site.google_analytics_tracking_id") }}');
</script>
@endif

View File

@@ -0,0 +1,35 @@
<header x-data="{ mobileMenuOpen: false }" class="relative z-30 @if(Request::is('/')){{ 'bg-white' }}@else{{ 'bg-gray-50' }}@endif">
<div class="px-8 mx-auto xl:px-5 max-w-7xl">
<div class="flex items-center justify-between h-24 border-b-2 border-gray-100 md:justify-start md:space-x-6">
<div class="inline-flex">
<!-- data-replace='{ "translate-y-12": "translate-y-0", "scale-110": "scale-100", "opacity-0": "opacity-100" }' -->
<a href="{{ route('wave.home') }}" class="flex items-center justify-center space-x-3 transition-all duration-1000 ease-out transform text-wave-500">
@if(Voyager::image(theme('logo')))
<img class="h-9" src="{{ Voyager::image(theme('logo')) }}" alt="Company name">
@else
<svg class="w-9 h-9" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 208 206"><defs/><defs><linearGradient id="a" x1="100%" x2="0%" y1="45.596%" y2="45.596%"><stop offset="0%" stop-color="#5D63FB"/><stop offset="100%" stop-color="#0769FF"/></linearGradient><linearGradient id="b" x1="50%" x2="50%" y1="0%" y2="100%"><stop offset="0%" stop-color="#39BEFF"/><stop offset="100%" stop-color="#0769FF"/></linearGradient><linearGradient id="c" x1="0%" x2="99.521%" y1="50%" y2="50%"><stop offset="0%" stop-color="#38BCFF"/><stop offset="99.931%" stop-color="#91D8FF"/></linearGradient></defs><g fill="none" fill-rule="evenodd"><path fill="url(#a)" d="M185.302 38c14.734 18.317 22.742 41.087 22.698 64.545C208 159.68 161.43 206 103.986 206c-39.959-.01-76.38-22.79-93.702-58.605C-7.04 111.58-2.203 69.061 22.727 38a104.657 104.657 0 00-9.283 43.352c0 54.239 40.55 98.206 90.57 98.206 50.021 0 90.571-43.973 90.571-98.206A104.657 104.657 0 00185.302 38z"/><path fill="url(#b)" d="M105.11 0A84.144 84.144 0 01152 14.21C119.312-.651 80.806 8.94 58.7 37.45c-22.105 28.51-22.105 68.58 0 97.09 22.106 28.51 60.612 38.101 93.3 23.239-30.384 20.26-70.158 18.753-98.954-3.75-28.797-22.504-40.24-61.021-28.47-95.829C36.346 23.392 68.723.002 105.127.006L105.11 0z"/><path fill="url(#c)" d="M118.98 13c36.39-.004 66.531 28.98 68.875 66.234 2.343 37.253-23.915 69.971-60.006 74.766 29.604-8.654 48.403-38.434 43.99-69.685-4.413-31.25-30.678-54.333-61.459-54.014-30.78.32-56.584 23.944-60.38 55.28v-1.777C49.99 44.714 80.872 13.016 118.98 13z"/></g></svg>
@endif
</a>
</div>
<div class="flex justify-end flex-grow -my-2 -mr-2 md:hidden">
<button @click="mobileMenuOpen = true" type="button" class="inline-flex items-center justify-center p-2 text-gray-400 transition duration-150 ease-in-out rounded-md hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:bg-gray-100 focus:text-gray-500">
<svg class="w-6 h-6" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 8h16M4 16h16"></path></svg>
</button>
</div>
<!-- This is the homepage nav when a user is not logged in -->
@if(auth()->guest())
@include('theme::menus.guest')
@else <!-- Otherwise we want to show the menu for the logged in user -->
@include('theme::menus.authenticated')
@endif
</div>
</div>
@if(auth()->guest())
@include('theme::menus.guest-mobile')
@else
@include('theme::menus.authenticated-mobile')
@endif
</header>

View File

@@ -0,0 +1,89 @@
@php $notifications_count = auth()->user()->unreadNotifications->count(); @endphp
@if(!isset($show_all_notifications))
@php $unreadNotifications = auth()->user()->unreadNotifications->take(5); @endphp
<div id="notification-list" @click.away="open = false" class="relative flex items-center h-full" x-data="{ open: false }">
<div id="notification-icon relative">
<button @click="open = !open" class="relative p-1 ml-3 text-gray-400 transition duration-150 ease-in-out rounded-full hover:text-gray-500 focus:outline-none focus:text-gray-500 focus:bg-gray-100">
<svg class="w-6 h-6" stroke="currentColor" fill="none" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path>
</svg>
@if($unreadNotifications && $notifications_count > 0) <span id="notification-count" class="absolute top-0 right-0 flex items-center justify-center w-4 h-4 text-xs text-red-100 bg-red-500 rounded-full">{{ $notifications_count }}</span> @endif
</button>
</div>
@else
@php $unreadNotifications = auth()->user()->unreadNotifications->all(); @endphp
@endif
@if(!isset($show_all_notifications))
<div x-show="open"
x-transition:enter="duration-100 ease-out scale-95"
x-transition:enter-start="opacity-50 scale-95"
x-transition:enter-end="opacity-100 scale-100"
x-transition:leave="transition duration-50 ease-in scale-100"
x-transition:leave-start="opacity-100 scale-100"
x-transition:leave-end="opacity-0 scale-95"
class="absolute top-0 right-0 max-w-lg mt-20 overflow-hidden origin-top-right transform rounded-lg shadow-lg max-w-7xl w-104" x-cloak>
@else
<div class="relative top-0 right-0 w-full my-8 overflow-hidden origin-top max-w-7xl">
@endif
<div class="bg-white rounded-md border border-gray-100 @if(!isset($show_all_notifications)){{ 'shadow-md' }}@endif" role="menu" aria-orientation="vertical" aria-labelledby="options-menu">
@if(!isset($show_all_notifications))
<div id="notification-header">
<div id="notification-head-content" class="flex items-center w-full px-3 py-3 text-gray-600 border-b border-gray-200">
<svg class="w-5 h-5 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"></path></svg>
Notifications
</div>
</div>
@endif
<div id="notifications-none" class="@if($notifications_count > 0){{ 'hidden' }}@endif @if(isset($show_all_notifications)){{ 'bg-gray-150' }}@endif flex items-center justify-center h-24 w-full text-gray-600 font-medium">
<svg class="w-5 h-5 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M20 13V6a2 2 0 00-2-2H6a2 2 0 00-2 2v7m16 0v5a2 2 0 01-2 2H6a2 2 0 01-2-2v-5m16 0h-2.586a1 1 0 00-.707.293l-2.414 2.414a1 1 0 01-.707.293h-3.172a1 1 0 01-.707-.293l-2.414-2.414A1 1 0 006.586 13H4"></path></svg>
All Caught Up!
</div>
<div class="relative">
@foreach ($unreadNotifications as $index => $notification)
@php $notification_data = (object)$notification->data; @endphp
<div id="notification-li-{{ $index + 1 }}" class="flex flex-col pb-5 border-b border-gray-200 @if(!isset($show_all_notifications)){{ 'hover:bg-gray-50' }}@endif">
<a href="{{ @$notification_data->link }}" class="flex items-start p-5 pb-2">
<div class="flex-shrink-0 pt-1">
<img class="w-10 h-10 rounded-full" src="{{ @$notification_data->icon }}" alt="">
</div>
<div class="flex flex-col items-start flex-1 w-0 ml-3">
<p class="text-sm leading-5 text-gray-600">
<strong>{{ @$notification_data->user['username'] }} @if(isset($notification_data->type) && @$notification_data->type == 'message'){{ 'left a message' }}@else{{ 'said' }}@endif</strong>
{{ @$notification_data->body }} in <span class="notification-highlight">{{ @$notification_data->title }}</span>
</p>
<p class="mt-2 text-sm font-medium leading-5 text-gray-500">
<span class="notification-datetime">{{ \Carbon\Carbon::parse(@$notification->created_at)->format('F, jS h:i A') }}</span>
</p>
</div>
</a>
<span data-id="{{ $notification->id }}" data-listid="{{ $index+1 }}" class="flex justify-start w-full py-1 pl-16 ml-1 text-xs text-gray-500 cursor-pointer k hover:text-gray-700 mark-as-read hover:underline">
<svg class="absolute w-4 h-4 mt-1 mr-1" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>
<svg class="w-4 h-4 mr-1" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg>
Mark as Read
</span>
</div>
@endforeach
</div>
@if(!isset($show_all_notifications))
<div id="notification-footer" class="flex items-center justify-center py-3 text-xs font-medium text-gray-600 bg-gray-100 border-t border-gray-200 ">
<a href="{{ route('wave.notifications') }}"><span uk-icon="icon: eye"></span>View All Notifications</a>
</div>
@endif
</div>
</div>
@if(!isset($show_all_notifications))
</div><!-- End of #notification-list -->
@endif

View File

@@ -0,0 +1,60 @@
@if ($paginator->hasPages())
<div>
<span class="relative z-0 inline-flex shadow-sm">
{{-- Previous Page Link --}}
@if ($paginator->onFirstPage())
<div class="relative inline-flex items-center px-2 py-2 text-sm font-medium leading-5 text-gray-400 transition duration-150 ease-in-out bg-white border border-gray-300 rounded-l-md focus:z-10 focus:outline-none focus:border-blue-300 focus:shadow-outline-blue active:bg-gray-100 active:text-gray-500">
<svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
<path fill-rule="evenodd" d="M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z" clip-rule="evenodd"/>
</svg>
</div>
@else
<a href="{{ $paginator->previousPageUrl() }}" class="relative inline-flex items-center px-2 py-2 text-sm font-medium leading-5 text-gray-700 transition duration-150 ease-in-out bg-white border border-gray-300 rounded-l-md hover:text-gray-800 focus:z-10 focus:outline-none focus:border-blue-300 focus:shadow-outline-blue active:bg-gray-100 active:text-gray-500">
<svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
<path fill-rule="evenodd" d="M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z" clip-rule="evenodd"/>
</svg>
</a>
@endif
{{-- Pagination Elements --}}
@foreach ($elements as $element)
{{-- "Three Dots" Separator --}}
@if (is_string($element))
<span class="relative inline-flex items-center px-4 py-2 -ml-px text-sm font-medium leading-5 text-gray-700 bg-white border border-gray-300">
...
</span>
@endif
{{-- Array Of Links --}}
@if (is_array($element))
@foreach ($element as $page => $url)
@if ($page == $paginator->currentPage())
<div class="relative items-center hidden px-4 py-2 -ml-px text-sm font-medium leading-5 text-gray-400 transition duration-150 ease-in-out bg-white border border-gray-300 md:inline-flex focus:z-10 focus:outline-none focus:border-blue-300 focus:shadow-outline-blue active:bg-gray-100 active:text-gray-700">
{{ $page }}
</div>
@else
<a href="{{ $url }}" class="relative items-center hidden px-4 py-2 -ml-px text-sm font-medium leading-5 text-gray-700 transition duration-150 ease-in-out bg-white border border-gray-300 md:inline-flex hover:text-gray-500 focus:z-10 focus:outline-none focus:border-blue-300 focus:shadow-outline-blue active:bg-gray-100 active:text-gray-700">
{{ $page }}
</a>
@endif
@endforeach
@endif
@endforeach
{{-- Next Page Link --}}
@if ($paginator->hasMorePages())
<a href="{{ $paginator->nextPageUrl() }}" class="relative inline-flex items-center px-2 py-2 -ml-px text-sm font-medium leading-5 text-gray-700 transition duration-150 ease-in-out bg-white border border-gray-300 rounded-r-md hover:text-gray-800 focus:z-10 focus:outline-none focus:border-blue-300 focus:shadow-outline-blue active:bg-gray-100 active:text-gray-500">
<svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
<path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"/>
</svg>
</a>
@else
<div class="relative inline-flex items-center px-2 py-2 -ml-px text-sm font-medium leading-5 text-gray-500 transition duration-150 ease-in-out bg-white border border-gray-300 rounded-r-md hover:text-gray-400 focus:z-10 focus:outline-none focus:border-blue-300 focus:shadow-outline-blue active:bg-gray-100 active:text-gray-500">
<svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
<path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"/>
</svg>
</div>
@endif
</span>
</div>
@endif

View File

@@ -0,0 +1,101 @@
<div class="flex flex-col">
<label class="block mb-2 text-sm font-medium leading-5 text-gray-700">Cardholders Name</label>
<input type="text" class="w-full form-input" name="cardholder" id="cardholder-name">
<label for="card-element" class="block mt-6 mb-2 text-sm font-medium leading-5 text-gray-700">
Credit or debit card
</label>
<div id="card-element" class="w-full form-input">
<!-- A Stripe Element will be inserted here. -->
</div>
<!-- Used to display form errors. -->
<div id="card-errors" class="mt-2 text-sm text-red-500" role="alert"></div>
</div>
<script src="https://js.stripe.com/v3/"></script>
<script>
// Create a Stripe client.
@if(env('STRIPE_MODE') == 'live')
var stripe = Stripe('{{ env('STRIPE_LIVE_KEY') }}');
@else
var stripe = Stripe('{{ env('STRIPE_TEST_KEY') }}');
@endif
// Create an instance of Elements.
var elements = stripe.elements();
var cardholderName = document.getElementById('cardholder-name');
// Custom styling can be passed to options when creating an Element.
// (Note that this demo uses a wider set of styles than the guide below.)
var style = {
base: {
color: '#32325d',
lineHeight: '28px',
fontFamily: '"Helvetica Neue", Helvetica, sans-serif',
fontSmoothing: 'antialiased',
fontSize: '16px',
'::placeholder': {
color: '#aab7c4'
}
},
invalid: {
color: '#fa755a',
iconColor: '#fa755a'
}
};
// Create an instance of the card Element.
var card = elements.create('card', {style: style});
// Add an instance of the card Element into the `card-element` <div>.
card.mount('#card-element');
// Handle real-time validation errors from the card Element.
card.addEventListener('change', function(event) {
var displayError = document.getElementById('card-errors');
if (event.error) {
displayError.textContent = event.error.message;
} else {
displayError.textContent = '';
}
});
// Handle form submission.
var form = document.getElementById('payment-form');
form.addEventListener('submit', function(event) {
event.preventDefault();
stripe.confirmCardSetup(
"{{ $intent ?? ''->client_secret }}",
{
payment_method: {
card: card,
billing_details: {
name: cardholderName.value,
},
},
}
).then(function(result) {
if (result.error) {
// Display error.message in your UI.
} else {
stripeTokenHandler(result.setupIntent.payment_method);
}
});
});
function stripeTokenHandler(paymentMethod) {
// Insert the token ID into the form so it gets submitted to the server
var form = document.getElementById('payment-form');
var hiddenInput = document.createElement('input');
hiddenInput.setAttribute('type', 'hidden');
hiddenInput.setAttribute('name', 'paymentMethod');
hiddenInput.setAttribute('value', paymentMethod);
form.appendChild(hiddenInput);
// Submit the form
form.submit();
}
</script>

View File

@@ -0,0 +1,90 @@
<div class="flex flex-wrap w-full mx-auto divide-x divide-gray-100 divide-solid">
@foreach(Wave\Plan::all() as $plan)
@php $features = explode(',', $plan->features); @endphp
<div class="w-full max-w-md px-0 mx-auto mb-6 lg:w-1/3 lg:mb-0">
<div class="relative flex flex-col h-full mb-10 bg-white sm:mb-0">
<div class="px-10 pt-7">
<div class="absolute right-0 inline-block mr-6 transform">
<h2 class="relative z-20 w-full h-full px-2 py-1 text-xs font-bold leading-tight tracking-wide text-center uppercase bg-white border-2 @if($plan->default){{ 'border-wave-400 text-wave-500' }}@else{{ 'border-gray-900 text-gray-800' }}@endif rounded">{{ $plan->name }}</h2>
</div>
</div>
<div class="px-10 mt-5">
<span class="font-mono text-5xl font-bold">${{ $plan->price }}</span>
<span class="text-lg font-bold text-gray-500">per month</span>
</div>
<div class="px-10 mt-6 pb-9">
<p class="text-lg leading-7 text-gray-500">{{ $plan->description }}</p>
</div>
<div class="relative px-10 pt-0 pb-12 mt-auto text-gray-700">
<ul class="flex flex-col space-y-2.5">
@foreach($features as $feature)
<li class="relative">
<span class="flex items-center">
<svg class="w-4 h-4 mr-3 text-green-500 fill-current" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20">
<path d="M0 11l2-2 5 5L18 3l2 2L7 18z"></path>
</svg>
<span>
{{ $feature }}
</span>
</span>
</li>
@endforeach
</ul>
</div>
<div class="relative">
@subscribed($plan->slug)
<div class="inline-flex items-center justify-center w-full px-4 py-4 text-base font-semibold transition duration-150 ease-in-out bg-gray-200 border border-transparent cursor-default text-wave-600 focus:outline-none disabled:opacity-25" disabled>
You're subscribed to this plan
</div>
@notsubscribed
@subscriber
<div onclick="switchPlans('{{ $plan->plan_id }}', '{{ $plan->name }}')" class="inline-flex items-center justify-center w-full px-4 py-4 text-base font-semibold text-white transition duration-150 ease-in-out @if($plan->default){{ ' bg-gradient-to-r from-wave-600 to-indigo-500 hover:from-wave-500 hover:to-indigo-400' }}@else{{ 'bg-gray-800 hover:bg-gray-700 active:bg-gray-900 focus:border-gray-900 focus:shadow-outline-gray' }}@endif border border-transparent cursor-pointer focus:outline-none disabled:opacity-25">
Switch Plans
</div>
@notsubscriber
<div data-plan="{{ $plan->plan_id }}" class="inline-flex items-center justify-center w-full px-4 py-4 text-base font-semibold text-white transition duration-150 ease-in-out @if($plan->default){{ ' bg-gradient-to-r from-wave-600 to-indigo-500 hover:from-wave-500 hover:to-indigo-400' }}@else{{ 'bg-gray-800 hover:bg-gray-700 active:bg-gray-900 focus:border-gray-900 focus:shadow-outline-gray' }}@endif border border-transparent cursor-pointer checkout focus:outline-none disabled:opacity-25">
Get Started
</div>
@endsubscriber
@endsubscribed
</div>
</div>
</div>
@endforeach
</div>
@if(config('wave.paddle.env') == 'sandbox')
<div class="mx-auto max-w-7xl">
<div class="w-full p-10 text-gray-600 bg-blue-50">
<div class="flex items-center pb-4">
<svg class="mr-2 w-14 h-14 text-wave-500" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M4 4a2 2 0 00-2 2v1h16V6a2 2 0 00-2-2H4z"></path><path fill-rule="evenodd" d="M18 9H2v5a2 2 0 002 2h12a2 2 0 002-2V9zM4 13a1 1 0 011-1h1a1 1 0 110 2H5a1 1 0 01-1-1zm5-1a1 1 0 100 2h1a1 1 0 100-2H9z" clip-rule="evenodd"></path></svg>
<div class="relative">
<h2 class="text-base font-bold text-wave-500">Sandbox Mode</h2>
<p class="text-sm text-blue-400">Application billing is in sandbox mode, which means you can test the checkout process using the following credentials:</p>
</div>
</div>
<div class="pt-2 text-sm font-bold text-gray-500">
Credit Card Number: <span class="ml-2 font-mono text-green-500">4242 4242 4242 4242</span>
</div>
<div class="pt-2 text-sm font-bold text-gray-500">
Expiration Date: <span class="ml-2 font-mono text-green-500">Any future date</span>
</div>
<div class="pt-2 text-sm font-bold text-gray-500">
Security Code: <span class="ml-2 font-mono text-green-500">Any 3 digits</span>
</div>
</div>
</div>
@endif

View File

@@ -0,0 +1,85 @@
<div class="flex flex-wrap mx-auto mt-12 max-w-7xl">
@foreach(Wave\Plan::all() as $plan)
@php $features = explode(',', $plan->features); @endphp
<div class="w-full max-w-md px-0 mx-auto mb-6 lg:w-1/3 lg:px-3 lg:mb-0">
<div class="relative flex flex-col h-full mb-10 bg-white border border-gray-200 rounded-lg shadow-xl border-b-none sm:mb-0">
<div class="px-10 pt-7">
<div class="absolute right-0 inline-block mr-6 transform">
<h2 class="relative z-20 w-full h-full px-2 py-1 text-xs font-bold leading-tight tracking-wide text-center uppercase bg-white border-2 @if($plan->default){{ 'border-wave-400 text-wave-500' }}@else{{ 'border-gray-900 text-gray-800' }}@endif rounded">{{ $plan->name }}</h2>
</div>
</div>
<div class="px-10 mt-5">
<span class="font-mono text-5xl font-bold">${{ $plan->price }}</span>
<span class="text-lg font-bold text-gray-500">per month</span>
</div>
<div class="px-10 mt-6 pb-9">
<p class="text-lg leading-7 text-gray-500">{{ $plan->description }}</p>
</div>
<div class="relative px-10 pt-0 pb-12 mt-auto text-gray-700 rounded-b-lg">
<ul class="flex flex-col space-y-2.5">
@foreach($features as $feature)
<li class="relative">
<span class="flex items-center">
<svg class="w-4 h-4 mr-3 text-green-500 fill-current" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20">
<path d="M0 11l2-2 5 5L18 3l2 2L7 18z"></path>
</svg>
<span>
{{ $feature }}
</span>
</span>
</li>
@endforeach
</ul>
</div>
<div class="relative">
<div data-plan="{{ $plan->plan_id }}" class="inline-flex items-center justify-center w-full px-4 py-4 text-base font-semibold text-white transition duration-150 ease-in-out @if($plan->default){{ ' bg-gradient-to-r from-wave-600 to-indigo-500 hover:from-wave-500 hover:to-indigo-400' }}@else{{ 'bg-gray-800 hover:bg-gray-700 active:bg-gray-900 focus:border-gray-900 focus:shadow-outline-gray' }}@endif border border-transparent cursor-pointer rounded-b-md checkout focus:outline-none disabled:opacity-25">
@subscribed($plan->slug)
You are subscribed to this plan
@notsubscribed
@subscriber
Switch Plans
@notsubscriber
Get Started
@endsubscriber
@endsubscribed
</div>
</div>
</div>
</div>
@endforeach
</div>
@if(config('wave.paddle.env') == 'sandbox')
<div class="px-2 mx-auto mt-12 max-w-7xl">
<div class="w-full p-10 text-gray-600 bg-blue-50 rounded-xl">
<div class="flex items-center pb-4">
<svg class="mr-2 w-14 h-14 text-wave-500" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M4 4a2 2 0 00-2 2v1h16V6a2 2 0 00-2-2H4z"></path><path fill-rule="evenodd" d="M18 9H2v5a2 2 0 002 2h12a2 2 0 002-2V9zM4 13a1 1 0 011-1h1a1 1 0 110 2H5a1 1 0 01-1-1zm5-1a1 1 0 100 2h1a1 1 0 100-2H9z" clip-rule="evenodd"></path></svg>
<div class="relative">
<h2 class="text-base font-bold text-wave-500">Sandbox Mode</h2>
<p class="text-sm text-blue-400">Application billing is in sandbox mode, which means you can test the checkout process using the following credentials:</p>
</div>
</div>
<div class="pt-2 text-sm font-bold text-gray-500">
Credit Card Number: <span class="ml-2 font-mono text-green-500">4242 4242 4242 4242</span>
</div>
<div class="pt-2 text-sm font-bold text-gray-500">
Expiration Date: <span class="ml-2 font-mono text-green-500">Any future date</span>
</div>
<div class="pt-2 text-sm font-bold text-gray-500">
Security Code: <span class="ml-2 font-mono text-green-500">Any 3 digits</span>
</div>
</div>
</div>
@endif

View File

@@ -0,0 +1,7 @@
<div class="flex items-center justify-between p-5 m-8 bg-teal-200 border border-teal-400 rounded-lg">
<div class="relative">
<h5 class="mb-2 text-xl font-bold text-teal-700">Reactivate My Subscription</h5>
<p class="text-teal-600">You are currently on a grace period for your subscription plan</p>
</div>
<a href="{{ route('wave.reactivate') }}" class="px-4 py-2 text-sm font-medium text-white bg-teal-600 rounded-lg cursor-pointer">Re-activate</a>
</div>

View File

@@ -0,0 +1,64 @@
<?php
$routeName = Route::currentRouteName();
?>
<div class="main-sidebar">
<div class="sidebar-head">
<a href=""><img src="{{ asset('themes/tailwind/images/logo-square.svg') }}"></a>
</div>
<ul class="sidebar-list-navigation">
<li class="<?= ($routeName == 'cms.dashboard' ? 'active' : ''); ?>">
<a href="{{ route('cms.dashboard') }}"><img src="{{ asset('themes/tailwind/images/home.svg') }}"></a>
</li>
@if (auth()->user()->userRole->hasAccess('manage-client-company-settings-all'))
<li class="<?= ($routeName == 'cms.companies' || $routeName == 'cms.companies.show' ? 'active' : ''); ?>">
<a href="{{ route('cms.companies') }}"><img src="{{ asset('themes/tailwind/images/company.svg') }}"></a>
</li>
@endif
@if (auth()->user()->userRole->hasAccess('manage-job-queue'))
@if (auth()->user()->userRole->hasAccess('manage-bookkeeping'))
<li class="<?= ($routeName == 'cms.bookkeepings' || $routeName == 'cms.bookkeepings.categories' || $routeName == 'cms.bookkeepings.document-libraries' ? 'active' : ''); ?>">
<a href="{{ route('cms.bookkeepings') }}"><img src="{{ asset('themes/tailwind/images/business-accounting.svg') }}"></a>
</li>
@endif
@if (auth()->user()->userRole->hasAccess('manage-comp-sec'))
<li class="<?= ($routeName == 'cms.company-secretary' ? 'active' : ''); ?>">
<a href="{{ route('cms.company-secretary') }}"><img src="{{ asset('themes/tailwind/images/secretary.svg') }}"></a>
</li>
@endif
@endif
<li class="<?= ($routeName == 'cms.users' ? 'active' : ''); ?>">
<a href="{{ route('cms.users') }}"><img src="{{ asset('themes/tailwind/images/user.svg') }}"></a>
</li>
<li class="<?= ($routeName == 'cms.crm' ? 'active' : ''); ?>">
<a href="{{ route('cms.crm') }}"><img src="{{ asset('themes/tailwind/images/customer-services.svg') }}"></a>
</li>
<li class="<?= ($routeName == 'cms.securities' ? 'active' : ''); ?>">
<a href="{{ route('cms.securities') }}"><img src="{{ asset('themes/tailwind/images/security.svg') }}"></a>
</li>
@if (auth()->user()->userRole->hasAccess('manage-subscription'))
<li class="<?= ($routeName == 'cms.subscriptions' || $routeName == 'cms.subscriptions.management' ? 'active' : ''); ?>">
<a href="{{ route('cms.subscriptions') }}"><img src="{{ asset('themes/tailwind/images/receipt.svg') }}"></a>
</li>
@endif
@if (auth()->user()->userRole->hasAccess('manage-service-chat'))
<li class="<?= ($routeName == 'cms.chat' ? 'active' : ''); ?>">
<a href="{{ route('cms.chat') }}"><img src="{{ asset('themes/tailwind/images/message.svg') }}"></a>
</li>
@endif
@if (auth()->user()->userRole->hasAccess('manage-enquiry-box'))
<li class="<?= ($routeName == 'cms.enquiries' ? 'active' : ''); ?>">
<a href="{{ route('cms.enquiries') }}"><img src="{{ asset('themes/tailwind/images/question.svg') }}"></a>
</li>
@endif
@if (auth()->user()->userRole->hasAccess('manage-terms-and-conditions'))
<li class="<?= ($routeName == 'cms.terms-and-conditions' ? 'active' : ''); ?>">
<a href="{{ route('cms.terms-and-conditions') }}"><img src="{{ asset('themes/tailwind/images/subscription.svg') }}"></a>
</li>
@endif
@if (auth()->user()->userRole->hasAccess('manage-privacy-policy'))
<li class="<?= ($routeName == 'cms.privacy-policy' ? 'active' : ''); ?>">
<a href="{{ route('cms.privacy-policy') }}"><img src="{{ asset('themes/tailwind/images/warning.svg') }}"></a>
</li>
@endif
</ul>
</div>

View File

@@ -0,0 +1,48 @@
<!-- Switch Plans Confirmation -->
<div x-data x-init="
$watch('$store.plan_modal.open', value => {
if (value === true) { document.body.classList.add('overflow-hidden') }
else { document.body.classList.remove('overflow-hidden') }
});" id="switchPlansModal" x-show="$store.plan_modal.open" class="fixed inset-0 z-50 overflow-y-auto" x-cloak>
<div class="flex items-end justify-center min-h-screen px-4 pt-4 pb-20 text-center sm:block sm:p-0">
<div x-show="$store.plan_modal.open" x-on:click="$store.plan_modal.close()" x-transition:enter="ease-out duration-300" x-transition:enter-start="opacity-0" x-transition:enter-end="opacity-100" x-transition:leave="ease-in duration-200" x-transition:leave-start="opacity-100" x-transition:leave-end="opacity-0" class="fixed inset-0 transition-opacity">
<div class="absolute inset-0 bg-black opacity-50"></div>
</div>
<span class="hidden sm:inline-block sm:align-middle sm:h-screen"></span>&#8203;
<div x-show="$store.plan_modal.open" x-transition:enter="ease-out duration-300" x-transition:enter-start="opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95" x-transition:enter-end="opacity-100 translate-y-0 sm:scale-100" x-transition:leave="ease-in duration-200" x-transition:leave-start="opacity-100 translate-y-0 sm:scale-100" x-transition:leave-end="opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95" class="inline-block px-4 pt-5 pb-4 overflow-hidden text-left align-bottom transition-all transform bg-white rounded-lg shadow-xl sm:my-8 sm:align-middle sm:max-w-lg sm:w-full sm:p-6" role="dialog">
<div class="flex flex-col justify-between w-full mt-2">
<div class="flex flex-col items-center">
<div class="flex items-center justify-center w-12 h-12 mx-auto text-center rounded-full bg-wave-100">
<svg class="w-6 h-6 text-wave-600" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="M8 5a1 1 0 100 2h5.586l-1.293 1.293a1 1 0 001.414 1.414l3-3a1 1 0 000-1.414l-3-3a1 1 0 10-1.414 1.414L13.586 5H8zM12 15a1 1 0 100-2H6.414l1.293-1.293a1 1 0 10-1.414-1.414l-3 3a1 1 0 000 1.414l3 3a1 1 0 001.414-1.414L6.414 15H12z"></path></svg>
</div>
<div class="mt-3 text-center sm:ml-4">
<h3 class="text-lg font-medium leading-6 text-gray-900" id="modal-headline">
Switch Plans Here
</h3>
<div class="mt-1">
<p class="text-sm leading-5 text-gray-500">Are you sure you want to switch to the <span x-text="$store.plan_modal.plan_name"></span> plan?</p>
</div>
</div>
</div>
<div class="mt-5 sm:mt-6 sm:flex sm:flex-row-reverse">
<div class="flex flex-1 w-full rounded-md shadow-sm sm:ml-3 sm:w-full">
<form id="form" action="{{ route('wave.switch-plans') }}" method="POST" class="w-full">
@csrf
<button type="submit" class="inline-flex justify-center w-full px-4 py-2 text-base font-medium leading-6 text-white transition duration-150 ease-in-out border border-transparent rounded-md shadow-sm cursor-pointer bg-wave-600 hover:bg-wave-500 focus:outline-none focus:border-wave-700 focus:shadow-outline-wave sm:text-sm sm:leading-5">
Yes, Switch My Plan
</button>
<input type="hidden" name="plan_id" :value="$store.plan_modal.plan_id">
</form>
</div>
<span class="flex flex-1 w-full mt-3 rounded-md shadow-sm sm:mt-0 sm:w-full">
<button @click="$store.plan_modal.close();" type="button" class="inline-flex justify-center w-full px-4 py-2 text-base font-medium leading-6 text-gray-700 transition duration-150 ease-in-out bg-white border border-gray-300 rounded-md shadow-sm hover:text-gray-500 focus:outline-none focus:border-blue-300 focus:shadow-outline-blue sm:text-sm sm:leading-5">
No Thanks
</button>
</span>
</div>
</div>
</div>
</div>
</div>
<!-- END Switch Plans Confirmation -->

View File

@@ -0,0 +1,60 @@
<div class="fixed inset-0 z-40 flex items-end justify-center px-4 py-6 pointer-events-none sm:p-6 sm:items-start sm:justify-end">
<div id="toast" x-data x-cloak
@click="$store.toast.close()"
x-show="$store.toast.show"
x-transition:enter="transform ease-out duration-300 transition"
x-transition:enter-start="translate-y-2 opacity-0 sm:translate-y-0 sm:translate-x-2"
x-transition:enter-end="translate-y-0 opacity-100 sm:translate-x-0"
x-transition:leave="transform transition ease-in duration-100"
x-transition:leave-start="opacity-100"
x-transition:leave-end="opacity-0"
class="w-full max-w-sm bg-white border border-gray-200 rounded-lg shadow-lg cursor-pointer pointer-events-auto hover:-translate-1">
<div class="relative overflow-hidden rounded-lg shadow-xs">
<div class="px-4 py-3">
<div class="flex items-center">
<div class="flex-shrink-0 pr-0.5">
<template x-if="$store.toast.type == 'info'">
<div class="w-10 h-10">
<svg class="w-10 h-10 text-indigo-400" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg>
</div>
</template>
<template x-if="$store.toast.type == 'warning'">
<div class="w-10 h-10">
<svg class="w-10 h-10 text-yellow-400" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"></path></svg>
</div>
</template>
<template x-if="$store.toast.type == 'success'">
<div class="w-10 h-10">
<svg class="w-10 h-10 text-green-400" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg>
</div>
</template>
<template x-if="$store.toast.type == 'danger'">
<div class="w-10 h-10">
<svg class="w-10 h-10 text-red-400" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg>
</div>
</template>
</div>
<div class="flex-1 w-0 pl-3.5 ml-1 border-l border-gray-100">
<p class="text-sm font-medium leading-5 text-gray-900">
<template x-if="$store.toast.type == 'info'"><span>{{ __("Notice") }}</span></template>
<template x-if="$store.toast.type == 'warning'"><span>{{ __("Warning") }}</span></template>
<template x-if="$store.toast.type == 'success'"><span>{{ __("Success") }}</span></template>
<template x-if="$store.toast.type == 'danger'"><span>{{ __("Something went wrong") }}</span></template>
</p>
<p class="text-sm leading-5 text-gray-500" x-text="$store.toast.message"></p>
</div>
<div class="flex self-start flex-shrink-0 ml-4">
<button @click="$store.toast.close()" class="inline-flex -mt-1 text-gray-400 transition duration-150 ease-in-out rounded-full focus:outline-none focus:text-gray-500">
<svg class="w-4 h-4" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor">
<path fill-rule="evenodd" d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z" clip-rule="evenodd"></path>
</svg>
</button>
</div>
</div>
</div>
<div id="toast_bar" class="absolute bottom-0 left-0 w-full h-1 transition-all ease-out"
:class="{ 'bg-indigo-400' : $store.toast.type == 'info', 'bg-yellow-400' : $store.toast.type == 'warning', 'bg-green-400' : $store.toast.type == 'success', 'bg-red-400' : $store.toast.type == 'danger' }"
style="transition-duration: 3950ms;"></div>
</div>
</div>
</div>