first change

This commit is contained in:
2025-07-27 17:40:56 +05:45
commit f8b9a6725b
3152 changed files with 229528 additions and 0 deletions

View File

@@ -0,0 +1,57 @@
@props(['data','route','name', 'statusList'])
<div class="modal fade" id="{{$name}}ApproveModal" tabindex="-1" aria-labelledby="{{$name}}ApproveModalLabel" aria-modal="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="{{$name}}ApproveModalLabel">Schedule Form</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<form action="{{$route}}" class="needs-validation" method="POST"
novalidate>
@csrf
<div class="row g-3">
{{ html()->hidden('id', $data->id) }}
<div class="col-12">
<div>
{{ html()->label('Status')->for('status')->class('form-label') }}
{{ html()->select('status', $statusList, 12)->id('status')->class('form-control select2')->required() }}
</div>
</div><!--end col-->
<div class="col-6">
<div>
{{ html()->label('For date')->for('release_date')->class('form-label') }}
{{ html()->date('release_date')->id('release_date')->class('form-control')->required() }}
</div>
</div><!--end col-->
<div class="col-6">
<div>
{{ html()->label('For time')->for('release_time')->class('form-label') }}
{{ html()->time('release_time')->id('release_time')->class('form-control')->required() }}
</div>
</div><!--end col-->
<div class="col-12">
<div>
{{ html()->label('Remarks')->for('approval_remarks')->class('form-label') }}
{{ html()->textarea('remarks')->id('remarks')->class('form-control')->attributes(['rows' => 3]) }}
</div>
</div><!--end col-->
<div class="col-lg-12">
<div class="hstack gap-2 justify-content-end">
<button type="button" class="btn btn-sm btn-light"
data-bs-dismiss="modal">Close</button>
<button type="submit" class="btn btn-sm btn-primary">Schedule</button>
</div>
</div><!--end col-->
</div><!--end row-->
</form>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,7 @@
@props(['status'])
@if ($status)
<div {{ $attributes->merge(['class' => 'font-medium text-sm text-green-600']) }}>
{{ $status }}
</div>
@endif

View File

@@ -0,0 +1,65 @@
@props(['isClockIn'])
<div class="modal fade" id="clockInOutForm" tabindex="-1" aria-labelledby="clockInOutFormLabel" aria-modal="true">
<div class="modal-dialog">
<form action="{{ route('attendance.clockInOut') }}" method="POST">
@csrf
<div class="modal-content">
<div class="modal-header mb-3">
<h5 class="modal-title" id="clockInOutFormLabel">{{ $isClockIn ? 'Clock Out' : 'Clock In' }} </h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="border border-dashed"></div>
<div class="modal-body mb-3">
<div class="row g-4">
<div class="col-lg-6">
<div class="d-flex align-items-center">
<div class="me-2">
<i class="feather" data-feather="clock"></i>
</div>
<div class="fs-5">
{{ now()->setTimezone('Asia/Kathmandu')->format('d-m-Y h:i A') }}
</div>
</div>
</div><!--end col-->
<div class="col-lg-6">
<div class="float-end">
<span class="badge badge-pill bg-info p-1">General Shift</span>
</div>
</div><!--end col-->
<div class="col-lg-6">
<div>
<label for="location" class="form-label">Location</label>
<input type="text" class="form-control" id="location" value="Kathmandu/Nepal" disabled>
</div>
</div><!--end col-->
@if (!$isClockIn)
<div class="col-lg-6">
{{ html()->label('Working From')->class('form-label') }}
{{ html()->select('work_from_type', ['home' => 'Home', 'office' => 'Office', 'other' => 'Other'])->class('form-control')->placeholder('Working from?')->attribute('required') }}
</div><!--end col-->
<input type="hidden" name="type" value="clockout">
@else
<input type="hidden" name="type" value="clockin">
@endif
</div><!--end row-->
</div>
<div class="border border-dashed"></div>
<div class="modal-footer mt-3">
<div class="hstack justify-content-end gap-2">
<button type="button" class="btn btn-light btn-sm" data-bs-dismiss="modal">Cancel</button>
<button type="submit"
class="btn {{ $isClockIn ? 'btn-primary' : 'btn-danger' }} btn-sm">{{ $isClockIn ? 'Clock In' : 'Clock Out' }}</button>
</div>
</div><!--end col-->
</div>
</form>
</div>
</div>

View File

@@ -0,0 +1,19 @@
<div class="navbar-brand-box horizontal-logo">
<a href="{{ route('dashboard') }}" class="logo logo-dark">
<span class="logo-sm">
<img src="{{ asset(setting('favicon')) }}" alt="" height="22">
</span>
<span class="logo-lg">
<img src="{{ asset(setting('logo')) }}" alt="" height="17">
</span>
</a>
<a href="{{ route('dashboard') }}" class="logo logo-light">
<span class="logo-sm">
<img src="{{ asset(setting('favicon')) }}" alt="" height="22">
</span>
<span class="logo-lg">
<img src="{{ asset(setting('logo_white')) }}" alt="" height="17">
</span>
</a>
</div>

View File

@@ -0,0 +1,14 @@
@props(['title' => 'Dashboard'])
<div class="row">
<div class="col-12">
<div class="page-title-box d-sm-flex align-items-center justify-content-between">
<h4 class="mb-sm-0">{{ $title }}</h4>
<div class="page-title-right">
<ol class="breadcrumb m-0">
<li class="breadcrumb-item"><a href="javascript: void(0);">CCMS</a></li>
<li class="breadcrumb-item active">{{ $title }}</li>
</ol>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,14 @@
<footer class="footer">
<div class="container-fluid">
<div class="row">
<div class="col-sm-6">
{{ date('Y') }} © Consultancy All in one solutions.
</div>
<div class="col-sm-6">
<div class="text-sm-end d-none d-sm-block">
Design & Develop by Bibhuti Solutions
</div>
</div>
</div>
</div>
</footer>

View File

