Files
newznab-tmux/resources/js/alpine/index.js
T
2026-02-10 12:41:30 +01:00

62 lines
1.9 KiB
JavaScript

/**
* Alpine.js CSP-safe initialization
* Registers all stores and components, then starts Alpine.
*/
import Alpine from '@alpinejs/csp';
// Make Alpine globally available
window.Alpine = Alpine;
// --- Stores (must register before components that use them) ---
import './stores/theme.js';
import './stores/toast.js';
import './stores/cart.js';
// --- Core UI components ---
import './components/theme-toggle.js';
import './components/back-to-top.js';
import './components/dropdown.js';
import './components/sidebar-toggle.js';
import './components/admin-submenu.js';
import './components/mobile-nav.js';
import './components/password-toggle.js';
// --- Modal components ---
import './components/confirm-modal.js';
import './components/nfo-modal.js';
import './components/image-modal.js';
import './components/preview-modal.js';
import './components/mediainfo-modal.js';
import './components/filelist-modal.js';
// --- Feature components ---
import './components/tab-switcher.js';
import './components/cart-button.js';
import './components/cart-page.js';
import './components/search-autocomplete.js';
import './components/quality-filter.js';
import './components/content-toggle.js';
import './components/movies-layout.js';
import './components/movies-page.js';
import './components/confirm-link.js';
// --- Page-specific components ---
import './components/release-report.js';
import './components/profile-edit.js';
import './components/auth-page.js';
import './components/toast-notification.js';
// --- Admin components ---
import './components/admin/dashboard.js';
import './components/admin/groups.js';
import './components/admin/features.js';
// --- Shared utility (backward compat) ---
window.escapeHtml = function(text) {
const map = { '&': '&amp;', '<': '&lt;', '>': '&gt;', '"': '&quot;', "'": '&#039;' };
return String(text).replace(/[&<>"']/g, m => map[m]);
};
// Start Alpine
Alpine.start();