Prepare component

This commit is contained in:
2025-05-30 01:07:33 -06:00
parent 3916c62935
commit cac9a5b121
263 changed files with 14456 additions and 1072 deletions

View File

@ -17,13 +17,13 @@
@endsection
@push('page-script')
@vite('vendor/koneko/laravel-vuexy-website-admin/resources/js/google-analytics-settings-card.js')
@vite('vendor/koneko/laravel-vuexy-website-admin/resources/js/google-analytics-card-card.js')
@endpush
@section('content')
<div class="row">
<div class="col-md-6">
@livewire('vuexy-website-admin::google-analytics-settings')
@livewire('vuexy-website-admin::google-analytics-card')
</div>
</div>
@endsection

View File

@ -0,0 +1,11 @@
@extends('vuexy-admin::layouts.vuexy.layoutMaster')
@section('title', 'Google Search Console')
@section('content')
<div class="row">
<div class="col-md-6">
@livewire('vuexy-website-admin::google-search-console-card')
</div>
</div>
@endsection

View File

@ -0,0 +1,11 @@
@extends('vuexy-admin::layouts.vuexy.layoutMaster')
@section('title', 'Google Tags')
@section('content')
<div class="row">
<div class="col-md-6">
@livewire('vuexy-website-admin::google-tags-card')
</div>
</div>
@endsection

View File

@ -0,0 +1,11 @@
@extends('vuexy-admin::layouts.vuexy.layoutMaster')
@section('title', 'Pixel Meta')
@section('content')
<div class="row">
<div class="col-md-6">
@livewire('vuexy-website-admin::pixel-meta-card')
</div>
</div>
@endsection

View File

@ -0,0 +1,31 @@
@extends('vuexy-admin::layouts.vuexy.layoutMaster')
@section('title', 'Artículos del Blog')
@section('vendor-style')
@vite([
'vendor/koneko/laravel-vuexy-admin/resources/assets/vendor/libs/select2/select2.scss',
'vendor/koneko/laravel-vuexy-admin/resources/assets/vendor/libs/bootstrap-table/bootstrap-table.scss',
'vendor/koneko/laravel-vuexy-admin/resources/assets/vendor/fonts/bootstrap-icons.scss',
])
@endsection
@section('vendor-script')
@vite([
'vendor/koneko/laravel-vuexy-admin/resources/assets/vendor/libs/select2/select2.js',
])
@endsection
@push('page-script')
@vite([
'vendor/koneko/laravel-vuexy-admin/resources/assets/js/bootstrap-table/bootstrapTableManager.js',
'vendor/koneko/laravel-vuexy-admin/resources/assets/js/forms/formConvasHelper.js',
])
@endpush
@section('content')
@livewire('vuexy-website-admin::blog-articles-table')
<?php /*
@livewire('vuexy-website-admin::blog-article-offcanvas-form')
*/ ?>
@endsection

View File

@ -0,0 +1,31 @@
@extends('vuexy-admin::layouts.vuexy.layoutMaster')
@section('title', 'Categorías del Blog')
@section('vendor-style')
@vite([
'vendor/koneko/laravel-vuexy-admin/resources/assets/vendor/libs/select2/select2.scss',
'vendor/koneko/laravel-vuexy-admin/resources/assets/vendor/libs/bootstrap-table/bootstrap-table.scss',
'vendor/koneko/laravel-vuexy-admin/resources/assets/vendor/fonts/bootstrap-icons.scss',
])
@endsection
@section('vendor-script')
@vite([
'vendor/koneko/laravel-vuexy-admin/resources/assets/vendor/libs/select2/select2.js',
])
@endsection
@push('page-script')
@vite([
'vendor/koneko/laravel-vuexy-admin/resources/assets/js/bootstrap-table/bootstrapTableManager.js',
'vendor/koneko/laravel-vuexy-admin/resources/assets/js/forms/formConvasHelper.js',
])
@endpush
@section('content')
@livewire('vuexy-website-admin::blog-categories-table')
<?php /*
@livewire('vuexy-website-admin::blog-category-offcanvas-form')
*/ ?>
@endsection

View File

@ -0,0 +1,31 @@
@extends('vuexy-admin::layouts.vuexy.layoutMaster')
@section('title', 'Comentarios del Blog')
@section('vendor-style')
@vite([
'vendor/koneko/laravel-vuexy-admin/resources/assets/vendor/libs/select2/select2.scss',
'vendor/koneko/laravel-vuexy-admin/resources/assets/vendor/libs/bootstrap-table/bootstrap-table.scss',
'vendor/koneko/laravel-vuexy-admin/resources/assets/vendor/fonts/bootstrap-icons.scss',
])
@endsection
@section('vendor-script')
@vite([
'vendor/koneko/laravel-vuexy-admin/resources/assets/vendor/libs/select2/select2.js',
])
@endsection
@push('page-script')
@vite([
'vendor/koneko/laravel-vuexy-admin/resources/assets/js/bootstrap-table/bootstrapTableManager.js',
'vendor/koneko/laravel-vuexy-admin/resources/assets/js/forms/formConvasHelper.js',
])
@endpush
@section('content')
@livewire('vuexy-website-admin::blog-comments-table')
<?php /*
@livewire('vuexy-website-admin::blog-comment-offcanvas-form')
*/ ?>
@endsection

View File

@ -0,0 +1,31 @@
@extends('vuexy-admin::layouts.vuexy.layoutMaster')
@section('title', 'Etiquetas del Blog')
@section('vendor-style')
@vite([
'vendor/koneko/laravel-vuexy-admin/resources/assets/vendor/libs/select2/select2.scss',
'vendor/koneko/laravel-vuexy-admin/resources/assets/vendor/libs/bootstrap-table/bootstrap-table.scss',
'vendor/koneko/laravel-vuexy-admin/resources/assets/vendor/fonts/bootstrap-icons.scss',
])
@endsection
@section('vendor-script')
@vite([
'vendor/koneko/laravel-vuexy-admin/resources/assets/vendor/libs/select2/select2.js',
])
@endsection
@push('page-script')
@vite([
'vendor/koneko/laravel-vuexy-admin/resources/assets/js/bootstrap-table/bootstrapTableManager.js',
'vendor/koneko/laravel-vuexy-admin/resources/assets/js/forms/formConvasHelper.js',
])
@endpush
@section('content')
@livewire('vuexy-website-admin::blog-tags-table')
<?php /*
@livewire('vuexy-website-admin::blog-tag-offcanvas-form')
*/ ?>
@endsection

View File

@ -0,0 +1,11 @@
@extends('vuexy-admin::layouts.vuexy.layoutMaster')
@section('title', 'Facebook Messenger')
@section('content')
<div class="row">
<div class="col-md-6">
@livewire('vuexy-website-admin::messenger-card')
</div>
</div>
@endsection

View File

@ -0,0 +1,11 @@
@extends('vuexy-admin::layouts.vuexy.layoutMaster')
@section('title', 'Tawk-to Chat')
@section('content')
<div class="row">
<div class="col-md-6">
@livewire('vuexy-website-admin::tawk-to-card')
</div>
</div>
@endsection

View File