@@ -0,0 +1,183 @@
<header id="page-topbar">
<div class="layout-width">
<div class="navbar-header">
<div class="d-flex">
<!-- LOGO -->
<x-dashboard.application-logo />
<button type="button" class="btn btn-sm px-3 fs-16 header-item vertical-menu-btn topnav-hamburger"
id="topnav-hamburger-icon">
<span class="hamburger-icon">
<span></span>
<span></span>
<span></span>
</span>
</button>
</div>
<div class="d-flex align-items-center">
<div class="dropdown d-none topbar-head-dropdown header-item">
<button type="button" class="btn btn-icon btn-topbar btn-ghost-secondary rounded-circle"
id="page-header-search-dropdown" data-bs-toggle="dropdown" aria-haspopup="true"
aria-expanded="false">
<i class="bx bx-search fs-22"></i>
</button>
<div class="dropdown-menu dropdown-menu-lg dropdown-menu-end p-0"
aria-labelledby="page-header-search-dropdown">
<form class="p-3">
<div class="form-group m-0">
<div class="input-group">
<input type="text" class="form-control" placeholder="Search ..."
aria-label="Recipient's username">
<button class="btn btn-primary" type="submit"><i
class="mdi mdi-magnify"></i></button>
</div>
</div>
</form>
</div>
</div>
@can('dashboard.toggleDashboard')
<livewire:toggle-switch />
@endcan
<div class="ms-1 header-item d-none d-sm-flex">
<button type="button" class="btn btn-icon btn-topbar btn-ghost-secondary rounded-circle"
data-toggle="fullscreen">
<i class='bx bx-fullscreen fs-22'></i>
</button>
</div>
<div class="ms-1 header-item d-none d-sm-flex">
<button type="button"
class="btn btn-icon btn-topbar btn-ghost-secondary rounded-circle light-dark-mode">
<i class='bx bx-moon fs-22'></i>
</button>
</div>
<div class="dropdown topbar-head-dropdown ms-1 header-item" id="notificationDropdown">
<button type="button" class="btn btn-icon btn-topbar btn-ghost-secondary rounded-circle"
id="page-header-notifications-dropdown" data-bs-toggle="dropdown" data-bs-auto-close="outside"
aria-haspopup="true" aria-expanded="false">
<i class='bx bx-bell fs-22'></i>
<span
class="position-absolute topbar-badge fs-10 translate-middle badge rounded-pill bg-danger">3<span
class="visually-hidden">unread messages</span></span>
</button>
<div class="dropdown-menu dropdown-menu-lg dropdown-menu-end p-0"
aria-labelledby="page-header-notifications-dropdown">
<div class="dropdown-head bg-primary bg-pattern rounded-top">
<div class="p-3">
<div class="row align-items-center">
<div class="col">
<h6 class="m-0 fs-16 fw-semibold text-white"> Notifications </h6>
</div>
<div class="col-auto dropdown-tabs">
<span class="badge bg-light-subtle text-body fs-13"> 4 New</span>
</div>
</div>
</div>
<div class="px-2 pt-2">
<ul class="nav nav-tabs dropdown-tabs nav-tabs-custom" data-dropdown-tabs="true"
id="notificationItemsTab" role="tablist">
<li class="nav-item waves-effect waves-light">
<a class="nav-link active" data-bs-toggle="tab" href="#all-noti-tab"
role="tab" aria-selected="true">
All (4)
</a>
</li>
{{-- <li class="nav-item waves-effect waves-light">
<a class="nav-link" data-bs-toggle="tab" href="#messages-tab" role="tab"
aria-selected="false">
Messages
</a>
</li> --}}
</ul>
</div>
</div>
<div class="tab-content position-relative" id="notificationItemsTabContent">
<div class="tab-pane fade show active py-2 ps-2" id="all-noti-tab" role="tabpanel">
<div data-simplebar style="max-height: 300px;" class="pe-2">
<div class="text-reset notification-item d-block dropdown-item position-relative">
<div class="d-flex">
<img src="{{ asset('assets/images/users/avatar-8.jpg') }}"
class="me-3 rounded-circle avatar-xs flex-shrink-0" alt="user-pic">
<div class="flex-grow-1">
<a href="#!" class="stretched-link">
<h6 class="mt-0 mb-1 fs-13 fw-semibold">Maureen Gibson</h6>
</a>
<div class="fs-13 text-muted">
<p class="mb-1">We talked about a project on linkedin.</p>
</div>
<p class="mb-0 fs-11 fw-medium text-uppercase text-muted">
<span><i class="mdi mdi-clock-outline"></i> 4 hrs ago</span>
</p>
</div>
<div class="px-2 fs-15">
<div class="form-check notification-check">
<input class="form-check-input" type="checkbox" value=""
id="all-notification-check04">
<label class="form-check-label"
for="all-notification-check04"></label>
</div>
</div>
</div>
</div>
<div class="my-3 text-center view-all">
<button type="button"
class="btn btn-soft-success waves-effect waves-light">View
All Notifications <i class="ri-arrow-right-line align-middle"></i></button>
</div>
</div>
<div class="notification-actions" id="notification-actions">
<div class="d-flex text-muted justify-content-center">
Select <div id="select-content" class="text-body fw-semibold px-1">0</div>
Result
<button type="button" class="btn btn-link link-danger p-0 ms-3"
data-bs-toggle="modal"
data-bs-target="#removeNotificationModal">Remove</button>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="dropdown ms-sm-3 header-item topbar-user">
<button type="button" class="btn" id="page-header-user-dropdown" data-bs-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
<span class="d-flex align-items-center">
<img class="rounded-circle header-profile-user"
src="{{ asset('assets/images/avatar.png') }}" alt="Header Avatar">
<span class="text-start ms-xl-2">
<span
class="d-none d-xl-inline-block ms-1 fw-medium user-name-text">{{ auth()->user()->name }}</span>
<span
class="d-none d-xl-block ms-1 fs-12 user-name-sub-text">{{ auth()->user()->roles->map(function ($role) {
return $role->name;
})->implode(' ') }}</span>
</span>
</span>
</button>
<div class="dropdown-menu dropdown-menu-end">
<!-- item-->
<h6 class="dropdown-header">Welcome {{ auth()->user()->name }}!</h6>
<a class="dropdown-item" href="javascript:void(0)"
onclick="event.preventDefault(); $('#logout-form').submit();"><i
class="mdi mdi-logout text-muted fs-16 align-middle me-1"></i> <span
class="align-middle" data-key="t-logout">Logout</span></a>
<form id="logout-form" method="POST" action="{{ route('logout') }}">
@csrf
</form>
</div>
</div>
</div>
</div>
</div>
</header>

View File

@@ -0,0 +1,7 @@
<div id="preloader">
<div id="status">
<div class="spinner-border text-primary avatar-sm" role="status">
<span class="visually-hidden">Loading...</span>
</div>
</div>
</div>

View File

@@ -0,0 +1,24 @@
<!-- removeNotificationModal -->
<div id="removeNotificationModal" class="modal fade zoomIn" tabindex="-1" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close" id="NotificationModalbtn-close"></button>
</div>
<div class="modal-body">
<div class="mt-2 text-center">
<lord-icon src="https://cdn.lordicon.com/gsqxdxog.json" trigger="loop" colors="primary:#f7b84b,secondary:#f06548" style="width:100px;height:100px"></lord-icon>
<div class="mt-4 pt-2 fs-15 mx-4 mx-sm-5">
<h4>Are you sure ?</h4>
<p class="text-muted mx-4 mb-0">Are you sure you want to remove this Notification ?</p>
</div>
</div>
<div class="d-flex gap-2 justify-content-center mt-4 mb-2">
<button type="button" class="btn w-sm btn-light" data-bs-dismiss="modal">Close</button>
<button type="button" class="btn w-sm btn-danger" id="delete-notification">Yes, Delete It!</button>
</div>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->

View File

