/** * KTUI - Free & Open-Source Tailwind UI Components by Keenthemes * Copyright 2025 by Keenthemes Inc */ const KTElementMap = new Map(); const KTData = { set(element: HTMLElement, key: string, value: unknown): void { if (!KTElementMap.has(element)) { KTElementMap.set(element, new Map()); } const valueMap = KTElementMap.get(element); valueMap.set(key, value); }, get(element: HTMLElement, key: string): unknown { if (KTElementMap.has(element)) { return KTElementMap.get(element).get(key) || null; } return null; }, has(element: HTMLElement, key: string): boolean { return KTElementMap.has(element) && KTElementMap.get(element).has(key); }, remove(element: HTMLElement, key: string): void { if (!KTElementMap.has(element) || !KTElementMap.get(element).has(key)) { return; } const valueMap = KTElementMap.get(element); valueMap.delete(key); if (valueMap.size === 0) { KTElementMap.delete(element); } }, // Clear all data for a specific element (useful for reinitialization) clear(element: HTMLElement): void { KTElementMap.delete(element); }, }; // Expose KTData on window for external access (useful for Livewire wire:navigate) if (typeof window !== 'undefined') { window.KTData = KTData; } export default KTData;