import sort from "@alpinejs/sort"; import Alpine from "alpinejs"; import { polyfillCountryFlagEmojis } from "country-flag-emoji-polyfill"; import htmx from "htmx.org"; import { limitedChoices } from "#core:alpine/limited-choices"; import { cacheBuster } from "#core:core/cache"; import { default as navbar } from "#core:core/navbar"; import { alpinePlugin as notificationPlugin } from "#core:utils/notifications"; /** * Alpine */ Alpine.plugin([sort, limitedChoices]); Alpine.magic("notifications", notificationPlugin); // biome-ignore lint/style/useNamingConvention: it's how it's named Object.assign(window, { Alpine }); window.addEventListener("DOMContentLoaded", () => { Alpine.start(); }); /** * Polyfill for country flags (used for language choice) */ polyfillCountryFlagEmojis(); /** * HTMX */ document.body.addEventListener("htmx:beforeRequest", (event: CustomEvent) => { event.detail.target.ariaBusy = true; }); document.body.addEventListener("htmx:beforeSwap", (event: CustomEvent) => { event.detail.target.ariaBusy = null; }); Object.assign(window, { htmx }); /** * navbar */ navbar(); /** * Script that clears the cache when the cache version changes */ cacheBuster();