@@ -0,0 +1,89 @@
@php
function isMenuVisible($menu)
{
if (array_key_exists('module', $menu) && !empty($menu['module'])) {
if (!Module::isModuleEnabled($menu['module'])) {
return false;
}
}
if (array_key_exists('can', $menu) && !empty($menu['can'])) {
if (
!auth()
->user()
->can($menu['can'])
) {
return false;
}
}
if (array_key_exists('submenu', $menu) && is_array($menu['submenu'])) {
foreach ($menu['submenu'] as $submenu) {
if (isSubmenuVisible($submenu)) {
return true;
}
}
return false;
}
return true;
}
function isSubmenuVisible($submenu)
{
return !array_key_exists('can', $submenu) ||
empty($submenu['can']) ||
auth()
->user()
->can($submenu['can']);
}
@endphp
@foreach ($menus as $menu)
@if (isMenuVisible($menu))
@if (array_key_exists('menu-title', $menu))
<li class="menu-title">
<i class="ri-more-fill"></i>
<span>{{ $menu['menu-title'] }}</span>
</li>
@else
<li class="nav-item">
@if (array_key_exists('submenu', $menu))
@php
$menuList = array_column($menu['submenu'], 'url');
$isActive = in_array(\Request::path(), $menuList);
@endphp
<a class="nav-link menu-link @if ($isActive) collapsed active @endif"
data-bs-toggle="collapse" role="button" aria-expanded="false"
aria-controls="{{ str()->slug($menu['text']) }}" href="#{{ str()->slug($menu['text']) }}">
<i class="{{ $menu['icon'] }}"></i><span
data-key="t-{{ str()->slug($menu['text']) }}">{{ $menu['text'] }}</span>
</a>
<div class="menu-dropdown @if ($isActive) show @endif collapse"
id="{{ str()->slug($menu['text']) }}">
<ul class="nav nav-sm flex-column">
@foreach ($menu['submenu'] as $subMenu)
@if (isSubmenuVisible($subMenu))
<li class="nav-item">
<a href="{{ url($subMenu['url']) }}"
class="nav-link @if (\Request::is($subMenu['url']) || \Request::is($subMenu['url'] . '/*')) active @endif">
{{ $subMenu['text'] }}
</a>
</li>
@endif
@endforeach
</ul>
</div>
@else
<a href="{{ url($menu['url']) ?? '#' }}"
class="nav-link @if (\Request::is($menu['url']) || \Request::is($menu['url'] . '/*')) active @endif">
<i class="{{ $menu['icon'] }}"></i><span
data-key="t-{{ str()->slug($menu['text']) }}">{{ $menu['text'] }}</span>
</a>
@endif
</li>
@endif
@endif
@endforeach

View File

@@ -0,0 +1,40 @@
<div class="app-menu navbar-menu">
<!-- LOGO -->
<div class="navbar-brand-box">
<!-- Dark Logo-->
<a href="{{ route('dashboard') }}" class="logo logo-dark">
<span class="logo-sm">
<img src="{{ asset(setting('favicon')) }}" alt="" height="22">
</span>
<span class="logo-lg">
<img class="dark-login" src="{{ asset(setting('logo')) }}" alt="">
</span>
</a>
<!-- Light Logo-->
<a href="{{ route('dashboard') }}" class="logo logo-light">
<span class="logo-sm">
<img src="{{ asset(setting('favicon')) }}" alt="" height="22">
</span>
<span class="logo-lg">
<img class="light-login" src="{{ asset(setting('logo_white')) }}" alt="">
</span>
</a>
<button type="button" class="btn btn-sm p-0 fs-20 header-item float-end btn-vertical-sm-hover"
id="vertical-hover">
<i class="ri-record-circle-line"></i>
</button>
</div>
<div id="scrollbar">
<div class="container-fluid">
<div id="two-column-menu">
</div>
<ul class="navbar-nav" id="navbar-nav">
{!! Module::sidebarMenu(auth()->user()->active_sidebar) !!}
</ul>
</div>
</div>
<div class="sidebar-background"></div>
</div>

View File

