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

@ -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>