@ -1,6 +1,6 @@
@extends('vuexy-admin::layouts.vuexy.layoutMaster')
@section('title', 'Redes Sociales')
@section('title', 'Twitter API')
@section('vendor-style')
@vite([
@ -17,9 +17,13 @@
@endsection
@push('page-script')
@vite('vendor/koneko/laravel-vuexy-website-admin/resources/js/website-settings-card.js')
@vite('vendor/koneko/laravel-vuexy-website-admin/resources/js/google-analytics-card-card.js')
@endpush
@section('content')
@livewire('vuexy-website-admin::social-media-settings')
<div class="row">
<div class="col-md-6">
@livewire('vuexy-website-admin::twitter-card')
</div>
</div>
@endsection

View File

@ -1,6 +1,6 @@
@extends('vuexy-admin::layouts.vuexy.layoutMaster')
@section('title', 'Chat')
@section('title', 'Whatsapp Chat')
@section('vendor-style')
@vite([
@ -23,7 +23,7 @@
@section('content')
<div class="row">
<div class="col-md-6">
@livewire('vuexy-website-admin::chat-settings')
@livewire('vuexy-website-admin::whatsapp-card')
</div>
</div>
@endsection

View File

@ -17,13 +17,13 @@
@endsection
@push('page-script')
@vite('vendor/koneko/laravel-vuexy-website-admin/resources/js/contact-form-settings-card.js')
@vite('vendor/koneko/laravel-vuexy-website-admin/resources/js/contact-form-card-card.js')
@endpush
@section('content')
<div class="row">
<div class="col-md-6">
@livewire('vuexy-website-admin::contact-form-settings')
@livewire('vuexy-website-admin::contact-form-card')
</div>
</div>
@endsection

View File

@ -17,16 +17,16 @@
@endsection
@push('page-script')
@vite('vendor/koneko/laravel-vuexy-website-admin/resources/js/contact-info-settings-card.js')
@vite('vendor/koneko/laravel-vuexy-website-admin/resources/js/contact-info-card-card.js')
@endpush
@section('content')
<div class="row">
<div class="col-md-6">
@livewire('vuexy-website-admin::contact-info-settings')
@livewire('vuexy-website-admin::contact-info-card')
</div>
<div class="col-md-6">
@livewire('vuexy-website-admin::location-settings')
@livewire('vuexy-website-admin::contact-location-card')
</div>
</div>
@endsection

View File

@ -7,5 +7,5 @@
@endpush
@section('content')
@livewire('vuexy-website-admin::images-index')
@livewire('vuexy-website-admin::gallery-index')
@endsection

View File

@ -3,5 +3,5 @@
@section('title', 'Avisos Legales')
@section('content')
@livewire('vuexy-website-admin::legal-notices-index')
@livewire('vuexy-website-admin::legal-index')
@endsection

View File

@ -20,9 +20,11 @@
@endsection
@section('page-script')
@vite('modules/Admin/Resources/js/website-settings/legal-settings-scripts.js')
@vite([
//'modules/Admin/Resources/js/website-settings/legal-settings-scripts.js'
])
@endsection
@section('content')
@livewire('website-legal-settings')
@livewire('legal-index')
@endsection

View File

@ -0,0 +1,72 @@
{{-- SEO HEAD - Generado automáticamente por SeoProfileService --}}
@php($_seo = $_seo ?? [])
{{-- Canonical + Fonts --}}
<link rel="canonical" href="{{ $_seo['canonical'] ?? url()->current() }}" />
<link rel="preconnect" href="https://fonts.googleapis.com" crossorigin>
<link rel="preload" as="style" href="https://fonts.googleapis.com/css2?family=Poppins&display=swap" />
{{-- Charset (el viewport va en layout, no en SEO) --}}
<meta charset="utf-8">
{{-- hreflang alternates (multi-language SEO) --}}
@foreach ($_seo['hreflangs'] ?? [] as $lang => $url)
<link rel="alternate" hreflang="{{ $lang }}" href="{{ $url }}" />
@endforeach
{{-- Título + SEO Meta --}}
<title>{{ $_seo['title'] ?? config('app.name') }}</title>
<meta name="description" content="{{ $_seo['description'] ?? '' }}">
<meta name="robots" content="{{ $_seo['robots'] ?? 'index, follow' }}">
<meta name="language" content="{{ $_seo['language'] ?? app()->getLocale() }}">
<meta name="author" content="{{ $_seo['author'] ?? 'Koneko Team' }}">
<meta name="keywords" content="{{ $_seo['keywords'] ?? '' }}">
<meta name="distribution" content="global">
<meta name="revisit-after" content="7 days">
<meta name="copyright" content="{{ $_seo['author'] ?? 'Koneko' }}">
{{-- CSRF (Laravel) --}}
<meta name="csrf-token" content="{{ csrf_token() }}">
{{-- OpenGraph --}}
<meta property="og:title" content="{{ $_seo['og:title'] ?? $_seo['title'] ?? '' }}">
<meta property="og:site_name" content="{{ $_seo['og:site_name'] ?? config('app.name') }}">
<meta property="og:url" content="{{ $_seo['og:url'] ?? url()->current() }}">
<meta property="og:description" content="{{ $_seo['og:description'] ?? $_seo['description'] ?? '' }}">
<meta property="og:type" content="{{ $_seo['og:type'] ?? 'website' }}">
<meta property="og:image" content="{{ $_seo['og:image'] ?? '' }}">
{{-- Twitter Card --}}
<meta name="twitter:card" content="{{ $_seo['twitter:card'] ?? 'summary_large_image' }}">
<meta name="twitter:title" content="{{ $_seo['twitter:title'] ?? $_seo['title'] ?? '' }}">
<meta name="twitter:description" content="{{ $_seo['twitter:description'] ?? $_seo['description'] ?? '' }}">
<meta name="twitter:image" content="{{ $_seo['twitter:image'] ?? $_seo['og:image'] ?? '' }}">
<meta name="twitter:site" content="{{ $_seo['twitter:site'] ?? '' }}">
<meta name="twitter:creator" content="{{ $_seo['twitter:creator'] ?? '' }}">
{{-- Favicons dinámicos --}}
@foreach ($_seo['favicon'] ?? [] as $size => $path)
@php($fullPath = Str::startsWith($path, ['http://', 'https://']) ? $path : asset('storage/' . $path))
@switch(true)
@case(Str::endsWith($path, '.svg'))
<link rel="icon" type="image/svg+xml" sizes="{{ $size }}" href="{{ $fullPath }}">
@break
@case(Str::endsWith($path, '.apng'))
<link rel="icon" type="image/apng" sizes="{{ $size }}" href="{{ $fullPath }}">
@break
@case(Str::startsWith($size, 'apple'))
<link rel="apple-touch-icon" sizes="{{ Str::after($size, 'apple-') }}" href="{{ $fullPath }}">
@break
@default
<link rel="icon" type="image/png" sizes="{{ $size }}" href="{{ $fullPath }}">
@endswitch
@endforeach
{{-- Web App Manifest --}}
<link rel="manifest" href="{{ $_seo['manifest'] ?? asset('site.webmanifest') }}">
<meta name="theme-color" content="{{ $_seo['theme-color'] ?? '#ffffff' }}">
{{-- JSON-LD Structured Data --}}
@if (!empty($_seo['ld+json']))
<script type="application/ld+json">@json($_seo['ld+json'])</script>
@endif

View File

@ -0,0 +1,34 @@
<div x-data="{ googleanalyticsEnabled: @entangle('google_analytics_enabled') }">
<x-vuexy-admin::form.form id="website-analytics-settings-card" class="form-custom-listener mb-4" whitOutId whitOutMode>
<x-vuexy-admin::card.basic title="Google Analytics" class="mb-2">
<div class="mb-6">
<a href="https://analytics.google.com/analytics/web/">https://analytics.google.com/analytics/web/</a>
</div>
<x-vuexy-admin::form.checkbox model="google_analytics_enabled" label="Habilitar Google Analytics" switch />
<x-vuexy-admin::form.input model="google_analytics_id" label="ID de medición de Google Analytics" icon="fab fa-google" placeholder="XX-12345678901" x-bind:disabled='!googleanalyticsEnabled' />
</x-vuexy-admin::card.basic>
<div class="row">
<div class="col-lg-12 text-end">
<x-vuexy-admin::button.basic
type="submit"
variant="primary"
size="sm"
icon="ti ti-device-floppy"
label="Guardar cambios"
disabled
class="btn-save mt-2 mr-2 waves-effect waves-light"
waves
data-loading-text="Guardando..." />
<x-vuexy-admin::button.basic
variant="secondary"
size="sm"
icon="ti ti-rotate-2"
label="Cancelar"
wire:click="resetForm"
class="btn-cancel mt-2 mr-2 waves-effect waves-light"
waves />
</div>
</div>
<div class="notification-container pt-4" wire:ignore></div>
</x-vuexy-admin::form.form>
</div>

View File

@ -0,0 +1,34 @@
<div x-data="{ googleanalyticsEnabled: @entangle('google_analytics_enabled') }">
<x-vuexy-admin::form.form id="website-analytics-settings-card" class="form-custom-listener mb-4" whitOutId whitOutMode>
<x-vuexy-admin::card.basic title="Google Analytics" class="mb-2">
<div class="mb-6">
<a href="https://analytics.google.com/analytics/web/">https://analytics.google.com/analytics/web/</a>
</div>
<x-vuexy-admin::form.checkbox model="google_analytics_enabled" label="Habilitar Google Analytics" switch />
<x-vuexy-admin::form.input model="google_analytics_id" label="ID de medición de Google Analytics" icon="fab fa-google" placeholder="XX-12345678901" x-bind:disabled='!googleanalyticsEnabled' />
</x-vuexy-admin::card.basic>
<div class="row">
<div class="col-lg-12 text-end">
<x-vuexy-admin::button.basic
type="submit"
variant="primary"
size="sm"
icon="ti ti-device-floppy"
label="Guardar cambios"
disabled
class="btn-save mt-2 mr-2 waves-effect waves-light"
waves
data-loading-text="Guardando..." />
<x-vuexy-admin::button.basic
variant="secondary"
size="sm"
icon="ti ti-rotate-2"
label="Cancelar"
wire:click="resetForm"
class="btn-cancel mt-2 mr-2 waves-effect waves-light"
waves />
</div>
</div>
<div class="notification-container pt-4" wire:ignore></div>
</x-vuexy-admin::form.form>
</div>

View File

@ -0,0 +1,34 @@
<div x-data="{ googleanalyticsEnabled: @entangle('google_analytics_enabled') }">
<x-vuexy-admin::form.form id="website-analytics-settings-card" class="form-custom-listener mb-4" whitOutId whitOutMode>
<x-vuexy-admin::card.basic title="Google Analytics" class="mb-2">
<div class="mb-6">
<a href="https://analytics.google.com/analytics/web/">https://analytics.google.com/analytics/web/</a>
</div>
<x-vuexy-admin::form.checkbox model="google_analytics_enabled" label="Habilitar Google Analytics" switch />
<x-vuexy-admin::form.input model="google_analytics_id" label="ID de medición de Google Analytics" icon="fab fa-google" placeholder="XX-12345678901" x-bind:disabled='!googleanalyticsEnabled' />
</x-vuexy-admin::card.basic>
<div class="row">
<div class="col-lg-12 text-end">
<x-vuexy-admin::button.basic
type="submit"
variant="primary"
size="sm"
icon="ti ti-device-floppy"
label="Guardar cambios"
disabled
class="btn-save mt-2 mr-2 waves-effect waves-light"
waves
data-loading-text="Guardando..." />
<x-vuexy-admin::button.basic
variant="secondary"
size="sm"
icon="ti ti-rotate-2"
label="Cancelar"
wire:click="resetForm"
class="btn-cancel mt-2 mr-2 waves-effect waves-light"
waves />
</div>
</div>
<div class="notification-container pt-4" wire:ignore></div>
</x-vuexy-admin::form.form>
</div>

View File

@ -0,0 +1,7 @@
<x-vuexy-admin::table.bootstrap.manager :tagName="$tagName" :datatableConfig="$bt_datatable">
<x-slot name="tools">
<div class="mb-4 pr-2">
<x-vuexy-admin::button.index-offcanvas :label="$singularName" :tagName="$tagName" />
</div>
</x-slot>
</x-vuexy-admin::table.bootstrap.manager>

View File

@ -0,0 +1,7 @@
<x-vuexy-admin::table.bootstrap.manager :tagName="$tagName" :datatableConfig="$bt_datatable">
<x-slot name="tools">
<div class="mb-4 pr-2">
<x-vuexy-admin::button.index-offcanvas :label="$singularName" :tagName="$tagName" />
</div>
</x-slot>
</x-vuexy-admin::table.bootstrap.manager>

View File

@ -0,0 +1,7 @@
<x-vuexy-admin::table.bootstrap.manager :tagName="$tagName" :datatableConfig="$bt_datatable">
<x-slot name="tools">
<div class="mb-4 pr-2">
<x-vuexy-admin::button.index-offcanvas :label="$singularName" :tagName="$tagName" />
</div>
</x-slot>
</x-vuexy-admin::table.bootstrap.manager>

View File

@ -0,0 +1,58 @@
<div x-data="{ chatProvider: @entangle('chat_provider') }">
<x-vuexy-admin::form.form id="website-chat-settings-card" class="form-custom-listener mb-4" whitOutId whitOutMode>
<x-vuexy-admin::card.basic title="Configuración del Chat" class="mb-2">
{{-- Proveedor --}}
<div class="mb-4 fv-row">
<label for="chat_provider" class="form-label">Proveedor</label>
<select id="chat_provider" name="chat_provider" x-model="chatProvider" wire:model="chat_provider" class="form-select">
<option value="">Deshabilitar Chat</option>
<option value="whatsapp">WhatsApp</option>
</select>
</div>
{{-- Configuración de WhatsApp --}}
<div x-show="chatProvider === 'whatsapp'" class="mt-5">
<h5>WhatsApp</h5>
<x-vuexy-admin::form.input
model="chat_whatsapp_number"
label="Número telefónico"
placeholder="Número telefónico"
required />
<x-vuexy-admin::form.input
model="chat_whatsapp_message"
label="Mensaje de saludo"
placeholder="Mensaje de saludo"
required />
</div>
</x-vuexy-admin::card.basic>
{{-- Botones de acción --}}
<div class="row">
<div class="col-lg-12 text-end">
<x-vuexy-admin::button.basic
type="submit"
variant="primary"
size="sm"
icon="ti ti-device-floppy"
label="Guardar cambios"
disabled
class="btn-save mt-2 mr-2"
waves
data-loading-text="Guardando..." />
<x-vuexy-admin::button.basic
variant="secondary"
size="sm"
icon="ti ti-rotate-2"
label="Cancelar"
wire:click="resetForm"
class="btn-cancel mt-2 mr-2"
waves />
</div>
</div>
{{-- Contenedor para notificaciones --}}
<div class="notification-container pt-4" wire:ignore></div>
</x-vuexy-admin::form.form>
</div>

View File

@ -0,0 +1,34 @@
<div x-data="{ googleanalyticsEnabled: @entangle('google_analytics_enabled') }">
<x-vuexy-admin::form.form id="website-analytics-settings-card" class="form-custom-listener mb-4" whitOutId whitOutMode>
<x-vuexy-admin::card.basic title="Google Analytics" class="mb-2">
<div class="mb-6">
<a href="https://analytics.google.com/analytics/web/">https://analytics.google.com/analytics/web/</a>
</div>
<x-vuexy-admin::form.checkbox model="google_analytics_enabled" label="Habilitar Google Analytics" switch />
<x-vuexy-admin::form.input model="google_analytics_id" label="ID de medición de Google Analytics" icon="fab fa-google" placeholder="XX-12345678901" x-bind:disabled='!googleanalyticsEnabled' />
</x-vuexy-admin::card.basic>
<div class="row">
<div class="col-lg-12 text-end">
<x-vuexy-admin::button.basic
type="submit"
variant="primary"
size="sm"
icon="ti ti-device-floppy"
label="Guardar cambios"
disabled
class="btn-save mt-2 mr-2 waves-effect waves-light"
waves
data-loading-text="Guardando..." />
<x-vuexy-admin::button.basic
variant="secondary"
size="sm"
icon="ti ti-rotate-2"
label="Cancelar"
wire:click="resetForm"
class="btn-cancel mt-2 mr-2 waves-effect waves-light"
waves />
</div>
</div>
<div class="notification-container pt-4" wire:ignore></div>
</x-vuexy-admin::form.form>
</div>

View File

@ -0,0 +1,58 @@
<div x-data="{ chatProvider: @entangle('chat_provider') }">
<x-vuexy-admin::form.form id="website-chat-settings-card" class="form-custom-listener mb-4" whitOutId whitOutMode>
<x-vuexy-admin::card.basic title="Configuración del Chat" class="mb-2">
{{-- Proveedor --}}
<div class="mb-4 fv-row">
<label for="chat_provider" class="form-label">Proveedor</label>
<select id="chat_provider" name="chat_provider" x-model="chatProvider" wire:model="chat_provider" class="form-select">
<option value="">Deshabilitar Chat</option>
<option value="whatsapp">WhatsApp</option>
</select>
</div>
{{-- Configuración de WhatsApp --}}
<div x-show="chatProvider === 'whatsapp'" class="mt-5">
<h5>WhatsApp</h5>
<x-vuexy-admin::form.input
model="chat_whatsapp_number"
label="Número telefónico"
placeholder="Número telefónico"
required />
<x-vuexy-admin::form.input
model="chat_whatsapp_message"
label="Mensaje de saludo"
placeholder="Mensaje de saludo"
required />
</div>
</x-vuexy-admin::card.basic>
{{-- Botones de acción --}}
<div class="row">
<div class="col-lg-12 text-end">
<x-vuexy-admin::button.basic
type="submit"
variant="primary"
size="sm"
icon="ti ti-device-floppy"
label="Guardar cambios"
disabled
class="btn-save mt-2 mr-2"
waves
data-loading-text="Guardando..." />
<x-vuexy-admin::button.basic
variant="secondary"
size="sm"
icon="ti ti-rotate-2"
label="Cancelar"
wire:click="resetForm"
class="btn-cancel mt-2 mr-2"
waves />
</div>
</div>
{{-- Contenedor para notificaciones --}}
<div class="notification-container pt-4" wire:ignore></div>
</x-vuexy-admin::form.form>
</div>

View File

@ -1,5 +1,5 @@
<div>
<x-vuexy-admin::form.form id="website-contact-form-settings-card" class="form-custom-listener mb-4" whitOutId whitOutMode>
<x-vuexy-admin::form.form id="website-contact-form-card-card" class="form-custom-listener mb-4" whitOutId whitOutMode>
<x-vuexy-admin::card.basic title="Configuración del Formulario" class="mb-2">
<x-vuexy-admin::form.input model="to_email" label="Correo principal" type="email" icon="ti ti-mail" placeholder="Email donde se enviarán los mensajes" required />
<x-vuexy-admin::form.input model="to_email_cc" label="Correo CC" type="email" icon="ti ti-mail-forward" placeholder="Email adicional para copia" helperText="Email adicional que recibirá una copia de los mensajes" />

View File

@ -1,5 +1,5 @@
<div>
<x-vuexy-admin::form.form id="website-contact-info-settings-card" class="form-custom-listener mb-4" whitOutId whitOutMode>
<x-vuexy-admin::form.form id="website-contact-info-card-card" class="form-custom-listener mb-4" whitOutId whitOutMode>
<x-vuexy-admin::card.basic title="Información de contacto" class="mb-2">
<div class="row">
<x-vuexy-admin::form.input model="phone_number" label="Número telefónico" icon="ti ti-phone" placeholder="Número telefónico" parentClass="col-md-8" />

View File

@ -1,5 +1,5 @@
<div>
<x-vuexy-admin::form.form id="website-location-settings-card" class="form-custom-listener mb-4" whitOutId whitOutMode>
<x-vuexy-admin::form.form id="website-location-card-card" class="form-custom-listener mb-4" whitOutId whitOutMode>
<x-vuexy-admin::card.basic title="Ubicación y Horarios" class="mb-2">
<x-vuexy-admin::form.input model="direccion" label="Dirección" icon="ti ti-map-pin" placeholder="Dirección" />
<div class="row">

View File

@ -0,0 +1,7 @@
<x-vuexy-admin::table.bootstrap.manager :tagName="$tagName" :datatableConfig="$bt_datatable">
<x-slot name="tools">
<div class="mb-4 pr-2">
<x-vuexy-admin::button.index-offcanvas :label="$singularName" :tagName="$tagName" />
</div>
</x-slot>
</x-vuexy-admin::table.bootstrap.manager>

View File

@ -0,0 +1,22 @@
<div>
<h2>Gestión del Sitemap</h2>
<input type="text" wire:model="newUrl" placeholder="Nueva URL">
<select wire:model="changefreq">
<option value="daily">Diario</option>
<option value="weekly">Semanal</option>
<option value="monthly">Mensual</option>
</select>
<input type="number" step="0.1" wire:model="priority" min="0.1" max="1.0">
<button wire:click="addUrl">Agregar</button>
<ul>
@foreach($urls as $url)
<li>{{ $url->url }} ({{ $url->changefreq }}, {{ $url->priority }})
<button wire:click="deleteUrl({{ $url->id }})"></button>
</li>
@endforeach
</ul>
<button wire:click="$emit('generateSitemap')">Regenerar Sitemap</button>
</div>

View File

@ -0,0 +1,22 @@
<div>
<h2>Gestión del Sitemap</h2>
<input type="text" wire:model="newUrl" placeholder="Nueva URL">
<select wire:model="changefreq">
<option value="daily">Diario</option>
<option value="weekly">Semanal</option>
<option value="monthly">Mensual</option>
</select>
<input type="number" step="0.1" wire:model="priority" min="0.1" max="1.0">
<button wire:click="addUrl">Agregar</button>
<ul>
@foreach($urls as $url)
<li>{{ $url->url }} ({{ $url->changefreq }}, {{ $url->priority }})
<button wire:click="deleteUrl({{ $url->id }})"></button>
</li>
@endforeach
</ul>
<button wire:click="$emit('generateSitemap')">Regenerar Sitemap</button>
</div>

View File

@ -0,0 +1,22 @@
<div>
<h2>Gestión del Sitemap</h2>
<input type="text" wire:model="newUrl" placeholder="Nueva URL">
<select wire:model="changefreq">
<option value="daily">Diario</option>
<option value="weekly">Semanal</option>
<option value="monthly">Mensual</option>
</select>
<input type="number" step="0.1" wire:model="priority" min="0.1" max="1.0">
<button wire:click="addUrl">Agregar</button>
<ul>
@foreach($urls as $url)
<li>{{ $url->url }} ({{ $url->changefreq }}, {{ $url->priority }})
<button wire:click="deleteUrl({{ $url->id }})"></button>
</li>
@endforeach
</ul>
<button wire:click="$emit('generateSitemap')">Regenerar Sitemap</button>
</div>

View File

@ -0,0 +1,39 @@
<div>
<x-vuexy-admin::offcanvas.basic :id="$offcanvasId" :tag-name="$tagName">
<x-vuexy-admin::form :uid="$uniqueId" :id="$formId" :mode="$mode" wireSubmit="onSubmit">
<x-slot name="actions">
<x-vuexy-admin::button.offcanvas-buttons :mode="$mode" :tagName="$tagName" />
</x-slot>
{{-- Usuario --}}
<x-vuexy-admin::form.input :uid="$uniqueId" model="name" label="Nombre(s)" />
<x-vuexy-admin::form.input :uid="$uniqueId" model="last_name" label="Apellidos" />
{{-- Correos electrónicos --}}
<x-vuexy-admin::form.input type="email" :uid="$uniqueId" model="email" label="Correo electrónico" icon="ti ti-mail" autocomplete="email" inputmode="email" />
{{-- Contraseña --}}
<x-vuexy-admin::form.input type="password" :uid="$uniqueId" model="password" label="Contraseña" icon="ti ti-lock" autocomplete="new-password" />
<hr>
</x-vuexy-admin::form>
</x-vuexy-admin::offcanvas.basic>
</div>
@push('page-script')
<script>
// Evento para inicializar el formulario cuando se carga la página
document.addEventListener("DOMContentLoaded", function () {
const initializeUserForm = () => {
};
var myOffcanvas = document.getElementById('{{ $offcanvasId }}');
myOffcanvas.addEventListener('show.bs.offcanvas', function () {
initializeUserForm();
});
});
</script>
@endpush

View File

@ -0,0 +1,22 @@
<div>
<h2>Gestión del Sitemap</h2>
<input type="text" wire:model="newUrl" placeholder="Nueva URL">
<select wire:model="changefreq">
<option value="daily">Diario</option>
<option value="weekly">Semanal</option>
<option value="monthly">Mensual</option>
</select>
<input type="number" step="0.1" wire:model="priority" min="0.1" max="1.0">
<button wire:click="addUrl">Agregar</button>
<ul>
@foreach($urls as $url)
<li>{{ $url->url }} ({{ $url->changefreq }}, {{ $url->priority }})
<button wire:click="deleteUrl({{ $url->id }})"></button>
</li>
@endforeach
</ul>
<button wire:click="$emit('generateSitemap')">Regenerar Sitemap</button>
</div>

View File

@ -0,0 +1,22 @@
<div>
<h2>Gestión del Sitemap</h2>
<input type="text" wire:model="newUrl" placeholder="Nueva URL">
<select wire:model="changefreq">
<option value="daily">Diario</option>
<option value="weekly">Semanal</option>
<option value="monthly">Mensual</option>
</select>
<input type="number" step="0.1" wire:model="priority" min="0.1" max="1.0">
<button wire:click="addUrl">Agregar</button>
<ul>
@foreach($urls as $url)
<li>{{ $url->url }} ({{ $url->changefreq }}, {{ $url->priority }})
<button wire:click="deleteUrl({{ $url->id }})"></button>
</li>
@endforeach
</ul>
<button wire:click="$emit('generateSitemap')">Regenerar Sitemap</button>
</div>

View File

@ -1,5 +1,5 @@
<div>
<div id="logo-on-dark-bg-settings-card" class="mb-4">
<div id="logo-on-dark-bg-card-card" class="mb-4">
<x-vuexy-admin::card.basic title="Logotipo sobre fondo oscuro" class="mb-2">
<x-vuexy-admin::form.input
type="file"

View File

@ -1,5 +1,5 @@
<div>
<div id="logo-on-light-bg-settings-card" class="mb-4">
<div id="logo-on-light-bg-card-card" class="mb-4">
<x-vuexy-admin::card.basic title="Logotipo sobre fondo claro" class="mb-2">
<x-vuexy-admin::form.input
type="file"

View File

@ -1,8 +1,7 @@
<div>
<div id="website-description-settings-card" class="form-custom-listener mb-4">
<div id="website-description-card-card" class="form-custom-listener mb-4">
<x-vuexy-admin::card.basic title="Datos de la aplicación" class="mb-2">
<x-vuexy-admin::form.input model="title" label="Titulo del sitio web" />
<x-vuexy-admin::form.textarea model="description" label="Descripción del sitio web" />
</x-vuexy-admin::card.basic>
<div class="row">
<div class="col-lg-12 text-end">

View File

@ -1,5 +1,5 @@
<div>
<div id="website-favicon-settings-card" class="mb-4">
<div id="website-favicon-card-card" class="mb-4">
<x-vuexy-admin::card.basic title="Favicon" class="mb-2">
<x-vuexy-admin::form.input
type="file"

View File

@ -0,0 +1,4 @@
<div>
<h2>Visibilidad en buscadores</h2>
</div>

View File

@ -0,0 +1,58 @@
<div x-data="{ chatProvider: @entangle('chat_provider') }">
<x-vuexy-admin::form.form id="website-chat-settings-card" class="form-custom-listener mb-4" whitOutId whitOutMode>
<x-vuexy-admin::card.basic title="Configuración del Chat" class="mb-2">
{{-- Proveedor --}}
<div class="mb-4 fv-row">
<label for="chat_provider" class="form-label">Proveedor</label>
<select id="chat_provider" name="chat_provider" x-model="chatProvider" wire:model="chat_provider" class="form-select">
<option value="">Deshabilitar Chat</option>
<option value="whatsapp">WhatsApp</option>
</select>
</div>
{{-- Configuración de WhatsApp --}}
<div x-show="chatProvider === 'whatsapp'" class="mt-5">
<h5>WhatsApp</h5>
<x-vuexy-admin::form.input
model="chat_whatsapp_number"
label="Número telefónico"
placeholder="Número telefónico"
required />
<x-vuexy-admin::form.input
model="chat_whatsapp_message"
label="Mensaje de saludo"
placeholder="Mensaje de saludo"
required />
</div>
</x-vuexy-admin::card.basic>
{{-- Botones de acción --}}
<div class="row">
<div class="col-lg-12 text-end">
<x-vuexy-admin::button.basic
type="submit"
variant="primary"
size="sm"
icon="ti ti-device-floppy"
label="Guardar cambios"
disabled
class="btn-save mt-2 mr-2"
waves
data-loading-text="Guardando..." />
<x-vuexy-admin::button.basic
variant="secondary"
size="sm"
icon="ti ti-rotate-2"
label="Cancelar"
wire:click="resetForm"
class="btn-cancel mt-2 mr-2"
waves />
</div>
</div>
{{-- Contenedor para notificaciones --}}
<div class="notification-container pt-4" wire:ignore></div>
</x-vuexy-admin::form.form>
</div>

View File

@ -0,0 +1,7 @@
@extends('vuexy-admin::layouts.vuexy.layoutMaster')
@section('title', 'Canonical URLs')
@section('content')
@livewire('vuexy-website-admin::canonical-index')
@endsection

View File

@ -0,0 +1,7 @@
@extends('vuexy-admin::layouts.vuexy.layoutMaster')
@section('title', 'Google JSON-LD')
@section('content')
@livewire('vuexy-website-admin::jsonld-index')
@endsection

View File

@ -0,0 +1,7 @@
@extends('vuexy-admin::layouts.vuexy.layoutMaster')
@section('title', 'manifest.js')
@section('content')
@livewire('vuexy-website-admin::manifest-card')
@endsection

View File

@ -0,0 +1,7 @@
@extends('vuexy-admin::layouts.vuexy.layoutMaster')
@section('title', 'Robots.txt')
@section('content')
@livewire('vuexy-website-admin::robots-card')
@endsection

View File

@ -3,5 +3,5 @@
@section('title', 'Mapa del Sitio')
@section('content')
@livewire('vuexy-website-admin::sitemap-manager-index')
@livewire('vuexy-website-admin::sitemap-index')
@endsection

View File

@ -0,0 +1,7 @@
@extends('vuexy-admin::layouts.vuexy.layoutMaster')
@section('title', 'Preview Social Cards')
@section('content')
@livewire('vuexy-website-admin::social-cards-index')
@endsection

View File

@ -9,12 +9,12 @@
@section('content')
<div class="row">
<div class="col-lg-5">
@livewire('vuexy-website-admin::website-description-settings')
@livewire('vuexy-website-admin::website-favicon-settings')
@livewire('vuexy-website-admin::website-description-card')
@livewire('vuexy-website-admin::website-favicon-card')
</div>
<div class="col-lg-4">
@livewire('vuexy-website-admin::logo-on-light-bg-settings')
@livewire('vuexy-website-admin::logo-on-dark-bg-settings')
@livewire('vuexy-website-admin::logo-on-light-bg-card')
@livewire('vuexy-website-admin::logo-on-dark-bg-card')
</div>
</div>
@endsection

View File

@ -0,0 +1,11 @@
@extends('vuexy-admin::layouts.vuexy.layoutMaster')
@section('title', 'Indexación')
@section('content')
<div class="row">
<div class="col-lg-5">
@livewire('vuexy-website-admin::indexing-card')
</div>
</div>
@endsection

View File

@ -0,0 +1,27 @@
@extends('vuexy-admin::layouts.vuexy.layoutMaster')
@section('title', 'Enlaces de redes sociales')
@section('vendor-style')
@vite([
'vendor/koneko/laravel-vuexy-admin/resources/assets/vendor/libs/@form-validation/form-validation.scss'
])
@endsection
@section('vendor-script')
@vite([
'vendor/koneko/laravel-vuexy-admin/resources/assets/vendor/libs/@form-validation/popular.js',
'vendor/koneko/laravel-vuexy-admin/resources/assets/vendor/libs/@form-validation/bootstrap5.js',
'vendor/koneko/laravel-vuexy-admin/resources/assets/vendor/libs/@form-validation/auto-focus.js',
])
@endsection
@push('page-script')
@vite([
//'vendor/koneko/laravel-vuexy-website-admin/resources/js/website-settings-card.js'
])
@endpush
@section('content')
@livewire('vuexy-website-admin::social-card')
@endsection

View File

@ -0,0 +1,11 @@
@extends('vuexy-admin::layouts.vuexy.layoutMaster')
@section('title', 'Google Translate')
@section('content')
<div class="row">
<div class="col-lg-5">
@livewire('vuexy-website-admin::google-tanslate-card')
</div>
</div>
@endsection

View File

@ -0,0 +1,540 @@
@extends('porto::layouts.master')
@section('vendor-style')
<!-- Web Fonts -->
<link id="googleFonts" href="https://fonts.googleapis.com/css?family=Poppins:300,400,500,600,700,800%7CShadows+Into+Light&display=swap" rel="stylesheet" type="text/css">
@vite('vendor/koneko/laravel-vuexy-website-layout-porto/resources/assets/css/skins/default.css')
@endsection
@section('content')
@if(request()->is('preview/*'))
<div class="alert alert-warning shadow mb-3">
Estás visualizando una vista previa de contenido no publicado.
</div>
@endif
<x-porto::header.menu menuSlug="main-header" />
<div class="owl-carousel owl-carousel-light owl-carousel-light-init-fadeIn owl-theme manual dots-inside dots-horizontal-center show-dots-hover nav-inside nav-inside-plus nav-dark nav-md nav-font-size-md show-nav-hover mb-0" data-plugin-options="{'autoplayTimeout': 7000}" data-dynamic-height="['670px','670px','670px','550px','500px']" style="height: 670px;">
<div class="owl-stage-outer">
<div class="owl-stage">
<!-- Carousel Slide 1 -->
<div class="owl-item position-relative" style="background-image: url(img/slides/slide-bg-performance.jpg); background-color: #2E3136; background-size: cover; background-position: center;">
<div class="container position-relative z-index-1 h-100">
<div class="d-flex flex-column align-items-center justify-content-center h-100">
<h3 class="position-relative text-color-light text-5 line-height-5 font-weight-medium px-4 mb-2 appear-animation" data-appear-animation="fadeInDownShorter" data-plugin-options="{'minWindowWidth': 0}">
<span class="position-absolute right-100pct top-50pct transform3dy-n50 opacity-3">
<img src="img/slides/slide-title-border.png" class="w-auto appear-animation" data-appear-animation="fadeInLeftShorter" data-appear-animation-delay="250" data-plugin-options="{'minWindowWidth': 0}" alt="" />
</span>
DO YOU NEED A <span class="position-relative">NEW <span class="position-absolute left-50pct transform3dx-n50 top-0 mt-4"><img src="img/slides/slide-blue-line.png" class="w-auto appear-animation" data-appear-animation="fadeInLeftShorterPlus" data-appear-animation-delay="1000" data-plugin-options="{'minWindowWidth': 0}" alt="" /></span></span>
<span class="position-absolute left-100pct top-50pct transform3dy-n50 opacity-3">
<img src="img/slides/slide-title-border.png" class="w-auto appear-animation" data-appear-animation="fadeInRightShorter" data-appear-animation-delay="250" data-plugin-options="{'minWindowWidth': 0}" alt="" />
</span>
</h3>
<h1 class="text-color-light font-weight-extra-bold text-12 mb-3 appear-animation" data-appear-animation="blurIn" data-appear-animation-delay="500" data-plugin-options="{'minWindowWidth': 0}">WEB DESIGN?</h1>
<p class="text-4 text-color-light font-weight-light opacity-7 mb-0" data-plugin-animated-letters data-plugin-options="{'startDelay': 1000, 'minWindowWidth': 0}">Check out our options and features</p>
</div>
</div>
</div>
<!-- Carousel Slide 2 -->
<div class="owl-item position-relative overlay overlay-show overlay-op-8 lazyload" data-bg-src="img/slides/slide-bg-2.jpg" style="background-size: cover; background-position: center;">
<div class="container position-relative z-index-3 h-100">
<div class="row justify-content-center align-items-center h-100">
<div class="col-lg-6">
<div class="d-flex flex-column align-items-center">
<h3 class="position-relative text-color-light text-5 line-height-5 font-weight-medium px-4 mb-2 appear-animation" data-appear-animation="fadeInDownShorter" data-plugin-options="{'minWindowWidth': 0}">
<span class="position-absolute right-100pct top-50pct transform3dy-n50 opacity-3">
<img loading="lazy" src="img/slides/slide-title-border.png" class="w-auto appear-animation" data-appear-animation="fadeInLeftShorter" data-appear-animation-delay="250" data-plugin-options="{'imgFluid': false, 'minWindowWidth': 0}" alt="" />
</span>
WE WORK HARD AND PORTO HAS
<span class="position-absolute left-100pct top-50pct transform3dy-n50 opacity-3">
<img loading="lazy" src="img/slides/slide-title-border.png" class="w-auto appear-animation" data-appear-animation="fadeInRightShorter" data-appear-animation-delay="250" data-plugin-options="{'imgFluid': false, 'minWindowWidth': 0}" alt="" />
</span>
</h3>
<h2 class="text-color-light font-weight-extra-bold text-12 mb-3 appear-animation" data-appear-animation="blurIn" data-appear-animation-delay="500" data-plugin-options="{'minWindowWidth': 0}">THE BEST DESIGN</h2>
<p class="text-4 text-color-light font-weight-light opacity-7 text-center mb-0" data-plugin-animated-letters data-plugin-options="{'startDelay': 1000, 'minWindowWidth': 0, 'animationSpeed': 30}">Trusted by over <strong class="text-color-light">40,000</strong> satisfied users, Porto is a huge success in the one of largest world's MarketPlace</p>
</div>
</div>
</div>
</div>
</div>
<!-- Carousel Slide 3 -->
<div class="owl-item position-relative overlay overlay-color-primary overlay-show overlay-op-8 lazyload" data-bg-src="img/slides/slide-bg-6.jpg" style="background-size: cover; background-position: center;">
<div class="container position-relative z-index-3 h-100">
<div class="row justify-content-center align-items-center h-100">
<div class="col-lg-6">
<div class="d-flex flex-column align-items-center">
<h3 class="position-relative text-color-light text-4 line-height-5 font-weight-medium px-4 mb-2 appear-animation" data-appear-animation="fadeInDownShorter" data-plugin-options="{'minWindowWidth': 0}">
<span class="position-absolute right-100pct top-50pct transform3dy-n50 opacity-3">
<img loading="lazy" src="img/slides/slide-title-border.png" class="w-auto appear-animation" data-appear-animation="fadeInLeftShorter" data-appear-animation-delay="250" data-plugin-options="{'imgFluid': false, 'minWindowWidth': 0}" alt="" />
</span>
WE CREATE DESIGNS, WE ARE
<span class="position-absolute left-100pct top-50pct transform3dy-n50 opacity-3">
<img loading="lazy" src="img/slides/slide-title-border.png" class="w-auto appear-animation" data-appear-animation="fadeInRightShorter" data-appear-animation-delay="250" data-plugin-options="{'imgFluid': false, 'minWindowWidth': 0}" alt="" />
</span>
</h3>
<h2 class="porto-big-title text-color-light font-weight-extra-bold mb-3" data-plugin-animated-letters data-plugin-options="{'startDelay': 1000, 'minWindowWidth': 0, 'animationSpeed': 300, 'animationName': 'fadeInRightShorterOpacity', 'letterClass': 'd-inline-block'}">PORTO</h2>
<p class="text-4 text-color-light font-weight-light text-center mb-0" data-plugin-animated-letters data-plugin-options="{'startDelay': 2000, 'minWindowWidth': 0}">The best choice for your new website</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<
div class="owl-nav">
<button type="button" role="presentation" class="owl-prev" aria-label="Previous"></button>
<button type="button" role="presentation" class="owl-next" aria-label="Next"></button>
</>
<div class="owl-dots mb-5">
<button role="button" class="owl-dot active"><span></span></button>
<button role="button" class="owl-dot"><span></span></button>
<button role="button" class="owl-dot"><span></span></button>
</div>
</div>
<div class="home-intro bg-primary" id="home-intro">
<div class="container">
<div class="row align-items-center">
<div class="col-lg-8">
<p>
The fastest way to grow your business with the leader in <span class="highlighted-word">Technology</span>
<span>Check out our options and features included.</span>
</p>
</div>
<div class="col-lg-4">
<div class="get-started text-start text-lg-end">
<a href="#" class="btn btn-dark btn-lg text-3 font-weight-semibold px-4 py-3">Get Started Now</a>
<div class="learn-more">or <a href="index.html">learn more.</a></div>
</div>
</div>
</div>
</div>
</div>
<div class="container">
<div class="row text-center pt-3">
<div class="col-md-10 mx-md-auto">
<h1 class="word-rotator slide font-weight-bold text-8 mb-3 appear-animation" data-appear-animation="fadeInUpShorter">
<span>Porto is </span>
<span class="word-rotator-words bg-dark">
<b class="is-visible">incredibly</b>
<b>especially</b>
<b>extremely</b>
</span>
<span> beautiful and fully responsive.</span>
</h1>
<p class="lead appear-animation" data-appear-animation="fadeInUpShorter" data-appear-animation-delay="300">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce elementum, nulla vel pellentesque consequat, ante nulla hendrerit arcu, ac tincidunt mauris lacus sed leo.
</p>
</div>
</div>
</div>
<div class="appear-animation" data-appear-animation="fadeInUpShorter" data-appear-animation-delay="200">
<div class="home-concept mt-5">
<div class="container">
<div class="row text-center">
<span class="sun"></span>
<span class="cloud"></span>
<div class="col-lg-2 ms-lg-auto">
<div class="process-image">
<img src="img/home/home-concept-item-1.png" alt="" />
<strong>Strategy</strong>
</div>
</div>
<div class="col-lg-2">
<div class="process-image process-image-on-middle">
<img src="img/home/home-concept-item-2.png" alt="" />
<strong>Planning</strong>
</div>
</div>
<div class="col-lg-2">
<div class="process-image">
<img src="img/home/home-concept-item-3.png" alt="" />
<strong>Build</strong>
</div>
</div>
<div class="col-lg-4 ms-lg-auto">
<div class="project-image">
<div id="fcSlideshow" class="fc-slideshow">
<ul class="fc-slides">
<li><a href="portfolio-single-wide-slider.html" aria-label=""><img class="img-fluid" src="img/projects/project-home-1.jpg" alt="" /></a></li>
<li><a href="portfolio-single-wide-slider.html" aria-label=""><img class="img-fluid" src="img/projects/project-home-2.jpg" alt="" /></a></li>
<li><a href="portfolio-single-wide-slider.html" aria-label=""><img class="img-fluid" src="img/projects/project-home-3.jpg" alt="" /></a></li>
</ul>
</div>
<strong class="our-work">Our Work</strong>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="container mb-5 pb-4">
<div class="row">
<div class="col mb-4">
<hr class="my-5">
</div>
</div>
<div class="row pb-3">
<div class="col-lg-8">
<h2 class="font-weight-normal text-7">Our <strong class="font-weight-extra-bold">Features</strong></h2>
<div class="row">
<div class="col-sm-6">
<div class="feature-box feature-box-style-2">
<div class="feature-box-icon">
<i class="icons icon-support text-color-primary"></i>
</div>
<div class="feature-box-info">
<h4 class="font-weight-bold text-4-5 mb-1">Customer Support</h4>
<p class="mb-4">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus blandit massa</p>
</div>
</div>
<div class="feature-box feature-box-style-2">
<div class="feature-box-icon">
<i class="icons icon-doc text-color-primary"></i>
</div>
<div class="feature-box-info">
<h4 class="font-weight-bold text-4-5 mb-1">HTML5 / CSS3 / JS</h4>
<p class="mb-4">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus blandit massa</p>
</div>
</div>
<div class="feature-box feature-box-style-2">
<div class="feature-box-icon">
<i class="icons icon-social-google text-color-primary"></i>
</div>
<div class="feature-box-info">
<h4 class="font-weight-bold text-4-5 mb-1">500+ Google Fonts</h4>
<p class="mb-4">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus blandit massa</p>
</div>
</div>
<div class="feature-box feature-box-style-2">
<div class="feature-box-icon">
<i class="icons icon-pencil text-color-primary"></i>
</div>
<div class="feature-box-info">
<h4 class="font-weight-bold text-4-5 mb-1">Colors</h4>
<p class="mb-4">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus blandit massa</p>
</div>
</div>
</div>
<div class="col-sm-6">
<div class="feature-box feature-box-style-2">
<div class="feature-box-icon">
<i class="icons icon-layers text-color-primary"></i>
</div>
<div class="feature-box-info">
<h4 class="font-weight-bold text-4-5 mb-1">Sliders</h4>
<p class="mb-4">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus blandit massa</p>
</div>
</div>
<div class="feature-box feature-box-style-2">
<div class="feature-box-icon">
<i class="icons icon-user text-color-primary"></i>
</div>
<div class="feature-box-info">
<h4 class="font-weight-bold text-4-5 mb-1">Icons</h4>
<p class="mb-4">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus blandit massa</p>
</div>
</div>
<div class="feature-box feature-box-style-2">
<div class="feature-box-icon">
<i class="icons icon-menu text-color-primary"></i>
</div>
<div class="feature-box-info">
<h4 class="font-weight-bold text-4-5 mb-1">Buttons</h4>
<p class="mb-4">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus blandit massa</p>
</div>
</div>
<div class="feature-box feature-box-style-2">
<div class="feature-box-icon">
<i class="icons icon-screen-desktop text-color-primary"></i>
</div>
<div class="feature-box-info">
<h4 class="font-weight-bold text-4-5 mb-1">Lightbox</h4>
<p class="mb-4">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus blandit massa</p>
</div>
</div>
</div>
</div>
</div>
<div class="col-lg-4">
<h2 class="font-weight-normal text-6">and more...</h2>
<div class="accordion accordion-modern" id="accordion">
<div class="card card-default">
<div class="card-header">
<h4 class="card-title m-0">
<a class="accordion-toggle text-color-dark font-weight-bold" data-bs-toggle="collapse" data-bs-parent="#accordion" href="#collapseOne">
<i class="icons icon-diamond text-color-primary"></i>
Creative Websites
</a>
</h4>
</div>
<div id="collapseOne" class="collapse show">
<div class="card-body text-2">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus blanorem ipsum dolor sit amet, consecte.</p>
<p class="mb-0">Adipiscing elit phasellus blanit ma... <a href="#" class="d-block text-color-dark font-weight-semibold pt-4">read more <i class="fas fa-angle-right position-relative top-1 ms-1"></i></a></p>
</div>
</div>
</div>
<div class="card card-default">
<div class="card-header">
<h4 class="card-title m-0">
<a class="accordion-toggle text-color-dark font-weight-bold" data-bs-toggle="collapse" data-bs-parent="#accordion" href="#collapseTwo">
<i class="icons icon-bubble text-color-primary"></i>
Contact Forms
</a>
</h4>
</div>
<div id="collapseTwo" class="collapse">
<div class="card-body text-2">
<p class="mb-0">Donec tellus massa, tristique sit amet condimentum vel, facilisis quis sapien.</p>
</div>
</div>
</div>
<div class="card card-default">
<div class="card-header">
<h4 class="card-title m-0">
<a class="accordion-toggle text-color-dark font-weight-bold" data-bs-toggle="collapse" data-bs-parent="#accordion" href="#collapseThree">
<i class="icons icon-grid text-color-primary"></i>
Portfolio Pages
</a>
</h4>
</div>
<div id="collapseThree" class="collapse">
<div class="card-body text-2">
<p class="mb-0">Donec tellus massa, tristique sit amet condimentum vel, facilisis quis sapien.</p>
</div>
</div>
</div>
</div>
</div>
</div>
<hr class="solid my-5">
<div class="row text-center pt-4">
<div class="col">
<h2 class="word-rotator slide font-weight-bold text-8 mb-2">
<span>We're not the only ones </span>
<span class="word-rotator-words bg-primary">
<b class="is-visible">excited</b>
<b>happy</b>
</span>
<span> about Porto Template...</span>
</h2>
<h4 class="text-primary lead tall text-4">50,000 CUSTOMERS IN 100 COUNTRIES USE PORTO TEMPLATE. MEET OUR CUSTOMERS.</h4>
</div>
</div>
<div class="row text-center mt-5">
<div class="owl-carousel owl-theme carousel-center-active-item" data-plugin-options="{'responsive': {'0': {'items': 1}, '476': {'items': 1}, '768': {'items': 5}, '992': {'items': 7}, '1200': {'items': 7}}, 'autoplay': true, 'autoplayTimeout': 3000, 'dots': false}">
<div>
<img class="img-fluid" src="img/logos/logo-1.png" alt="">
</div>
<div>
<img class="img-fluid" src="img/logos/logo-2.png" alt="">
</div>
<div>
<img class="img-fluid" src="img/logos/logo-3.png" alt="">
</div>
<div>
<img class="img-fluid" src="img/logos/logo-4.png" alt="">
</div>
<div>
<img class="img-fluid" src="img/logos/logo-5.png" alt="">
</div>
<div>
<img class="img-fluid" src="img/logos/logo-6.png" alt="">
</div>
<div>
<img class="img-fluid" src="img/logos/logo-4.png" alt="">
</div>
<div>
<img class="img-fluid" src="img/logos/logo-2.png" alt="">
</div>
</div>
</div>
</div>
<section class="section section-custom-map appear-animation lazyload" data-appear-animation="fadeInUpShorter" data-bg-src="img/map.png" style="background-color: transparent; background-position: center 0; background-repeat: no-repeat;">
<section class="section section-default section-footer">
<div class="container">
<div class="row mt-5 appear-animation" data-appear-animation="fadeInUpShorter">
<div class="col-lg-6">
<div class="recent-posts mb-5">
<h2 class="font-weight-normal text-6 mb-4"><strong class="font-weight-extra-bold">Latest</strong> Posts</h2>
<div class="owl-carousel owl-theme dots-title mb-0" data-plugin-options="{'items': 1, 'autoHeight': true, 'autoplay': true, 'autoplayTimeout': 8000}">
<div class="row">
<div class="col-lg-6 mb-4 mb-lg-0">
<article>
<div class="row">
<div class="col-auto pe-0">
<div class="date">
<span class="day font-weight-extra-bold">15</span>
<span class="month text-1">JAN</span>
</div>
</div>
<div class="col ps-1">
<h4 class="text-primary text-4"><a class="d-block" href="blog-post.html">Lorem ipsum dolor sit amet, consectetur</a></h4>
<p class="pe-4 mb-0">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<a href="/" class="read-more text-color-dark font-weight-semibold text-2">read more <i class="fas fa-angle-right position-relative top-1 ms-1"></i></a>
</div>
</div>
</article>
</div>
<div class="col-lg-6">
<article>
<div class="row">
<div class="col-auto pe-0">
<div class="date">
<span class="day font-weight-extra-bold">14</span>
<span class="month text-1">JAN</span>
</div>
</div>
<div class="col ps-1">
<h4 class="text-primary text-4"><a class="d-block" href="blog-post.html">Lorem ipsum dolor sit amet, consectetur</a></h4>
<p class="pe-4 mb-0">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<a href="/" class="read-more text-color-dark font-weight-semibold text-2">read more <i class="fas fa-angle-right position-relative top-1 ms-1"></i></a>
</div>
</div>
</article>
</div>
</div>
<div class="row">
<div class="col-lg-6 mb-4 mb-lg-0">
<article>
<div class="row">
<div class="col-auto pe-0">
<div class="date">
<span class="day font-weight-extra-bold">13</span>
<span class="month text-1">JAN</span>
</div>
</div>
<div class="col ps-1">
<h4 class="text-primary text-4"><a class="d-block" href="blog-post.html">Lorem ipsum dolor sit amet, consectetur</a></h4>
<p class="pe-4 mb-0">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<a href="/" class="read-more text-color-dark font-weight-semibold text-2">read more <i class="fas fa-angle-right position-relative top-1 ms-1"></i></a>
</div>
</div>
</article>
</div>
<div class="col-lg-6">
<article>
<div class="row">
<div class="col-auto pe-0">
<div class="date">
<span class="day font-weight-extra-bold">12</span>
<span class="month text-1">JAN</span>
</div>
</div>
<div class="col ps-1">
<h4 class="text-primary text-4"><a class="d-block" href="blog-post.html">Lorem ipsum dolor sit amet, consectetur</a></h4>
<p class="pe-4 mb-0">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<a href="/" class="read-more text-color-dark font-weight-semibold text-2">read more <i class="fas fa-angle-right position-relative top-1 ms-1"></i></a>
</div>
</div>
</article>
</div>
</div>
<div class="row">
<div class="col-lg-6 mb-4 mb-lg-0">
<article>
<div class="row">
<div class="col-auto pe-0">
<div class="date">
<span class="day font-weight-extra-bold">11</span>
<span class="month text-1">JAN</span>
</div>
</div>
<div class="col ps-1">
<h4 class="text-primary text-4"><a href="blog-post.html">Lorem ipsum dolor sit amet, consectetur</a></h4>
<p class="pe-4 mb-0">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<a href="/" class="read-more text-color-dark font-weight-semibold text-2">read more <i class="fas fa-angle-right position-relative top-1 ms-1"></i></a>
</div>
</div>
</article>
</div>
<div class="col-lg-6">
<article>
<div class="row">
<div class="col-auto pe-0">
<div class="date">
<span class="day font-weight-extra-bold">10</span>
<span class="month text-1">JAN</span>
</div>
</div>
<div class="col ps-1">
<h4 class="text-primary text-4"><a href="blog-post.html">Lorem ipsum dolor sit amet, consectetur</a></h4>
<p class="pe-4 mb-0">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<a href="/" class="read-more text-color-dark font-weight-semibold text-2">read more <i class="fas fa-angle-right position-relative top-1 ms-1"></i></a>
</div>
</div>
</article>
</div>
</div>
</div>
</div>
</div>
<div class="col-lg-6">
<h2 class="font-weight-normal text-6 mb-4"><strong class="font-weight-extra-bold">What</strong> Clients Say</h2>
<div class="row">
<div class="owl-carousel owl-theme dots-title dots-title-pos-2 mb-0" data-plugin-options="{'items': 1, 'autoHeight': true}">
<div>
<div class="col">
<div class="testimonial testimonial-primary">
<blockquote>
<p class="mb-0">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec hendrerit vehicula est, in consequat.</p>
</blockquote>
<div class="testimonial-arrow-down"></div>
<div class="testimonial-author">
<div class="testimonial-author-thumbnail">
<img src="img/clients/client-1.jpg" class="rounded-circle" alt="" />
</div>
<p><strong>John Doe</strong><span>Okler</span></p>
</div>
</div>
</div>
</div>
<div>
<div class="col">
<div class="testimonial testimonial-primary">
<blockquote>
<p class="mb-0">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec hendrerit vehicula est, in consequat. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec hendrerit vehicula est, in consequat.</p>
</blockquote>
<div class="testimonial-arrow-down"></div>
<div class="testimonial-author">
<div class="testimonial-author-thumbnail">
<img src="img/clients/client-1.jpg" class="rounded-circle" alt="" />
</div>
<p><strong>John Doe</strong><span>Okler</span></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
</section>
@endsection