@@ -0,0 +1,740 @@
<div class="customizer-setting d-none d-md-block">
<div class="btn-info rounded-pill shadow-lg btn btn-icon btn-lg p-2" data-bs-toggle="offcanvas" data-bs-target="#theme-settings-offcanvas" aria-controls="theme-settings-offcanvas">
<i class='mdi mdi-spin mdi-cog-outline fs-22'></i>
</div>
</div>
<!-- Theme Settings -->
<div class="offcanvas offcanvas-end border-0" tabindex="-1" id="theme-settings-offcanvas">
<div class="d-flex align-items-center bg-primary bg-gradient p-3 offcanvas-header">
<h5 class="m-0 me-2 text-white">Theme Customizer</h5>
<button type="button" class="btn-close btn-close-white ms-auto" id="customizerclose-btn" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body p-0">
<div data-simplebar class="h-100">
<div class="p-4">
<h6 class="mb-0 fw-semibold text-uppercase">Layout</h6>
<p class="text-muted">Choose your layout</p>
<div class="row gy-3">
<div class="col-4">
<div class="form-check card-radio">
<input id="customizer-layout01" name="data-layout" type="radio" value="vertical" class="form-check-input">
<label class="form-check-label p-0 avatar-md w-100" for="customizer-layout01">
<span class="d-flex gap-1 h-100">
<span class="flex-shrink-0">
<span class="bg-light d-flex h-100 flex-column gap-1 p-1">
<span class="d-block p-1 px-2 bg-primary-subtle rounded mb-2"></span>
<span class="d-block p-1 px-2 pb-0 bg-primary-subtle"></span>
<span class="d-block p-1 px-2 pb-0 bg-primary-subtle"></span>
<span class="d-block p-1 px-2 pb-0 bg-primary-subtle"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-block p-1"></span>
<span class="bg-light d-block p-1 mt-auto"></span>
</span>
</span>
</span>
</label>
</div>
<h5 class="fs-13 text-center mt-2">Vertical</h5>
</div>
<div class="col-4">
<div class="form-check card-radio">
<input id="customizer-layout02" name="data-layout" type="radio" value="horizontal" class="form-check-input">
<label class="form-check-label p-0 avatar-md w-100" for="customizer-layout02">
<span class="d-flex h-100 flex-column gap-1">
<span class="bg-light d-flex p-1 gap-1 align-items-center">
<span class="d-block p-1 bg-primary-subtle rounded me-1"></span>
<span class="d-block p-1 pb-0 px-2 bg-primary-subtle ms-auto"></span>
<span class="d-block p-1 pb-0 px-2 bg-primary-subtle"></span>
</span>
<span class="bg-light d-block p-1"></span>
<span class="bg-light d-block p-1 mt-auto"></span>
</span>
</label>
</div>
<h5 class="fs-13 text-center mt-2">Horizontal</h5>
</div>
<div class="col-4">
<div class="form-check card-radio">
<input id="customizer-layout03" name="data-layout" type="radio" value="twocolumn" class="form-check-input">
<label class="form-check-label p-0 avatar-md w-100" for="customizer-layout03">
<span class="d-flex gap-1 h-100">
<span class="flex-shrink-0">
<span class="bg-light d-flex h-100 flex-column gap-1">
<span class="d-block p-1 bg-primary-subtle mb-2"></span>
<span class="d-block p-1 pb-0 bg-primary-subtle"></span>
<span class="d-block p-1 pb-0 bg-primary-subtle"></span>
<span class="d-block p-1 pb-0 bg-primary-subtle"></span>
</span>
</span>
<span class="flex-shrink-0">
<span class="bg-light d-flex h-100 flex-column gap-1 p-1">
<span class="d-block p-1 px-2 pb-0 bg-primary-subtle"></span>
<span class="d-block p-1 px-2 pb-0 bg-primary-subtle"></span>
<span class="d-block p-1 px-2 pb-0 bg-primary-subtle"></span>
<span class="d-block p-1 px-2 pb-0 bg-primary-subtle"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-block p-1"></span>
<span class="bg-light d-block p-1 mt-auto"></span>
</span>
</span>
</span>
</label>
</div>
<h5 class="fs-13 text-center mt-2">Two Column</h5>
</div>
<!-- end col -->
<div class="col-4">
<div class="form-check card-radio">
<input id="customizer-layout04" name="data-layout" type="radio" value="semibox" class="form-check-input">
<label class="form-check-label p-0 avatar-md w-100" for="customizer-layout04">
<span class="d-flex gap-1 h-100">
<span class="flex-shrink-0 p-1">
<span class="bg-light d-flex h-100 flex-column gap-1 p-1">
<span class="d-block p-1 px-2 bg-primary-subtle rounded mb-2"></span>
<span class="d-block p-1 px-2 pb-0 bg-primary-subtle"></span>
<span class="d-block p-1 px-2 pb-0 bg-primary-subtle"></span>
<span class="d-block p-1 px-2 pb-0 bg-primary-subtle"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column pt-1 pe-2">
<span class="bg-light d-block p-1"></span>
<span class="bg-light d-block p-1 mt-auto"></span>
</span>
</span>
</span>
</label>
</div>
<h5 class="fs-13 text-center mt-2">Semi Box</h5>
</div>
<!-- end col -->
</div>
<h6 class="mt-4 mb-0 fw-semibold text-uppercase">Color Scheme</h6>
<p class="text-muted">Choose Light or Dark Scheme.</p>
<div class="colorscheme-cardradio">
<div class="row">
<div class="col-4">
<div class="form-check card-radio">
<input class="form-check-input" type="radio" name="data-bs-theme" id="layout-mode-light" value="light">
<label class="form-check-label p-0 avatar-md w-100" for="layout-mode-light">
<span class="d-flex gap-1 h-100">
<span class="flex-shrink-0">
<span class="bg-light d-flex h-100 flex-column gap-1 p-1">
<span class="d-block p-1 px-2 bg-primary-subtle rounded mb-2"></span>
<span class="d-block p-1 px-2 pb-0 bg-primary-subtle"></span>
<span class="d-block p-1 px-2 pb-0 bg-primary-subtle"></span>
<span class="d-block p-1 px-2 pb-0 bg-primary-subtle"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-block p-1"></span>
<span class="bg-light d-block p-1 mt-auto"></span>
</span>
</span>
</span>
</label>
</div>
<h5 class="fs-13 text-center mt-2">Light</h5>
</div>
<div class="col-4">
<div class="form-check card-radio dark">
<input class="form-check-input" type="radio" name="data-bs-theme" id="layout-mode-dark" value="dark">
<label class="form-check-label p-0 avatar-md w-100 bg-dark" for="layout-mode-dark">
<span class="d-flex gap-1 h-100">
<span class="flex-shrink-0">
<span class="bg-white bg-opacity-10 d-flex h-100 flex-column gap-1 p-1">
<span class="d-block p-1 px-2 bg-white bg-opacity-10 rounded mb-2"></span>
<span class="d-block p-1 px-2 pb-0 bg-white bg-opacity-10"></span>
<span class="d-block p-1 px-2 pb-0 bg-white bg-opacity-10"></span>
<span class="d-block p-1 px-2 pb-0 bg-white bg-opacity-10"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-white bg-opacity-10 d-block p-1"></span>
<span class="bg-white bg-opacity-10 d-block p-1 mt-auto"></span>
</span>
</span>
</span>
</label>
</div>
<h5 class="fs-13 text-center mt-2">Dark</h5>
</div>
</div>
</div>
<div id="sidebar-visibility">
<h6 class="mt-4 mb-0 fw-semibold text-uppercase">Sidebar Visibility</h6>
<p class="text-muted">Choose show or Hidden sidebar.</p>
<div class="row">
<div class="col-4">
<div class="form-check card-radio">
<input class="form-check-input" type="radio" name="data-sidebar-visibility" id="sidebar-visibility-show" value="show">
<label class="form-check-label p-0 avatar-md w-100" for="sidebar-visibility-show">
<span class="d-flex gap-1 h-100">
<span class="flex-shrink-0 p-1">
<span class="bg-light d-flex h-100 flex-column gap-1 p-1">
<span class="d-block p-1 px-2 bg-primary-subtle rounded mb-2"></span>
<span class="d-block p-1 px-2 pb-0 bg-primary-subtle"></span>
<span class="d-block p-1 px-2 pb-0 bg-primary-subtle"></span>
<span class="d-block p-1 px-2 pb-0 bg-primary-subtle"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column pt-1 pe-2">
<span class="bg-light d-block p-1"></span>
<span class="bg-light d-block p-1 mt-auto"></span>
</span>
</span>
</span>
</label>
</div>
<h5 class="fs-13 text-center mt-2">Show</h5>
</div>
<div class="col-4">
<div class="form-check card-radio">
<input class="form-check-input" type="radio" name="data-sidebar-visibility" id="sidebar-visibility-hidden" value="hidden">
<label class="form-check-label p-0 avatar-md w-100 px-2" for="sidebar-visibility-hidden">
<span class="d-flex gap-1 h-100">
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column pt-1 px-2">
<span class="bg-light d-block p-1"></span>
<span class="bg-light d-block p-1 mt-auto"></span>
</span>
</span>
</span>
</label>
</div>
<h5 class="fs-13 text-center mt-2">Hidden</h5>
</div>
</div>
</div>
<div id="layout-width">
<h6 class="mt-4 mb-0 fw-semibold text-uppercase">Layout Width</h6>
<p class="text-muted">Choose Fluid or Boxed layout.</p>
<div class="row">
<div class="col-4">
<div class="form-check card-radio">
<input class="form-check-input" type="radio" name="data-layout-width" id="layout-width-fluid" value="fluid">
<label class="form-check-label p-0 avatar-md w-100" for="layout-width-fluid">
<span class="d-flex gap-1 h-100">
<span class="flex-shrink-0">
<span class="bg-light d-flex h-100 flex-column gap-1 p-1">
<span class="d-block p-1 px-2 bg-primary-subtle rounded mb-2"></span>
<span class="d-block p-1 px-2 pb-0 bg-primary-subtle"></span>
<span class="d-block p-1 px-2 pb-0 bg-primary-subtle"></span>
<span class="d-block p-1 px-2 pb-0 bg-primary-subtle"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-block p-1"></span>
<span class="bg-light d-block p-1 mt-auto"></span>
</span>
</span>
</span>
</label>
</div>
<h5 class="fs-13 text-center mt-2">Fluid</h5>
</div>
<div class="col-4">
<div class="form-check card-radio">
<input class="form-check-input" type="radio" name="data-layout-width" id="layout-width-boxed" value="boxed">
<label class="form-check-label p-0 avatar-md w-100 px-2" for="layout-width-boxed">
<span class="d-flex gap-1 h-100 border-start border-end">
<span class="flex-shrink-0">
<span class="bg-light d-flex h-100 flex-column gap-1 p-1">
<span class="d-block p-1 px-2 bg-primary-subtle rounded mb-2"></span>
<span class="d-block p-1 px-2 pb-0 bg-primary-subtle"></span>
<span class="d-block p-1 px-2 pb-0 bg-primary-subtle"></span>
<span class="d-block p-1 px-2 pb-0 bg-primary-subtle"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-block p-1"></span>
<span class="bg-light d-block p-1 mt-auto"></span>
</span>
</span>
</span>
</label>
</div>
<h5 class="fs-13 text-center mt-2">Boxed</h5>
</div>
</div>
</div>
<div id="layout-position">
<h6 class="mt-4 mb-0 fw-semibold text-uppercase">Layout Position</h6>
<p class="text-muted">Choose Fixed or Scrollable Layout Position.</p>
<div class="btn-group radio" role="group">
<input type="radio" class="btn-check" name="data-layout-position" id="layout-position-fixed" value="fixed">
<label class="btn btn-light w-sm" for="layout-position-fixed">Fixed</label>
<input type="radio" class="btn-check" name="data-layout-position" id="layout-position-scrollable" value="scrollable">
<label class="btn btn-light w-sm ms-0" for="layout-position-scrollable">Scrollable</label>
</div>
</div>
<h6 class="mt-4 mb-0 fw-semibold text-uppercase">Topbar Color</h6>
<p class="text-muted">Choose Light or Dark Topbar Color.</p>
<div class="row">
<div class="col-4">
<div class="form-check card-radio">
<input class="form-check-input" type="radio" name="data-topbar" id="topbar-color-light" value="light">
<label class="form-check-label p-0 avatar-md w-100" for="topbar-color-light">
<span class="d-flex gap-1 h-100">
<span class="flex-shrink-0">
<span class="bg-light d-flex h-100 flex-column gap-1 p-1">
<span class="d-block p-1 px-2 bg-primary-subtle rounded mb-2"></span>
<span class="d-block p-1 px-2 pb-0 bg-primary-subtle"></span>
<span class="d-block p-1 px-2 pb-0 bg-primary-subtle"></span>
<span class="d-block p-1 px-2 pb-0 bg-primary-subtle"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-block p-1"></span>
<span class="bg-light d-block p-1 mt-auto"></span>
</span>
</span>
</span>
</label>
</div>
<h5 class="fs-13 text-center mt-2">Light</h5>
</div>
<div class="col-4">
<div class="form-check card-radio">
<input class="form-check-input" type="radio" name="data-topbar" id="topbar-color-dark" value="dark">
<label class="form-check-label p-0 avatar-md w-100" for="topbar-color-dark">
<span class="d-flex gap-1 h-100">
<span class="flex-shrink-0">
<span class="bg-light d-flex h-100 flex-column gap-1 p-1">
<span class="d-block p-1 px-2 bg-primary-subtle rounded mb-2"></span>
<span class="d-block p-1 px-2 pb-0 bg-primary-subtle"></span>
<span class="d-block p-1 px-2 pb-0 bg-primary-subtle"></span>
<span class="d-block p-1 px-2 pb-0 bg-primary-subtle"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-primary d-block p-1"></span>
<span class="bg-light d-block p-1 mt-auto"></span>
</span>
</span>
</span>
</label>
</div>
<h5 class="fs-13 text-center mt-2">Dark</h5>
</div>
</div>
<div id="sidebar-size">
<h6 class="mt-4 mb-0 fw-semibold text-uppercase">Sidebar Size</h6>
<p class="text-muted">Choose a size of Sidebar.</p>
<div class="row">
<div class="col-4">
<div class="form-check sidebar-setting card-radio">
<input class="form-check-input" type="radio" name="data-sidebar-size" id="sidebar-size-default" value="lg">
<label class="form-check-label p-0 avatar-md w-100" for="sidebar-size-default">
<span class="d-flex gap-1 h-100">
<span class="flex-shrink-0">
<span class="bg-light d-flex h-100 flex-column gap-1 p-1">
<span class="d-block p-1 px-2 bg-primary-subtle rounded mb-2"></span>
<span class="d-block p-1 px-2 pb-0 bg-primary-subtle"></span>
<span class="d-block p-1 px-2 pb-0 bg-primary-subtle"></span>
<span class="d-block p-1 px-2 pb-0 bg-primary-subtle"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-block p-1"></span>
<span class="bg-light d-block p-1 mt-auto"></span>
</span>
</span>
</span>
</label>
</div>
<h5 class="fs-13 text-center mt-2">Default</h5>
</div>
<div class="col-4">
<div class="form-check sidebar-setting card-radio">
<input class="form-check-input" type="radio" name="data-sidebar-size" id="sidebar-size-compact" value="md">
<label class="form-check-label p-0 avatar-md w-100" for="sidebar-size-compact">
<span class="d-flex gap-1 h-100">
<span class="flex-shrink-0">
<span class="bg-light d-flex h-100 flex-column gap-1 p-1">
<span class="d-block p-1 bg-primary-subtle rounded mb-2"></span>
<span class="d-block p-1 pb-0 bg-primary-subtle"></span>
<span class="d-block p-1 pb-0 bg-primary-subtle"></span>
<span class="d-block p-1 pb-0 bg-primary-subtle"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-block p-1"></span>
<span class="bg-light d-block p-1 mt-auto"></span>
</span>
</span>
</span>
</label>
</div>
<h5 class="fs-13 text-center mt-2">Compact</h5>
</div>
<div class="col-4">
<div class="form-check sidebar-setting card-radio">
<input class="form-check-input" type="radio" name="data-sidebar-size" id="sidebar-size-small" value="sm">
<label class="form-check-label p-0 avatar-md w-100" for="sidebar-size-small">
<span class="d-flex gap-1 h-100">
<span class="flex-shrink-0">
<span class="bg-light d-flex h-100 flex-column gap-1">
<span class="d-block p-1 bg-primary-subtle mb-2"></span>
<span class="d-block p-1 pb-0 bg-primary-subtle"></span>
<span class="d-block p-1 pb-0 bg-primary-subtle"></span>
<span class="d-block p-1 pb-0 bg-primary-subtle"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-block p-1"></span>
<span class="bg-light d-block p-1 mt-auto"></span>
</span>
</span>
</span>
</label>
</div>
<h5 class="fs-13 text-center mt-2">Small (Icon View)</h5>
</div>
<div class="col-4">
<div class="form-check sidebar-setting card-radio">
<input class="form-check-input" type="radio" name="data-sidebar-size" id="sidebar-size-small-hover" value="sm-hover">
<label class="form-check-label p-0 avatar-md w-100" for="sidebar-size-small-hover">
<span class="d-flex gap-1 h-100">
<span class="flex-shrink-0">
<span class="bg-light d-flex h-100 flex-column gap-1">
<span class="d-block p-1 bg-primary-subtle mb-2"></span>
<span class="d-block p-1 pb-0 bg-primary-subtle"></span>
<span class="d-block p-1 pb-0 bg-primary-subtle"></span>
<span class="d-block p-1 pb-0 bg-primary-subtle"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-block p-1"></span>
<span class="bg-light d-block p-1 mt-auto"></span>
</span>
</span>
</span>
</label>
</div>
<h5 class="fs-13 text-center mt-2">Small Hover View</h5>
</div>
</div>
</div>
<div id="sidebar-view">
<h6 class="mt-4 mb-0 fw-semibold text-uppercase">Sidebar View</h6>
<p class="text-muted">Choose Default or Detached Sidebar view.</p>
<div class="row">
<div class="col-4">
<div class="form-check sidebar-setting card-radio">
<input class="form-check-input" type="radio" name="data-layout-style" id="sidebar-view-default" value="default">
<label class="form-check-label p-0 avatar-md w-100" for="sidebar-view-default">
<span class="d-flex gap-1 h-100">
<span class="flex-shrink-0">
<span class="bg-light d-flex h-100 flex-column gap-1 p-1">
<span class="d-block p-1 px-2 bg-primary-subtle rounded mb-2"></span>
<span class="d-block p-1 px-2 pb-0 bg-primary-subtle"></span>
<span class="d-block p-1 px-2 pb-0 bg-primary-subtle"></span>
<span class="d-block p-1 px-2 pb-0 bg-primary-subtle"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-block p-1"></span>
<span class="bg-light d-block p-1 mt-auto"></span>
</span>
</span>
</span>
</label>
</div>
<h5 class="fs-13 text-center mt-2">Default</h5>
</div>
<div class="col-4">
<div class="form-check sidebar-setting card-radio">
<input class="form-check-input" type="radio" name="data-layout-style" id="sidebar-view-detached" value="detached">
<label class="form-check-label p-0 avatar-md w-100" for="sidebar-view-detached">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-flex p-1 gap-1 align-items-center px-2">
<span class="d-block p-1 bg-primary-subtle rounded me-1"></span>
<span class="d-block p-1 pb-0 px-2 bg-primary-subtle ms-auto"></span>
<span class="d-block p-1 pb-0 px-2 bg-primary-subtle"></span>
</span>
<span class="d-flex gap-1 h-100 p-1 px-2">
<span class="flex-shrink-0">
<span class="bg-light d-flex h-100 flex-column gap-1 p-1">
<span class="d-block p-1 px-2 pb-0 bg-primary-subtle"></span>
<span class="d-block p-1 px-2 pb-0 bg-primary-subtle"></span>
<span class="d-block p-1 px-2 pb-0 bg-primary-subtle"></span>
</span>
</span>
</span>
<span class="bg-light d-block p-1 mt-auto px-2"></span>
</span>
</label>
</div>
<h5 class="fs-13 text-center mt-2">Detached</h5>
</div>
</div>
</div>
<div id="sidebar-color">
<h6 class="mt-4 mb-0 fw-semibold text-uppercase">Sidebar Color</h6>
<p class="text-muted">Choose a color of Sidebar.</p>
<div class="row">
<div class="col-4">
<div class="form-check sidebar-setting card-radio" data-bs-toggle="collapse" data-bs-target="#collapseBgGradient.show">
<input class="form-check-input" type="radio" name="data-sidebar" id="sidebar-color-light" value="light">
<label class="form-check-label p-0 avatar-md w-100" for="sidebar-color-light">
<span class="d-flex gap-1 h-100">
<span class="flex-shrink-0">
<span class="bg-white border-end d-flex h-100 flex-column gap-1 p-1">
<span class="d-block p-1 px-2 bg-primary-subtle rounded mb-2"></span>
<span class="d-block p-1 px-2 pb-0 bg-primary-subtle"></span>
<span class="d-block p-1 px-2 pb-0 bg-primary-subtle"></span>
<span class="d-block p-1 px-2 pb-0 bg-primary-subtle"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-block p-1"></span>
<span class="bg-light d-block p-1 mt-auto"></span>
</span>
</span>
</span>
</label>
</div>
<h5 class="fs-13 text-center mt-2">Light</h5>
</div>
<div class="col-4">
<div class="form-check sidebar-setting card-radio" data-bs-toggle="collapse" data-bs-target="#collapseBgGradient.show">
<input class="form-check-input" type="radio" name="data-sidebar" id="sidebar-color-dark" value="dark">
<label class="form-check-label p-0 avatar-md w-100" for="sidebar-color-dark">
<span class="d-flex gap-1 h-100">
<span class="flex-shrink-0">
<span class="bg-primary d-flex h-100 flex-column gap-1 p-1">
<span class="d-block p-1 px-2 bg-white bg-opacity-10 rounded mb-2"></span>
<span class="d-block p-1 px-2 pb-0 bg-white bg-opacity-10"></span>
<span class="d-block p-1 px-2 pb-0 bg-white bg-opacity-10"></span>
<span class="d-block p-1 px-2 pb-0 bg-white bg-opacity-10"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-block p-1"></span>
<span class="bg-light d-block p-1 mt-auto"></span>
</span>
</span>
</span>
</label>
</div>
<h5 class="fs-13 text-center mt-2">Dark</h5>
</div>
<div class="col-4">
<button class="btn btn-link avatar-md w-100 p-0 overflow-hidden border collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapseBgGradient" aria-expanded="false" aria-controls="collapseBgGradient">
<span class="d-flex gap-1 h-100">
<span class="flex-shrink-0">
<span class="bg-vertical-gradient d-flex h-100 flex-column gap-1 p-1">
<span class="d-block p-1 px-2 bg-white bg-opacity-10 rounded mb-2"></span>
<span class="d-block p-1 px-2 pb-0 bg-white bg-opacity-10"></span>
<span class="d-block p-1 px-2 pb-0 bg-white bg-opacity-10"></span>
<span class="d-block p-1 px-2 pb-0 bg-white bg-opacity-10"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-block p-1"></span>
<span class="bg-light d-block p-1 mt-auto"></span>
</span>
</span>
</span>
</button>
<h5 class="fs-13 text-center mt-2">Gradient</h5>
</div>
</div>
<!-- end row -->
<div class="collapse" id="collapseBgGradient">
<div class="d-flex gap-2 flex-wrap img-switch p-2 px-3 bg-light rounded">
<div class="form-check sidebar-setting card-radio">
<input class="form-check-input" type="radio" name="data-sidebar" id="sidebar-color-gradient" value="gradient">
<label class="form-check-label p-0 avatar-xs rounded-circle" for="sidebar-color-gradient">
<span class="avatar-title rounded-circle bg-vertical-gradient"></span>
</label>
</div>
<div class="form-check sidebar-setting card-radio">
<input class="form-check-input" type="radio" name="data-sidebar" id="sidebar-color-gradient-2" value="gradient-2">
<label class="form-check-label p-0 avatar-xs rounded-circle" for="sidebar-color-gradient-2">
<span class="avatar-title rounded-circle bg-vertical-gradient-2"></span>
</label>
</div>
<div class="form-check sidebar-setting card-radio">
<input class="form-check-input" type="radio" name="data-sidebar" id="sidebar-color-gradient-3" value="gradient-3">
<label class="form-check-label p-0 avatar-xs rounded-circle" for="sidebar-color-gradient-3">
<span class="avatar-title rounded-circle bg-vertical-gradient-3"></span>
</label>
</div>
<div class="form-check sidebar-setting card-radio">
<input class="form-check-input" type="radio" name="data-sidebar" id="sidebar-color-gradient-4" value="gradient-4">
<label class="form-check-label p-0 avatar-xs rounded-circle" for="sidebar-color-gradient-4">
<span class="avatar-title rounded-circle bg-vertical-gradient-4"></span>
</label>
</div>
</div>
</div>
</div>
<div id="sidebar-img">
<h6 class="mt-4 mb-0 fw-semibold text-uppercase">Sidebar Images</h6>
<p class="text-muted">Choose a image of Sidebar.</p>
<div class="d-flex gap-2 flex-wrap img-switch">
<div class="form-check sidebar-setting card-radio">
<input class="form-check-input" type="radio" name="data-sidebar-image" id="sidebarimg-none" value="none">
<label class="form-check-label p-0 avatar-sm h-auto" for="sidebarimg-none">
<span class="avatar-md w-auto bg-light d-flex align-items-center justify-content-center">
<i class="ri-close-fill fs-20"></i>
</span>
</label>
</div>
<div class="form-check sidebar-setting card-radio">
<input class="form-check-input" type="radio" name="data-sidebar-image" id="sidebarimg-01" value="img-1">
<label class="form-check-label p-0 avatar-sm h-auto" for="sidebarimg-01">
<img src="assets/images/sidebar/img-1.jpg" alt="" class="avatar-md w-auto object-fit-cover">
</label>
</div>
<div class="form-check sidebar-setting card-radio">
<input class="form-check-input" type="radio" name="data-sidebar-image" id="sidebarimg-02" value="img-2">
<label class="form-check-label p-0 avatar-sm h-auto" for="sidebarimg-02">
<img src="assets/images/sidebar/img-2.jpg" alt="" class="avatar-md w-auto object-fit-cover">
</label>
</div>
<div class="form-check sidebar-setting card-radio">
<input class="form-check-input" type="radio" name="data-sidebar-image" id="sidebarimg-03" value="img-3">
<label class="form-check-label p-0 avatar-sm h-auto" for="sidebarimg-03">
<img src="assets/images/sidebar/img-3.jpg" alt="" class="avatar-md w-auto object-fit-cover">
</label>
</div>
<div class="form-check sidebar-setting card-radio">
<input class="form-check-input" type="radio" name="data-sidebar-image" id="sidebarimg-04" value="img-4">
<label class="form-check-label p-0 avatar-sm h-auto" for="sidebarimg-04">
<img src="assets/images/sidebar/img-4.jpg" alt="" class="avatar-md w-auto object-fit-cover">
</label>
</div>
</div>
</div>
<div id="preloader-menu">
<h6 class="mt-4 mb-0 fw-semibold text-uppercase">Preloader</h6>
<p class="text-muted">Choose a preloader.</p>
<div class="row">
<div class="col-4">
<div class="form-check sidebar-setting card-radio">
<input class="form-check-input" type="radio" name="data-preloader" id="preloader-view-custom" value="enable">
<label class="form-check-label p-0 avatar-md w-100" for="preloader-view-custom">
<span class="d-flex gap-1 h-100">
<span class="flex-shrink-0">
<span class="bg-light d-flex h-100 flex-column gap-1 p-1">
<span class="d-block p-1 px-2 bg-primary-subtle rounded mb-2"></span>
<span class="d-block p-1 px-2 pb-0 bg-primary-subtle"></span>
<span class="d-block p-1 px-2 pb-0 bg-primary-subtle"></span>
<span class="d-block p-1 px-2 pb-0 bg-primary-subtle"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-block p-1"></span>
<span class="bg-light d-block p-1 mt-auto"></span>
</span>
</span>
</span>
<!-- <div id="preloader"> -->
<div id="status" class="d-flex align-items-center justify-content-center">
<div class="spinner-border text-primary avatar-xxs m-auto" role="status">
<span class="visually-hidden">Loading...</span>
</div>
</div>
<!-- </div> -->
</label>
</div>
<h5 class="fs-13 text-center mt-2">Enable</h5>
</div>
<div class="col-4">
<div class="form-check sidebar-setting card-radio">
<input class="form-check-input" type="radio" name="data-preloader" id="preloader-view-none" value="disable">
<label class="form-check-label p-0 avatar-md w-100" for="preloader-view-none">
<span class="d-flex gap-1 h-100">
<span class="flex-shrink-0">
<span class="bg-light d-flex h-100 flex-column gap-1 p-1">
<span class="d-block p-1 px-2 bg-primary-subtle rounded mb-2"></span>
<span class="d-block p-1 px-2 pb-0 bg-primary-subtle"></span>
<span class="d-block p-1 px-2 pb-0 bg-primary-subtle"></span>
<span class="d-block p-1 px-2 pb-0 bg-primary-subtle"></span>
</span>
</span>
<span class="flex-grow-1">
<span class="d-flex h-100 flex-column">
<span class="bg-light d-block p-1"></span>
<span class="bg-light d-block p-1 mt-auto"></span>
</span>
</span>
</span>
</label>
</div>
<h5 class="fs-13 text-center mt-2">Disable</h5>
</div>
</div>
</div>
<!-- end preloader-menu -->
</div>
</div>
</div>
<div class="offcanvas-footer border-top p-3 text-center">
<div class="row">
<div class="col-6">
<button type="button" class="btn btn-light w-100" id="reset-layout">Reset</button>
</div>
<div class="col-6">
<a href="https://1.envato.market/velzon-admin" target="_blank" class="btn btn-primary w-100">Buy Now</a>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,207 @@
@props(['route', 'columns', 'reorder' => null])
<table class="display table table-bordered dt-responsive ajax-datatable table-sm" style="width:100%">
<thead class="text-white" style="background-color: var(--vz-primary)">
<tr>
@foreach ($columns as $index => $column)
<th>{{ $column['title'] }}</th>
@endforeach
</tr>
</thead>
<tbody id="table-body">
</tbody>
</table>
@push('css')
<link rel="stylesheet" href="https://cdn.datatables.net/1.11.5/css/dataTables.bootstrap5.min.css" />
<link rel="stylesheet" href="https://cdn.datatables.net/responsive/2.2.9/css/responsive.bootstrap.min.css" />
<link rel="stylesheet" href="https://cdn.datatables.net/buttons/2.2.2/css/buttons.dataTables.min.css">
@endpush
@push('js')
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
<script src="https://cdn.datatables.net/1.11.5/js/jquery.dataTables.min.js"></script>
<script src="https://cdn.datatables.net/1.11.5/js/dataTables.bootstrap5.min.js"></script>
<script src="https://cdn.datatables.net/responsive/2.2.9/js/dataTables.responsive.min.js"></script>
@if (!is_null($reorder))
<script>
$("#table-body").sortable({
items: "tr",
cursor: 'move',
opacity: 0.6,
update: function() {
sendOrderToServer();
}
});
function sendOrderToServer() {
var order = [];
var token = $('meta[name="csrf-token"]').attr('content');
$('tr.tableRow').each(function(index, element) {
order.push({
id: $(this).attr('data-id'),
position: index + 1
});
});
$.ajax({
type: "POST",
url: "{{ $reorder }}",
dataType: "json",
data: {
order: order,
_token: token
},
success: function(response) {
if (response.status == true) {
console.log(response.message);
$('.ajax-datatable').DataTable().ajax.reload();
} else {
console.log(response);
}
}
});
}
</script>
@endif
<script>
$(document).ready(function() {
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
let table = $('.ajax-datatable').DataTable({
processing: true,
reordering: true,
serverSide: true,
dom: "Blfrtip",
buttons: ["copy", "csv", "excel", "print"],
ajax: {
url: "{{ $route }}",
data: function (d) {
let formData = $('#filter-form').serializeArray();
formData.forEach((field) => {
d[field.name] = field.value === "null" ? null : field.value;
});
}
},
columns: @json($columns),
rowCallback: function(row, data) {
$(row).attr('data-id', data.id);
},
initComplete: function() {
$('[data-bs-toggle="tooltip"]').tooltip('dispose').tooltip();
}
});
$('body').on('click', '.remove-item', function(e) {
e.preventDefault();
let url = $(this).data('link');
Swal.fire({
title: 'Are you sure?',
text: "You won't be able to revert this!",
icon: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: 'Yes, delete it!'
}).then((result) => {
if (result.isConfirmed) {
$.ajax({
url: url,
type: 'DELETE',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: function(response) {
if (response.status == 200) {
flasher.success(response.message);
$('.ajax-datatable').DataTable().ajax.reload();
}
},
error: function(xhr, status, error) {
console.error(xhr.responseText);
}
});
}
});
});
$('body').on('click', '.toggle-item', function(e) {
e.preventDefault();
let url = $(this).data('link');
Swal.fire({
title: 'Are you sure?',
text: "Item will be marked as " + $(this).attr('data-status') + "!",
icon: 'info',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: 'Yes, toggle it!'
}).then((result) => {
if (result.isConfirmed) {
$.ajax({
url: url,
type: 'get',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: function(response) {
if (response.status == 200) {
flasher.success(response.message);
$('.ajax-datatable').DataTable().ajax.reload();
}
},
error: function(xhr, status, error) {
console.error(xhr.responseText);
}
});
}
});
});
$('body').on('click', '.mark-item', function(e) {
e.preventDefault();
let url = $(this).data('link');
Swal.fire({
title: 'Are you sure?',
text: "Item will be marked as " + $(this).attr('data-status') + "!",
icon: 'warning',
showCancelButton: true,
confirmButtonColor: 'yellow',
cancelButtonColor: '#d33',
confirmButtonText: 'Yes, mark it!'
}).then((result) => {
if (result.isConfirmed) {
$.ajax({
url: url,
type: 'get',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: function(response) {
if (response.status == 200) {
flasher.success(response.message);
$('.ajax-datatable').DataTable().ajax.reload();
}
},
error: function(xhr, status, error) {
console.error(xhr.responseText);
}
});
}
});
});
});
</script>
@endpush

View File

@@ -0,0 +1,30 @@
@props(['type' => 'success', 'message' => null, 'messages' => []])
@if ($message || $messages)
<div class="alert alert-{{ $type }} alert-dismissible fade show">
<svg class="alert-icon me-2" viewBox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2"
fill="none" stroke-linecap="round" stroke-linejoin="round">
@if ($type == 'success')
<polyline points="9 11 12 14 22 4"></polyline>
<path d="M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11"></path>
@elseif ($type == 'danger')
<polygon points="7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2"></polygon>
<line x1="15" y1="9" x2="9" y2="15"></line>
<line x1="9" y1="9" x2="15" y2="15"></line>
@endif
</svg>
<strong>{{ ucfirst($type) }}!</strong>
@if ($message)
{{ $message }}.
@elseif ($messages)
<ul class="ps-4">
@foreach ($messages as $message)
<li class="mb-1">{{ $message }}</li>
@endforeach
</ul>
@endif
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="btn-close"></button>
</div>
@endif

View File

@@ -0,0 +1,7 @@
<div class="input-group">
<input type="text" {!! $attributes->merge(['class' => 'form-control flatpickr']) !!}>
<span class="input-group-text">
<i class="ri-calendar-2-line"></i>
</span>
</div>

View File

@@ -0,0 +1,6 @@
@props(['label' => 'Add', 'href' => '#'])
<div class="card-footer border-0 text-end">
{{ html()->a($href = $href, $text = 'Cancel')->class('btn btn-sm btn-light') }}
{{ html()->button($label, 'submit')->class('btn btn-sm btn-primary waves-effect waves-light text-white') }}
</div>

View File

@@ -0,0 +1,82 @@
@props([
'id' => 'lfm-image',
'name' => 'logo',
'label' => 'Select Image',
'multiple' => 'true',
'data' => null,
'editable' => false,
])
<div class="upload__box">
<div class="{{ $id }}-upload__img-wrap row">
</div>
<input id="{{ $id }}" type="text" name="{{ $name }}" value="{{ $data }}"
class="form-control" readonly />
<div class="input-group mt-1">
<span class="input-group-btn">
<a href="javascript:void(0)" id="{{ $id }}-input" data-input="{{ $id }}"
class="link-primary link-opacity-75-hover link-offset-2">
<i class="ri-image-add-line me-1"></i> {{ $label }}
</a>
</span>
</div>
</div>
@push('js')
<script>
$(document).ready(function() {
let imgArray = [];
let eventListener = "{{ $id }}";
let isMultiple = "{{ $multiple }}";
let isEditable = "{{ $editable }}";
let data = "{{ $data }}";
const prefix = `${app_url}/laravel-filemanager`;
$(`#${eventListener}-input`).filemanager('file', {
prefix: prefix
});
$(document).on('change', `#${eventListener}`, function() {
const value = $(this).val();
imgArray = (isMultiple == true) ? value.split(',') : [value.split(',').pop()];
let imageUrl = imgArray.join(',');
$(`#${eventListener}`).val(imageUrl);
$(`.${eventListener}-upload__img-wrap`).empty();
$.each(imgArray, function(index, item) {
let html = `<div class='upload__img-box col-sm-auto'>
<div style='background-image: url("${app_url}/${item}")' class='img-bg'>
<div id="${eventListener}-img-close" data-file="${item}" class='upload__img-close'></div>
</div>
</div>`;
$(`.${eventListener}-upload__img-wrap`).append(html);
})
});
$(document).on('click', `#${eventListener}-img-close`, function(e) {
const file = $(this).data("file");
for (let i = 0; i < imgArray.length; i++) {
if (imgArray[i] == file) {
imgArray.splice(i, 1);
break;
}
}
let imageUrl = imgArray.join(',');
$(`#${eventListener}`).val(imageUrl);
$(this).parent().parent().remove();
});
if (isEditable && data) {
$(`#${eventListener}`).trigger('change');
}
});
</script>
@endpush