diff --git a/.claude/launch.json b/.claude/launch.json
new file mode 100644
index 0000000..ae90fd0
--- /dev/null
+++ b/.claude/launch.json
@@ -0,0 +1,11 @@
+{
+ "version": "0.0.1",
+ "configurations": [
+ {
+ "name": "gwada-sirius-dev",
+ "runtimeExecutable": "npm",
+ "runtimeArgs": ["run", "dev"],
+ "port": 8080
+ }
+ ]
+}
diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
index 3937a99..aaa4549 100644
--- a/.github/workflows/deploy.yml
+++ b/.github/workflows/deploy.yml
@@ -35,7 +35,7 @@ jobs:
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
- path: ./dist
+ path: ./_site
deploy:
environment:
diff --git a/.gitignore b/.gitignore
index 4b29eb3..e3f3e6e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,6 +2,9 @@
dist/
build/
.svelte-kit/
+_site/
+.11ty-vite/
+src/paraglide/
# Dépendances
node_modules/
@@ -27,6 +30,10 @@ Thumbs.db
*.swp
*.swo
+# Claude Code (local uniquement)
+.claude/settings.local.json
+.claude/scheduled_tasks.lock
+
# Temporaires
*.tmp
*.temp
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 226262e..3e4153f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,18 @@
# Changelog
+## [2.0.0] - 2026-07-06
+
+### đïž Refonte complĂšte : Vite/Svelte 4 SPA â 11ty + Ăźlots Svelte 5
+
+- **Migration du build** : remplacement de la SPA Vite par un site 11ty statique ; Svelte 5 n'hydrate plus que 3 widgets réellement interactifs (calculateur de prédictions, carte d'observation, globe de la vague planétaire). Tout le reste (Science, Culture, Dogon, Observatoire, Associations, navigation) est du HTML/CSS pur, fonctionnel sans JavaScript.
+- **Navigation** : passage de 7 entrées (dont Dogon et Calculs absents du menu) à 5 entrées consolidées (Accueil, Sirius & Science, Culture & Savoirs, Observer, Associations), conformément à la loi de Hick-Hyman.
+- **i18n** : remplacement du store Svelte custom par Paraglide (inlang), i18n compilée et routée par URL (`/`, `/en/`, `/ht/`), avec repli automatique vers le français pour les traductions manquantes.
+- **Design system** : nouveaux tokens CSS en `oklch()` (contraste AA/AAA calculé, pas décoré aprÚs coup), cascade `@layer` explicite, `light-dark()` pour un vrai mode clair/sombre (le site n'avait qu'un thÚme sombre fixe), motifs panafricains (kente/bogolan/adinkra) resserrés en accents ponctuels plutÎt qu'en texture de fond généralisée.
+- **Typographie** : polices auto-hébergées (Fraunces, Atkinson Hyperlegible) en remplacement de Google Fonts.
+- **Performance** : suppression totale d'animejs (toutes les animations d'entrée/interaction sont maintenant en CSS ou omises) ; onglets (Science, Dogon) réimplémentés en CSS pur (`input[type=radio]`), zéro JS.
+- **Données astronomiques** : consolidation sur un unique jeu de 7 sites d'observation (l'ancien composant Predictions utilisait des données différentes, moins précises, du jeu de données `predictions.js` jamais branché) ; méthodologie de calcul explicitée et sourcée (Jean Meeus, Jeffrey L. Hunt) ; prédictions étendues jusqu'en 2032 ; date figée "22 juillet 2025" remplacée par un calcul dynamique du prochain lever au build.
+- **Nettoyage** : suppression de 3 variantes de globe mortes (`Globe.svelte`, `GlobeThreeJS.svelte`, `GlobeOpenGlobus.svelte.bak`), d'un fichier vide (`og.umd.js`) et du prototype HTML pré-Svelte jamais référencé.
+
## [1.5.0] - 2024-01-07
### đ Nouvelles fonctionnalitĂ©s
diff --git a/NOTES_PROJET.md b/NOTES_PROJET.md
index 6e32967..783f5e9 100644
--- a/NOTES_PROJET.md
+++ b/NOTES_PROJET.md
@@ -2,116 +2,41 @@
## đ Vue d'ensemble
-J'ai créé une application web one-page avec Svelte qui combine les 3 pages HTML que vous aviez et enrichit le contenu avec les informations du PDF. L'application est moderne, mobile-first, avec un design panafricain/caribéen.
+Refonte complÚte (v2) : passage d'une SPA Vite+Svelte 4 à un site **11ty** statique avec **Svelte 5 en ßlots**, un design system CSS natif (oklch, `@layer`, container queries) et une i18n compilée (Paraglide/inlang). Conforme à la doctrine UI/UX OKI : nav à 5 entrées, fonctionne sans JavaScript pour tout le contenu éditorial, budget JS minimal.
-## đïž Structure du projet
+## đïž Architecture
-```
-/home/sucupira/dev/Gwada-Sirius/
-âââ src/
-â âââ App.svelte # Composant principal
-â âââ app.css # Styles globaux avec patterns africains
-â âââ main.js # Point d'entrĂ©e
-â âââ components/ # Composants Svelte
-â â âââ Navigation.svelte # Menu responsive
-â â âââ Hero.svelte # Section hĂ©ro avec animation d'Ă©toiles
-â â âââ About.svelte # Introduction Ă Sirius
-â â âââ Predictions.svelte # Calculateur interactif
-â â âââ Science.svelte # Explication scientifique
-â â âââ Culture.svelte # HĂ©ritage culturel
-â â âââ Observatory.svelte # Guide d'observation
-â â âââ Globe.svelte # Visualisation globe (Canvas 2D)
-â â âââ Footer.svelte # Pied de page
-â âââ data/
-â âââ predictions.js # DonnĂ©es des prĂ©dictions
-âââ package.json
-âââ vite.config.js
-âââ index.html
-âââ README.md
-âââ .gitignore
-âââ start.sh # Script de dĂ©marrage rapide
-```
+- **Contenu** : pages Nunjucks (`src/*.njk`), chacune paginée sur les 3 langues (`fr`/`en`/`ht`) via `pagination.data: locales`.
+- **Données** : `src/_data/sites.js` (7 sites d'observation, dates interpolées Jean Meeus / Jeffrey L. Hunt), `src/_data/nav.js`, `src/_data/nextRising.js` (calculé au build).
+- **i18n** : catalogues `messages/{fr,en,ht}.json`, compilés par `@inlang/paraglide-js` en `src/paraglide/` avant chaque build (`npm run messages`). `ht` retombe automatiquement sur `fr` pour les clés non traduites (contenu long, cf. portée d'origine).
+- **Ălots Svelte 5** (3 seulement, le reste est HTML/CSS pur) :
+ - `PredictionsCalculator` â hydratation immĂ©diate, amĂ©liore le tableau statique des 7 sites
+ - `ObservationMap` â carte canvas schĂ©matique, hydratation diffĂ©rĂ©e (IntersectionObserver)
+ - `SiriusGlobe` â vague planĂ©taire du lever hĂ©liaque (13 villes), hydratation diffĂ©rĂ©e
+- **Onglets** (Science, Dogon) : 100 % CSS (`input[type=radio]` + `label`), zéro JS.
+- **Build** : `@11ty/eleventy-plugin-vite` fait passer la sortie 11ty par Vite (bundling CSS/JS, compilation Svelte). Un plugin maison recopie les assets passthrough aprĂšs le build Vite (voir commentaire dans `eleventy.config.js` â `emptyOutDir` de Vite les efface sinon).
-## đš Design et fonctionnalitĂ©s
+## â ïž Points d'attention connus
-### Palette de couleurs panafricaine :
-- **Or (#FFD700)** : Couleur principale, représente Sirius et le soleil
-- **Rouge profond (#DC143C)** : Accent
-- **Vert forĂȘt (#228B22)** : Nature
-- **Bleu nuit (#1a1a2e)** : Fond, ciel nocturne
-
-### Patterns africains intégrés :
-- **Kente** : Motif géométrique en diagonale
-- **Bogolan** : Cercles et points
-- **Adinkra** : Motifs symboliques
-
-### Sections principales :
-1. **Hero** : Animation d'étoiles interactive avec effet parallaxe
-2. **About** : Introduction avec cartes d'information
-3. **Predictions** : Calculateur interactif avec sélecteurs
-4. **Science** : Tabs pour explorer la mécanique céleste
-5. **Culture** : Timeline et cartes culturelles
-6. **Observatory** : Guide pratique étape par étape
-7. **Globe** : Visualisation 2D animée (plus léger que Three.js)
-
-## đ Pour dĂ©marrer
-
-```bash
-cd /home/sucupira/dev/Gwada-Sirius
-./start.sh
-```
-
-Ou manuellement :
-```bash
-npm install
-npm run dev
-```
-
-## đ± Responsive Design
-
-- Mobile-first approach
-- Menu hamburger pour mobile
-- Grilles flexibles
-- Tailles de police adaptatives avec clamp()
-
-## ⥠Performance
-
-- Svelte compile en vanilla JS (pas de runtime)
-- Canvas 2D au lieu de Three.js pour le globe
-- Lazy loading des animations avec IntersectionObserver
-- CSS optimisé avec variables custom properties
+1. **`` et `vite-ignore`** : Vite traite tout `` comme une référence d'asset à résoudre, y compris `rel="alternate"`/`rel="icon"`/`rel="preload"`. Un `href="/"` ou `href="/en/"` (URL de répertoire) fait planter le build (`EISDIR`, cf. issue amont). Toujours ajouter `vite-ignore` sur ces `` de métadonnées dans `layouts/base.njk`.
+2. **Alias `/src`** : `eleventy-plugin-vite` fait tourner Vite avec pour racine une copie du dossier de **sortie** (`_site`), pas la racine du projet. Toute référence absolue à un fichier source (`/src/styles/app.css`, `/src/islands/.../mount.js`) nécessite l'alias `resolve.alias["/src"]` défini dans `eleventy.config.js`.
+3. **Dates ISO sans heure** : `new Date("2026-07-22")` est interprĂ©tĂ© en UTC ; formatĂ© en heure locale Guadeloupe (UTC-4), ça peut reculer d'un jour. Toujours parser les composants (`year, month, day`) et construire la date en local â voir le filtre `formatDate` et `PredictionsCalculator.svelte`.
+4. **Slinkity est abandonné** (son créateur travaille sur Astro) : ne pas l'utiliser pour l'intégration 11ty+Svelte, `eleventy-plugin-vite` (officiel) est la voie robuste.
## đ AmĂ©liorations possibles
-1. **Ajouter un compte Ă rebours dynamique** jusqu'au 22 juillet
-2. **Intégrer une API météo** pour les prévisions
-3. **Ajouter des sons ambiants** africains/caribéens
-4. **Mode sombre/clair** automatique selon l'heure
-5. **PWA** pour installation mobile
-6. **Partage social** avec meta tags optimisés
-7. **Multilingue** (Français, Créole, Anglais)
-8. **Animations GSAP** pour plus de fluidité
+- Traduire le contenu long en KreyĂČl (actuellement chrome/labels uniquement, contenu de fond en français)
+- Vraies données GeoJSON pour `ObservationMap` (actuellement une carte schématique par position lat/lon normalisée, pas un tracé de cÎte réel)
+- Service worker pour un usage hors-ligne (mentionné dans la doctrine, pas encore implémenté)
+- Mettre à jour chaque année les informations d'événements associatifs (`associations.njk`, données à vérifier auprÚs des organisateurs)
## đŠ Build pour production
```bash
npm run build
-# Les fichiers seront dans dist/
+# Sortie dans _site/
```
## đ DĂ©ploiement
-Peut ĂȘtre dĂ©ployĂ© facilement sur :
-- Netlify (drag & drop du dossier dist)
-- Vercel
-- GitHub Pages
-- Surge.sh
-
-## đĄ Points techniques importants
-
-1. **Données astronomiques** : Toutes les prédictions sont stockées dans `src/data/predictions.js`
-2. **Animations** : Utilisation de CSS animations et requestAnimationFrame
-3. **Ătat** : Gestion simple avec les stores Svelte (pas de store global pour l'instant)
-4. **SEO** : Ajouter les meta tags appropriés dans index.html
-
-Le projet est maintenant prĂȘt et fonctionnel ! Vous pouvez le personnaliser selon vos besoins.
+GitHub Pages via `.github/workflows/deploy.yml` (upload de `_site/`), déclenché sur push vers `main`.
diff --git a/README.md b/README.md
index 72eb6f7..4876c99 100644
--- a/README.md
+++ b/README.md
@@ -1,71 +1,61 @@
-# Sirius en Guadeloupe - Gwada-Sirius
+# Sirius en Guadeloupe â Gwada-Sirius
-Un projet web célébrant le lever héliaque de Sirius en Guadeloupe, fusionnant astronomie, culture africaine et héritage caribéen.
+Un site célébrant le lever héliaque de Sirius en Guadeloupe (Wep Ronpet), à la croisée de l'astronomie, de l'héritage égyptien et dogon, et de la culture caribéenne.
## đ Ă propos
-Cette application web interactive permet de :
-- Calculer les dates précises du lever héliaque de Sirius pour différents lieux en Guadeloupe
-- Explorer l'hĂ©ritage culturel de Sirius Ă travers les civilisations (Ăgypte ancienne, Dogons, CaraĂŻbes)
-- Comprendre la science astronomique derriÚre ce phénomÚne
-- Découvrir les meilleurs sites d'observation en Guadeloupe
+Ce site permet de :
+- Calculer la date précise du lever héliaque pour 7 sites d'observation en Guadeloupe
+- Explorer l'hĂ©ritage culturel de Sirius (Ăgypte ancienne, Dogon du Mali, CaraĂŻbes)
+- Comprendre la science du phénomÚne (Arcus Visionis, méthode de calcul)
+- Préparer une observation (guide pratique, équipement, carte des sites)
+- Découvrir les associations qui célÚbrent le Wep Ronpet
-## đ Technologies utilisĂ©es
+## đ Stack technique
-- **Svelte** - Framework JavaScript réactif
-- **Canvas 2D** - Pour les animations et visualisations
-- **GeoJSON** - Pour les cartes interactives
-- **i18n** - Support multilingue (Français, English, KreyĂČl Ayisyen)
+- **[11ty (Eleventy)](https://www.11ty.dev/)** â gĂ©nĂ©ration du site statique, contenu et navigation en HTML/CSS, fonctionnel sans JavaScript
+- **[Svelte 5](https://svelte.dev/)** en Ăźlots â hydratation ciblĂ©e pour les 3 seuls widgets interactifs (calculateur de prĂ©dictions, carte d'observation, globe de la vague planĂ©taire), via `@11ty/eleventy-plugin-vite`
+- **[Paraglide (inlang)](https://paraglidejs.com/)** â i18n compilĂ©e, FR (dĂ©faut) / EN / KreyĂČl Ayisyen, routĂ©e par URL (`/`, `/en/`, `/ht/`)
+- **CSS natif** â tokens `oklch()`, cascade `@layer`, container queries, aucun framework CSS ni prĂ©processeur
+- Polices auto-hébergées (Fraunces, Atkinson Hyperlegible), zéro dépendance à Google Fonts
+
+Conforme à la doctrine UI/UX OKI (voir document de référence interne) : navigation à 5 entrées, cibles tactiles ℠48 px, contraste AA/AAA, `prefers-reduced-motion` respecté, budget JS minimal.
## đŠ Installation
```bash
-# Cloner le repository
-git clone https://github.com/[votre-username]/gwada-sirius.git
-
-# Entrer dans le dossier
-cd gwada-sirius
-
-# Installer les dépendances
npm install
-
-# Lancer le serveur de développement
-npm run dev
+npm run dev # serveur de développement sur http://localhost:8080
+npm run build # build de production dans _site/
+npm run preview # prévisualiser le build de production
```
-## đ FonctionnalitĂ©s
+## đïž Structure
-- **Calculateur de prédictions** : Dates précises pour 7 sites d'observation
-- **Globe interactif** : Visualisation de la trajectoire de Sirius
-- **Carte des sites** : Localisation des meilleurs points d'observation
-- **Multilingue** : Interface en français, anglais et créole haïtien
-- **Responsive** : Optimisé pour mobile et desktop
-- **Animations** : Ciel étoilé animé et patterns africains
-
-## đš Design
-
-Le design s'inspire des motifs africains (Kente, Adinkra, Bogolan) avec une palette de couleurs symbolique :
-- Or (#FFD700) - Sirius et la lumiĂšre divine
-- Rouge (#FF6B35) - Force et énergie vitale
-- Vert (#4CAF50) - Nature et renouveau
-- Bleu nuit (#0A1628) - Ciel nocturne
+```
+src/
+âââ _data/ # donnĂ©es globales (sites d'observation, navigation)
+âââ _includes/ # layout de base, partiels (nav, footer)
+âââ styles/ # design system CSS (tokens, reset, base, layouts, composants)
+âââ islands/ # composants Svelte 5 hydratĂ©s cĂŽtĂ© client (prĂ©dictions, carte, globe)
+âââ paraglide/ # messages i18n compilĂ©s (gĂ©nĂ©rĂ©, ignorĂ© par git)
+âââ index.njk # accueil
+âââ sirius-science.njk # astronomie + mĂ©thode de calcul
+âââ culture-savoirs.njk# hĂ©ritage culturel + savoir dogon
+âââ observer.njk # calculateur, carte, guide d'observation
+âââ associations.njk # associations qui fĂȘtent le Wep Ronpet
+messages/ # catalogues de traduction (fr/en/ht), source pour Paraglide
+project.inlang/ # configuration du projet i18n
+```
## đ„ CrĂ©dits
-Projet rĂ©alisĂ© avec â€ïž par :
-- [cyber-mawonaj](https://github.com/cyber-mawonaj)
-- [OKI](https://o-k-i.net)
+Projet rĂ©alisĂ© avec â€ïž par [cyber-mawonaj](https://github.com/cyber-mawonaj) et [OKI](https://o-k-i.net).
## đ Licence
-Ce projet est sous licence MIT - voir le fichier [LICENSE](LICENSE) pour plus de détails.
-
-## đ Remerciements
-
-- Les anciens Ăgyptiens pour leur sagesse astronomique
-- Les Dogons du Mali pour avoir préservé ces connaissances
-- La communauté guadeloupéenne pour perpétuer ces traditions
+MIT â voir [LICENSE](LICENSE).
---
-*"Les Ă©toiles sont les ancĂȘtres qui veillent sur nous" - Proverbe africain*
\ No newline at end of file
+*"Les Ă©toiles sont les ancĂȘtres qui veillent sur nous" â proverbe africain*
diff --git a/eleventy.config.js b/eleventy.config.js
new file mode 100644
index 0000000..f3d39fc
--- /dev/null
+++ b/eleventy.config.js
@@ -0,0 +1,97 @@
+import fs from "node:fs";
+import path from "node:path";
+import EleventyVitePlugin from "@11ty/eleventy-plugin-vite";
+import { svelte } from "@sveltejs/vite-plugin-svelte";
+import * as m from "./src/paraglide/messages.js";
+import { locales, baseLocale } from "./src/paraglide/runtime.js";
+
+const OUTPUT_DIR = "_site";
+
+// Vite's build wipes the output dir (emptyOutDir) after 11ty has already
+// copied passthrough assets into it â re-copy them once Vite is done.
+// https://github.com/11ty/eleventy-plugin-vite/issues/42
+function restorePassthroughCopy(copies) {
+ return {
+ name: "restore-passthrough-copy",
+ apply: "build",
+ closeBundle() {
+ for (const [from, to] of copies) {
+ if (!fs.existsSync(from)) continue;
+ fs.cpSync(from, path.join(OUTPUT_DIR, to), {
+ recursive: true,
+ force: true,
+ });
+ }
+ },
+ };
+}
+
+export default function (eleventyConfig) {
+ eleventyConfig.addPlugin(EleventyVitePlugin, {
+ viteOptions: {
+ appType: "mpa",
+ plugins: [
+ svelte(),
+ restorePassthroughCopy([
+ ["src/assets", "assets"],
+ ["public", "."],
+ ]),
+ ],
+ resolve: {
+ alias: {
+ "/src": path.resolve(".", "src"),
+ },
+ },
+ build: {
+ emptyOutDir: false,
+ },
+ },
+ });
+
+ eleventyConfig.ignores.add("src/paraglide/**");
+ eleventyConfig.ignores.add("src/islands/**");
+
+ eleventyConfig.addPassthroughCopy("src/assets");
+ eleventyConfig.addPassthroughCopy({ public: "." });
+
+ // Trilingual message lookup for Nunjucks templates: {{ "hero_title1" | t(locale) }}
+ eleventyConfig.addFilter("t", (key, locale, params = {}) => {
+ const fn = m[key];
+ if (!fn) return key;
+ return fn(params, { locale });
+ });
+
+ eleventyConfig.addGlobalData("locales", locales);
+ eleventyConfig.addGlobalData("baseLocale", baseLocale);
+ eleventyConfig.addGlobalData("currentYear", () => new Date().getFullYear());
+
+ eleventyConfig.addFilter("localeHref", (pagePath, locale) => {
+ const clean = pagePath.replace(/^\/+/, "");
+ return locale === baseLocale ? `/${clean}` : `/${locale}/${clean}`;
+ });
+
+ eleventyConfig.addFilter("dump", (value) => JSON.stringify(value).replace(/ {
+ // new Date("YYYY-MM-DD") parses as UTC midnight, which can roll back a
+ // day once formatted in a timezone behind UTC (e.g. Guadeloupe, UTC-4).
+ // Build the date from its local components instead.
+ const [year, month, day] = isoDate.split("-").map(Number);
+ return new Date(year, month - 1, day).toLocaleDateString(
+ locale === "ht" ? "fr" : locale,
+ { day: "numeric", month: "long", year: "numeric", ...options }
+ );
+ });
+
+ return {
+ dir: {
+ input: "src",
+ output: OUTPUT_DIR,
+ includes: "_includes",
+ data: "_data",
+ },
+ templateFormats: ["njk", "md"],
+ markdownTemplateEngine: "njk",
+ htmlTemplateEngine: "njk",
+ };
+}
diff --git a/gwada-sirius-onepage.html b/gwada-sirius-onepage.html
deleted file mode 100644
index d626821..0000000
--- a/gwada-sirius-onepage.html
+++ /dev/null
@@ -1,475 +0,0 @@
-
-
-
-
-
- Gwada-Sirius : L'Ătoile de nos AncĂȘtres
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Prédictions pour la Guadeloupe
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Pointe des ChĂąteaux
-
22 juillet
-
vers 05:12
-
-
FenĂȘtre d'observation :
-
20 au 24 Juillet
-
-
-
-
-
-
-
Ăquipement nĂ©cessaire
-
Vos yeux suffisent ! Des jumelles peuvent aider dans les lueurs de l'aube.
-
-
-
Meilleure direction
-
Est-Sud-Est, horizon dégagé loin des lumiÚres de la ville.
-
-
-
Conseil d'expert
-
Observez 2 jours avant et aprÚs la date prédite pour maximiser vos chances.
-
-
-
-
-
-
-
-
-
-
- La Vague Planétaire de Sirius
-
-
- Découvrez comment le lever héliaque de Sirius se propage comme une vague à travers la planÚte,
- de l'hémisphÚre Sud vers le Nord, reliant l'Afrique aux Caraïbes.
-
-
-
-
-
- Cliquez et glissez pour faire tourner le globe. La vague animée représente la progression du lever héliaque.
-
-
-
-
-
-
đ DĂ©part au Sud
-
- La vague commence dans l'hémisphÚre Sud car c'est l'hiver austral.
- Les nuits étant plus longues, Sirius apparaßt plus tÎt (fin juin).
-
-
-
-
đ
Arrivée au Nord
-
- En été boréal, les nuits sont plus courtes. Il faut attendre plus longtemps
- pour que Sirius soit visible Ă l'aube (fin juillet).
-
-
-
-
-
-
-
-
-
-
-
- Héritage Culturel Panafricain
-
-
-
-
-
đș
-
Ăgypte Antique : Sothis
-
- Pour les anciens Ăgyptiens, le lever hĂ©liaque de Sirius (Sothis) Ă©tait l'Ă©vĂ©nement le plus important de l'annĂ©e.
- Il annonçait la crue vitale du Nil qui fertilisait les terres. Ce "retour" de l'étoile marquait le Nouvel An
- et symbolisait la renaissance, associée à la déesse Isis.
-
-
-
-
-
đ
-
Dogon du Mali : Po Tolo
-
- Le peuple Dogon possÚde un savoir ancestral stupéfiant sur Sirius, décrivant une compagne invisible,
- "Po Tolo" (Sirius B), qui tourne autour de l'étoile principale en 50 ans. Des connaissances qui correspondent
- précisément aux découvertes modernes astronomiques.
-
-
-
-
-
-
De l'Afrique aux CaraĂŻbes
-
- Sirius unit nos territoires caribéens à notre héritage africain. Cette étoile brillante,
- guide des navigateurs et messager des saisons, continue d'éclairer nos ßles comme elle
- Ă©clairait nos ancĂȘtres. Observer Sirius en Guadeloupe, c'est participer Ă une tradition
- millénaire qui traverse les océans et les générations.
-
-
- đŹđ”
- đČđ¶
- đ
- đș
-
-
-
-
-
-
-
-
-
-
- Comprendre le PhénomÚne
-
-
-
-
-
Arcus Visionis â 9-10°
-
- L'angle clé : la hauteur négative du Soleil sous l'horizon nécessaire pour que Sirius devienne visible à l'aube.
-
-
-
-
-
-
HORIZON
-
â
-
âïž
-
- Le Soleil doit ĂȘtre Ă 9-10° sous l'horizon
pour que Sirius devienne visible
-
-
-
-
-
-
-
âš
-
Magnitude
-
- Plus une étoile est brillante, plus elle est facile à voir dans la lueur de l'aube.
- Sirius (-1.46) est l'étoile la plus brillante du ciel nocturne.
-
-
-
-
đ
-
Latitude
-
- La position sur Terre change l'angle du lever et la durée du crépuscule.
- En Guadeloupe (16°N), les conditions sont idéales.
-
-
-
-
đ«ïž
-
AtmosphĂšre
-
- L'humidité, la brume de sable ou les nuages peuvent "éteindre" l'étoile
- et retarder sa visibilitĂ©. D'oĂč l'importance de la fenĂȘtre d'observation.
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/index.html b/index.html
deleted file mode 100644
index 5e3cbf9..0000000
--- a/index.html
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
- Sirius en Guadeloupe - Guide du Lever Héliaque
-
-
-
-
-
-
-
-
-
-
diff --git a/messages/en.json b/messages/en.json
new file mode 100644
index 0000000..b2010c7
--- /dev/null
+++ b/messages/en.json
@@ -0,0 +1,227 @@
+{
+ "$schema": "https://inlang.com/schema/inlang-message-format",
+
+ "meta_title": "Sirius in Guadeloupe â Wep Ronpet, the heliacal rising",
+ "meta_description": "Calculate and understand the heliacal rising of Sirius in Guadeloupe: astronomy, Egyptian and Dogon heritage, observation guide.",
+
+ "skip_to_content": "Skip to content",
+ "lang_name_fr": "Français",
+ "lang_name_en": "English",
+ "lang_name_ht": "KreyĂČl",
+
+ "nav_home": "Home",
+ "nav_science": "Sirius & Science",
+ "nav_culture": "Culture & Knowledge",
+ "nav_observer": "Observe",
+ "nav_associations": "Associations",
+
+ "hero_eyebrow": "Wep Ronpet",
+ "hero_title1": "Sirius",
+ "hero_title2": "in Guadeloupe",
+ "hero_subtitle": "The Opening of the Cosmic Year",
+ "hero_description": "The millennial meeting between Sky, Science and Culture",
+ "hero_date_label": "Next heliacal rising",
+ "hero_cta_predictions": "Discover the predictions",
+ "hero_cta_learn": "Learn more",
+
+ "home_intro_title": "Sirius and Wep Ronpet",
+ "home_intro_subtitle": "The Opening of the Year â the cosmic New Year of the ancient Egyptians",
+ "home_intro_p1": "Wep Ronpet â \"the Opening of the Year\" in ancient Egyptian â marked the most sacred day of the Egyptian calendar. This day corresponded to the heliacal rising of Sirius, when the star reappeared at dawn after 70 days of invisibility.",
+ "home_intro_p2": "The heliacal rising of Sirius is not just an astronomical phenomenon. It is a millennial meeting between humanity and the cosmos, a moment where science and spirituality meet in the light of dawn.",
+ "home_intro_p3": "In Guadeloupe, observing this phenomenon connects us directly to African roots, where Sirius was venerated as the herald of life and renewal.",
+ "feature_brightest_title": "The brightest star",
+ "feature_brightest_desc": "Sirius shines with a magnitude of -1.46, dominating our night sky.",
+ "feature_rising_title": "The heliacal rising",
+ "feature_rising_desc": "Its first appearance at dawn after 70 days of invisibility marks a cosmic event.",
+ "feature_heritage_title": "Ancestral heritage",
+ "feature_heritage_desc": "From ancient Egypt to the Dogon of Mali, Sirius has guided humanity for millennia.",
+
+ "science_title": "Sirius & Science",
+ "science_subtitle": "Understanding the cosmic dance between Earth, Sun and Sirius",
+ "science_tab_mechanics": "Celestial mechanics",
+ "science_tab_arcus": "Arcus Visionis",
+ "science_tab_factors": "Influencing factors",
+ "science_tab_calc": "Calculation method",
+ "science_mechanics_title": "The cosmic ballet",
+ "science_mechanics_p1": "The heliacal rising is the result of a precise celestial choreography. For about 70 days, Sirius stays invisible, hidden by the Sun's brilliance. Its return at dawn marks a unique moment when the star rises just before the Sun, visible for a few instants in the glow of morning twilight.",
+ "science_mechanics_p2": "Earth, in its yearly orbital motion, changes our perspective on the stars. When the Sun sits between us and Sirius, the star becomes invisible. Only when the angle becomes favourable does Sirius reappear.",
+ "science_diagram_sun": "Sun",
+ "science_diagram_earth": "Earth",
+ "science_diagram_sirius": "Sirius",
+ "science_arcus_title": "The arc of visibility",
+ "science_arcus_p1": "The Arcus Visionis is the critical angle: the Sun must be about 9 to 10° below the horizon for Sirius to become visible. It's a delicate balance between the star's brightness and the sky's luminosity.",
+ "science_arcus_p2": "For Sirius, with its exceptional magnitude of -1.46, this angle is relatively small compared to dimmer stars â which is why it is one of the first stars visible at dawn.",
+ "science_arcus_horizon_label": "Horizon",
+ "science_factor_magnitude_title": "Magnitude",
+ "science_factor_magnitude_desc": "Sirius shines at -1.46, making it visible even in difficult conditions. The brighter a star, the earlier it pierces the glow of dawn.",
+ "science_factor_latitude_title": "Latitude",
+ "science_factor_latitude_desc": "At 16°N in Guadeloupe, stars rise almost vertically. This tropical geometry shapes the duration of twilight and visibility.",
+ "science_factor_atmosphere_title": "Atmosphere",
+ "science_factor_atmosphere_desc": "Caribbean humidity and Saharan dust haze can delay visibility by several days. A dry, clear sky is ideal.",
+ "science_calc_title": "Calculating the heliacal rising of Sirius",
+ "science_calc_formula_label": "Main formula",
+ "science_calc_formula": "Heliacal rising date = Conjunction date + (Arcus Visionis / Sun's angular speed)",
+ "science_calc_step1_title": "Guadeloupe's coordinates",
+ "science_calc_step1_value": "Latitude: 16.25°N â Longitude: 61.58°W",
+ "science_calc_step2_title": "Sirius's position",
+ "science_calc_step2_ra": "Right ascension: 6h 45m 09s",
+ "science_calc_step2_dec": "Declination: -16° 42' 58\"",
+ "science_calc_arcus_title": "Arcus Visionis",
+ "science_calc_arcus_desc": "The minimum angle between the Sun and a star for it to become visible â about 2° of altitude above the horizon for a star as bright as Sirius, reached around 50 minutes before sunrise.",
+ "science_calc_sources_title": "Method and sources",
+ "science_calc_sources_text": "Per-site dates are interpolated from Jean Meeus's tables (arc of vision as a function of latitude) and cross-checked against astronomer Jeffrey L. Hunt's calculations (whenthecurveslineup.com). At 16°N, interpolating between 10°N (July 17) and 20°N (July 24) gives a heliacal rising around July 22-23 â consistent with traditional observation in Guadeloupe. The actual observed date still depends on weather and the clarity of the eastern horizon.",
+
+ "culture_title": "Culture & Knowledge",
+ "culture_subtitle": "A millennial heritage uniting Africa and the Caribbean",
+ "culture_egypt_title": "Egypt: Sothis, goddess of the Nile",
+ "culture_egypt_desc": "For the ancient Egyptians, the heliacal rising of Sirius (Sothis) was the most important event of the year. It announced the flooding of the Nile, a source of life and fertility. This \"return\" of the star marked the New Year and symbolised rebirth, associated with the goddess Isis.",
+ "culture_dogon_title": "Dogon: keepers of stellar knowledge",
+ "culture_dogon_desc": "The Dogon people of Mali hold astonishing knowledge about Sirius. They knew of the existence of Sirius B, a white dwarf invisible to the naked eye, long before its scientific discovery. Their 60-year ritual cycle, the Sigui, is directly linked to their understanding of the Sirius system.",
+ "culture_caribbean_title": "Caribbean: stellar navigation",
+ "culture_caribbean_desc": "In the Caribbean, Sirius has guided sailors for centuries. Indigenous peoples and African mariners used its rising to mark the seasons and navigate between islands. Even today it remains a fundamental landmark for traditional fishermen.",
+ "culture_timeline_title": "Timeline of knowledge",
+ "culture_timeline_1_date": "3000 BCE",
+ "culture_timeline_1_title": "Ancient Egypt",
+ "culture_timeline_1_desc": "First calendar based on Sirius",
+ "culture_timeline_2_date": "13th century",
+ "culture_timeline_2_title": "Dogon migration",
+ "culture_timeline_2_desc": "Preservation of astronomical knowledge",
+ "culture_timeline_3_date": "15th-17th century",
+ "culture_timeline_3_title": "Atlantic crossing",
+ "culture_timeline_3_desc": "African knowledge travels to the Caribbean",
+ "culture_timeline_4_date": "Today",
+ "culture_timeline_4_title": "Renaissance",
+ "culture_timeline_4_desc": "Rediscovery and celebration of Wep Ronpet in Guadeloupe",
+
+ "dogon_title": "The Dogon, keepers of the sky",
+ "dogon_intro": "For centuries, the Dogon people of Mali have cultivated a cosmogony centred on Sirius, passed down orally from generation to generation.",
+ "dogon_tab_cosmogony": "Cosmogony",
+ "dogon_tab_system": "The Sirius system",
+ "dogon_tab_astronomy": "Dogon astronomy",
+ "dogon_tab_heritage": "Heritage",
+ "dogon_cosmogony_title": "Dogon cosmogony",
+ "dogon_cosmogony_p1": "Sigi Tolo â Sirius, the brightest star in the sky â sits at the centre of a highly sophisticated Dogon cosmogony, passed down orally for millennia.",
+ "dogon_cosmogony_p2": "The Sigui, celebrated every 60 years, marks the renewal of the world and commemorates the revelation of speech to humankind. This roughly 60-year period is close to Sirius B's 50-year orbit around Sirius A, adjusted by ritual considerations.",
+ "dogon_cosmogony_nommo_title": "The Nommo",
+ "dogon_cosmogony_nommo_desc": "A primordial amphibious being said to come from Sirius, the Nommo is said to have brought civilisation and foundational knowledge to the Dogon ancestors.",
+ "dogon_system_sigutolo_title": "Sigi Tolo (Sirius A)",
+ "dogon_system_sigutolo_desc": "The main star, source of light and life. Associated with femininity and fertility, it guides the seasons and the harvests.",
+ "dogon_system_potolo_title": "Po Tolo (Sirius B)",
+ "dogon_system_potolo_desc": "A companion invisible to the naked eye, described as \"heavy\" and \"white\". Its 50-year orbit around Sirius A was only confirmed by Western astronomers in 1862 â the heart of the Dogon mystery.",
+ "dogon_system_emmeya_title": "Emme Ya Tolo",
+ "dogon_system_emmeya_desc": "A hypothetical third star, four times lighter than Po Tolo and on a wider orbit. Not confirmed by modern astronomy.",
+ "dogon_mystery_title": "The mystery of the knowledge",
+ "dogon_mystery_theory1_title": "Ancient transmission",
+ "dogon_mystery_theory1_desc": "A heritage passed down from an earlier, advanced civilisation.",
+ "dogon_mystery_theory2_title": "Contact",
+ "dogon_mystery_theory2_desc": "The account of the Nommo, said to come from Sirius according to oral tradition.",
+ "dogon_mystery_theory3_title": "Careful observation",
+ "dogon_mystery_theory3_desc": "A patient deduction from perturbations observed on Sirius A.",
+ "dogon_astronomy_geometry_title": "Sacred geometry",
+ "dogon_astronomy_geometry_desc": "Complex geometric figures represent celestial motions and cosmic cycles.",
+ "dogon_astronomy_calendar_title": "Lunar calendar",
+ "dogon_astronomy_calendar_desc": "A sophisticated calendar system based on lunar phases and the position of Sirius, in service of agriculture.",
+ "dogon_astronomy_planets_title": "Planetary knowledge",
+ "dogon_astronomy_planets_desc": "A description of Saturn's rings and Jupiter's moons, invisible without a telescope.",
+ "dogon_astronomy_universe_title": "Structure of the universe",
+ "dogon_astronomy_universe_desc": "A universe conceived as infinite, made of multiple worlds â an intuition close to modern cosmology.",
+ "dogon_calc_example_title": "A striking correspondence",
+ "dogon_calc_example_text": "Po Tolo's orbital period: 50 years. Ritual adjustment: Ă 1.2. Sigui period: 60 years. Match with Sirius B's actual orbit (50.1 years): 99.8%.",
+ "dogon_heritage_1_date": "Antiquity",
+ "dogon_heritage_1_desc": "Possible links with the Egyptian priests who venerated Sothis (Sirius)",
+ "dogon_heritage_2_date": "13th century",
+ "dogon_heritage_2_desc": "Migration to the Bandiagara cliffs in Mali, preservation of traditions",
+ "dogon_heritage_3_date": "1931-1956",
+ "dogon_heritage_3_desc": "Marcel Griaule's ethnographic study reveals Dogon astronomical knowledge",
+ "dogon_heritage_4_date": "Today",
+ "dogon_heritage_4_desc": "The Dogon continue to inspire researchers and scientists worldwide",
+ "dogon_heritage_diaspora_title": "An influence that crossed the Atlantic",
+ "dogon_heritage_diaspora_desc": "African astronomical traditions, including Dogon knowledge, crossed the Atlantic with the diaspora, enriching the spiritual and calendrical practices of the Caribbean.",
+ "dogon_heritage_diaspora_haiti": "Vodou and sacred astronomy",
+ "dogon_heritage_diaspora_guadeloupe": "Gwoka traditions and cosmic cycles",
+ "dogon_heritage_diaspora_martinique": "BĂšlĂš and stellar rhythms",
+ "dogon_heritage_diaspora_jamaica": "Rastafari and cosmic consciousness",
+
+ "observer_title": "Observe",
+ "observer_subtitle": "Where, when and how to observe the heliacal rising in Guadeloupe",
+ "observer_calculator_title": "Prediction calculator",
+ "observer_calculator_subtitle": "Choose your site to find out the exact date",
+ "observer_calculator_select_label": "Your observation site",
+ "observer_calculator_table_site": "Site",
+ "observer_calculator_table_date": "2026 date",
+ "observer_calculator_table_time": "Time",
+ "observer_calculator_result_heliacal": "Heliacal rising",
+ "observer_calculator_result_window": "Observation window",
+ "observer_map_title": "Map of observation sites",
+ "observer_map_subtitle": "Seven landmark locations across the archipelago",
+ "observer_timeline_title": "Observation timeline",
+ "observer_phase1_time": "4:30 am",
+ "observer_phase1_title": "Preparation",
+ "observer_phase1_desc": "Arrive on site, let your eyes adapt to the darkness",
+ "observer_phase2_time": "5:00 am",
+ "observer_phase2_title": "Search",
+ "observer_phase2_desc": "Look towards the East-Southeast, near the horizon",
+ "observer_phase3_time": "5:15 am",
+ "observer_phase3_title": "Appearance",
+ "observer_phase3_desc": "Sirius emerges from the dawn glow",
+ "observer_phase4_time": "5:30 am",
+ "observer_phase4_title": "Observation",
+ "observer_phase4_desc": "The optimal moment to contemplate",
+ "observer_equipment_title": "Recommended equipment",
+ "observer_equipment_essential_badge": "Essential",
+ "observer_equipment_binoculars_name": "Binoculars",
+ "observer_equipment_binoculars_desc": "7x50 or 10x50 recommended",
+ "observer_equipment_lamp_name": "Red lamp",
+ "observer_equipment_lamp_desc": "Preserves night vision",
+ "observer_equipment_compass_name": "Compass",
+ "observer_equipment_compass_desc": "To find East",
+ "observer_equipment_clothes_name": "Warm clothes",
+ "observer_equipment_clothes_desc": "Mornings are cool",
+ "observer_equipment_notebook_name": "Notebook",
+ "observer_equipment_notebook_desc": "To record your observations",
+ "observer_tips_title": "Practical tips",
+ "observer_tip_weather_title": "Ideal weather",
+ "observer_tip_weather_desc": "Clear sky to the East, no low clouds, moderate humidity",
+ "observer_tip_moon_title": "Moon phase",
+ "observer_tip_moon_desc": "New moon or thin crescent for a darker sky",
+ "observer_tip_apps_title": "Useful apps",
+ "observer_tip_apps_desc": "Stellarium, SkySafari, Star Walk to locate the constellations",
+ "observer_tip_group_title": "As a group",
+ "observer_tip_group_desc": "Share this unique moment with family and friends",
+
+ "globe_title": "The wave phenomenon",
+ "globe_p1": "The heliacal rising of Sirius does not happen simultaneously across the Earth. Like a cosmic wave, it moves from East to West, first reaching Réunion in late June, then sweeping across Africa, before finally reaching the Caribbean in July.",
+ "globe_p2": "This animation shows the progression of this \"planetary wave\", following Earth's rotation and the position of Sirius in the sky. Each place experiences this sacred moment on a precise date, forming a natural cosmic calendar that has guided civilisations for millennia.",
+ "globe_controls_hint": "Drag to rotate · scroll to zoom",
+ "globe_timeline_title": "Timeline of the wave",
+
+ "associations_title": "Associations celebrating Wep Ronpet",
+ "associations_subtitle": "Discover the events and communities celebrating the Kamit New Year",
+ "associations_events_title": "Wep Ronpet events",
+ "associations_event1_title": "Kamite New Year",
+ "associations_event1_organizer": "Afrocentricity International & Famille Muntu",
+ "associations_event1_desc": "A sacred time of passage into a new cosmic rotation, lived in harmony with the laws of the universe. Ceremony and rituals, Kamite gastronomy, artisan market.",
+ "associations_event2_title": "Kamit New Year",
+ "associations_event2_organizer": "Mouvement Politique Spirituel MUN",
+ "associations_event2_desc": "Celebration with the New Moon. Ceremony, rituals, conferences, Kamit dinner, dance evening.",
+ "associations_community_title": "Community & resources",
+ "associations_link1_title": "14th Member",
+ "associations_link1_desc": "Website â Events",
+ "associations_link2_title": "Mouvement Politique Spirituel MUN",
+ "associations_link2_desc": "Official Facebook page",
+ "associations_video_title": "Discover Wep Ronpet",
+ "associations_note": "Dates, venues and links should be confirmed each year with the organisers â the information above is provided as a guide only.",
+
+ "footer_tagline": "A project celebrating African and Caribbean astronomical heritage through the observation of the heliacal rising of Sirius.",
+ "footer_links_title": "Quick links",
+ "footer_resources_title": "Resources",
+ "footer_resources_stellarium": "Stellarium",
+ "footer_resources_guide": "PDF guide",
+ "footer_resources_references": "References",
+ "footer_resources_contact": "Contact",
+ "footer_next_title": "Next observation",
+ "footer_copyright_prefix": "Project made with â€ïž by",
+ "footer_and": "and",
+ "footer_quote": "\"The stars are the ancestors watching over us\" â African proverb",
+ "footer_rights": "Sirius Gwada. Look up to the sky."
+}
diff --git a/messages/fr.json b/messages/fr.json
new file mode 100644
index 0000000..e9eecba
--- /dev/null
+++ b/messages/fr.json
@@ -0,0 +1,227 @@
+{
+ "$schema": "https://inlang.com/schema/inlang-message-format",
+
+ "meta_title": "Sirius en Guadeloupe â Wep Ronpet, le lever hĂ©liaque",
+ "meta_description": "Calculez et comprenez le lever héliaque de Sirius en Guadeloupe : astronomie, héritage égyptien et dogon, guide d'observation.",
+
+ "skip_to_content": "Aller au contenu",
+ "lang_name_fr": "Français",
+ "lang_name_en": "English",
+ "lang_name_ht": "KreyĂČl",
+
+ "nav_home": "Accueil",
+ "nav_science": "Sirius & Science",
+ "nav_culture": "Culture & Savoirs",
+ "nav_observer": "Observer",
+ "nav_associations": "Associations",
+
+ "hero_eyebrow": "Wep Ronpet",
+ "hero_title1": "Sirius",
+ "hero_title2": "en Guadeloupe",
+ "hero_subtitle": "L'Ouverture de l'Année Cosmique",
+ "hero_description": "Le rendez-vous millénaire entre Ciel, Science et Culture",
+ "hero_date_label": "Prochain lever héliaque",
+ "hero_cta_predictions": "Découvrir les prédictions",
+ "hero_cta_learn": "En savoir plus",
+
+ "home_intro_title": "Sirius et Wep Ronpet",
+ "home_intro_subtitle": "L'Ouverture de l'AnnĂ©e â le Nouvel An cosmique des anciens Ăgyptiens",
+ "home_intro_p1": "Wep Ronpet â « l'Ouverture de l'AnnĂ©e » en Ă©gyptien ancien â marquait le jour le plus sacrĂ© du calendrier Ă©gyptien. Ce jour correspondait au lever hĂ©liaque de Sirius, quand l'Ă©toile rĂ©apparaissait Ă l'aube aprĂšs 70 jours d'invisibilitĂ©.",
+ "home_intro_p2": "Le lever hĂ©liaque de Sirius n'est pas qu'un simple phĂ©nomĂšne astronomique. C'est un rendez-vous millĂ©naire entre l'humanitĂ© et le cosmos, un moment oĂč science et spiritualitĂ© se rencontrent dans la lumiĂšre de l'aube.",
+ "home_intro_p3": "En Guadeloupe, observer ce phĂ©nomĂšne nous connecte directement aux racines africaines, oĂč Sirius Ă©tait vĂ©nĂ©rĂ©e comme l'annonciatrice de la vie et du renouveau.",
+ "feature_brightest_title": "L'étoile la plus brillante",
+ "feature_brightest_desc": "Sirius brille avec une magnitude de -1,46, dominant notre ciel nocturne.",
+ "feature_rising_title": "Le lever héliaque",
+ "feature_rising_desc": "Sa premiÚre apparition à l'aube aprÚs 70 jours d'invisibilité marque un événement cosmique.",
+ "feature_heritage_title": "Héritage ancestral",
+ "feature_heritage_desc": "De l'Ăgypte ancienne aux Dogons du Mali, Sirius guide l'humanitĂ© depuis des millĂ©naires.",
+
+ "science_title": "Sirius & Science",
+ "science_subtitle": "Comprendre la danse cosmique entre Terre, Soleil et Sirius",
+ "science_tab_mechanics": "Mécanique céleste",
+ "science_tab_arcus": "Arcus Visionis",
+ "science_tab_factors": "Facteurs d'influence",
+ "science_tab_calc": "Méthode de calcul",
+ "science_mechanics_title": "Le ballet cosmique",
+ "science_mechanics_p1": "Le lever hĂ©liaque est le fruit d'une chorĂ©graphie cĂ©leste prĂ©cise. Pendant environ 70 jours, Sirius reste invisible, cachĂ©e par l'Ă©clat du Soleil. Son retour Ă l'aube marque un moment unique oĂč l'Ă©toile se lĂšve juste avant le Soleil, visible quelques instants dans les lueurs du crĂ©puscule matinal.",
+ "science_mechanics_p2": "La Terre, dans son mouvement orbital annuel, modifie notre perspective sur les étoiles. Quand le Soleil se trouve entre nous et Sirius, l'étoile devient invisible. C'est seulement quand l'angle devient favorable que Sirius réapparaßt.",
+ "science_diagram_sun": "Soleil",
+ "science_diagram_earth": "Terre",
+ "science_diagram_sirius": "Sirius",
+ "science_arcus_title": "L'arc de visibilité",
+ "science_arcus_p1": "L'Arcus Visionis est l'angle critique : le Soleil doit ĂȘtre Ă environ 9 Ă 10° sous l'horizon pour que Sirius devienne visible. C'est un Ă©quilibre dĂ©licat entre la brillance de l'Ă©toile et la luminositĂ© du ciel.",
+ "science_arcus_p2": "Pour Sirius, avec sa magnitude exceptionnelle de -1,46, cet angle est relativement faible comparĂ© Ă d'autres Ă©toiles moins brillantes. C'est pourquoi elle est l'une des premiĂšres Ă ĂȘtre visible Ă l'aube.",
+ "science_arcus_horizon_label": "Horizon",
+ "science_factor_magnitude_title": "Magnitude",
+ "science_factor_magnitude_desc": "Sirius brille Ă -1,46, la rendant visible mĂȘme dans des conditions difficiles. Plus une Ă©toile est brillante, plus tĂŽt elle perce les lueurs de l'aube.",
+ "science_factor_latitude_title": "Latitude",
+ "science_factor_latitude_desc": "à 16°N en Guadeloupe, les astres se lÚvent presque verticalement. Cette géométrie tropicale influence la durée du crépuscule et la visibilité.",
+ "science_factor_atmosphere_title": "AtmosphĂšre",
+ "science_factor_atmosphere_desc": "L'humidité caribéenne et les brumes de sable saharien peuvent retarder la visibilité de plusieurs jours. Un ciel sec et clair est idéal.",
+ "science_calc_title": "Calcul du lever héliaque de Sirius",
+ "science_calc_formula_label": "Formule principale",
+ "science_calc_formula": "Date du lever héliaque = Date de conjonction + (Arcus Visionis / Vitesse angulaire du Soleil)",
+ "science_calc_step1_title": "Coordonnées de la Guadeloupe",
+ "science_calc_step1_value": "Latitude : 16,25°N â Longitude : 61,58°O",
+ "science_calc_step2_title": "Position de Sirius",
+ "science_calc_step2_ra": "Ascension droite : 6h 45m 09s",
+ "science_calc_step2_dec": "Déclinaison : -16° 42' 58\"",
+ "science_calc_arcus_title": "Arcus Visionis",
+ "science_calc_arcus_desc": "Angle minimal entre le Soleil et une Ă©toile pour que celle-ci devienne visible â environ 2° de hauteur au-dessus de l'horizon pour une Ă©toile aussi brillante que Sirius, atteint autour de 50 minutes avant le lever du Soleil.",
+ "science_calc_sources_title": "Méthode et sources",
+ "science_calc_sources_text": "Les dates par site sont interpolĂ©es Ă partir des tables de Jean Meeus (arc de vision en fonction de la latitude) et recoupĂ©es avec les calculs de l'astronome Jeffrey L. Hunt (whenthecurveslineup.com). Ă 16°N, l'interpolation entre 10°N (17 juillet) et 20°N (24 juillet) donne un lever hĂ©liaque autour du 22-23 juillet â cohĂ©rent avec l'observation traditionnelle en Guadeloupe. La date rĂ©elle observĂ©e dĂ©pend toujours de la mĂ©tĂ©o et de la clartĂ© de l'horizon Est.",
+
+ "culture_title": "Culture & Savoirs",
+ "culture_subtitle": "Un héritage millénaire qui unit l'Afrique et les Caraïbes",
+ "culture_egypt_title": "Ăgypte : Sothis, la dĂ©esse du Nil",
+ "culture_egypt_desc": "Pour les anciens Ăgyptiens, le lever hĂ©liaque de Sirius (Sothis) Ă©tait l'Ă©vĂ©nement le plus important de l'annĂ©e. Il annonçait la crue du Nil, source de vie et de fertilitĂ©. Ce « retour » de l'Ă©toile marquait le Nouvel An et symbolisait la renaissance, associĂ©e Ă la dĂ©esse Isis.",
+ "culture_dogon_title": "Dogon : les gardiens du savoir stellaire",
+ "culture_dogon_desc": "Le peuple Dogon du Mali possĂšde un savoir stupĂ©fiant sur Sirius. Ils connaissaient l'existence de Sirius B, une naine blanche invisible Ă l'Ćil nu, bien avant sa dĂ©couverte scientifique. Leur cycle rituel de 60 ans, le Sigui, est directement liĂ© Ă leur comprĂ©hension du systĂšme de Sirius.",
+ "culture_caribbean_title": "CaraĂŻbes : la navigation stellaire",
+ "culture_caribbean_desc": "Dans les CaraĂŻbes, Sirius a guidĂ© les navigateurs depuis des siĂšcles. Les peuples autochtones et les marins africains utilisaient son lever pour marquer les saisons et naviguer entre les Ăźles. Aujourd'hui encore, elle reste un repĂšre fondamental pour les pĂȘcheurs traditionnels.",
+ "culture_timeline_title": "Chronologie du savoir",
+ "culture_timeline_1_date": "3000 av. J.-C.",
+ "culture_timeline_1_title": "Ăgypte ancienne",
+ "culture_timeline_1_desc": "Premier calendrier basé sur Sirius",
+ "culture_timeline_2_date": "XIIIá” siĂšcle",
+ "culture_timeline_2_title": "Migration dogon",
+ "culture_timeline_2_desc": "Préservation du savoir astronomique",
+ "culture_timeline_3_date": "XVá”-XVIIá” siĂšcle",
+ "culture_timeline_3_title": "Traversée atlantique",
+ "culture_timeline_3_desc": "Le savoir africain voyage vers les CaraĂŻbes",
+ "culture_timeline_4_date": "Aujourd'hui",
+ "culture_timeline_4_title": "Renaissance",
+ "culture_timeline_4_desc": "Redécouverte et célébration du Wep Ronpet en Guadeloupe",
+
+ "dogon_title": "Les Dogon, gardiens du ciel",
+ "dogon_intro": "Le peuple Dogon du Mali cultive depuis des siÚcles une cosmogonie centrée sur Sirius, transmise oralement de génération en génération.",
+ "dogon_tab_cosmogony": "Cosmogonie",
+ "dogon_tab_system": "SystĂšme de Sirius",
+ "dogon_tab_astronomy": "Astronomie dogon",
+ "dogon_tab_heritage": "Héritage",
+ "dogon_cosmogony_title": "La cosmogonie dogon",
+ "dogon_cosmogony_p1": "Sigi Tolo â Sirius, l'Ă©toile la plus brillante du ciel â est au centre d'une cosmogonie dogon d'une grande sophistication, transmise oralement pendant des millĂ©naires.",
+ "dogon_cosmogony_p2": "Le Sigui, célébré tous les 60 ans, marque le renouvellement du monde et commémore la révélation de la parole aux hommes. Cette périodicité d'environ 60 ans se rapproche de l'orbite de 50 ans de Sirius B autour de Sirius A, ajustée par des considérations rituelles.",
+ "dogon_cosmogony_nommo_title": "Le Nommo",
+ "dogon_cosmogony_nommo_desc": "Ătre amphibie primordial venu de Sirius, le Nommo aurait apportĂ© la civilisation et les savoirs fondateurs aux ancĂȘtres dogon.",
+ "dogon_system_sigutolo_title": "Sigi Tolo (Sirius A)",
+ "dogon_system_sigutolo_desc": "L'étoile principale, source de lumiÚre et de vie. Associée à la féminité et à la fécondité, elle guide les saisons et les récoltes.",
+ "dogon_system_potolo_title": "Po Tolo (Sirius B)",
+ "dogon_system_potolo_desc": "Compagnon invisible Ă l'Ćil nu, dĂ©crit comme « lourd » et « blanc ». Son orbite de 50 ans autour de Sirius A n'a Ă©tĂ© confirmĂ©e par les astronomes occidentaux qu'en 1862 â le cĆur du mystĂšre dogon.",
+ "dogon_system_emmeya_title": "Emme Ya Tolo",
+ "dogon_system_emmeya_desc": "Une troisiÚme étoile hypothétique, quatre fois plus légÚre que Po Tolo et sur une orbite plus large. Non confirmée par l'astronomie moderne.",
+ "dogon_mystery_title": "Le mystĂšre du savoir",
+ "dogon_mystery_theory1_title": "Transmission ancienne",
+ "dogon_mystery_theory1_desc": "Un héritage venu d'une civilisation antérieure avancée.",
+ "dogon_mystery_theory2_title": "Contact",
+ "dogon_mystery_theory2_desc": "Le récit des Nommo, venus de Sirius selon la tradition orale.",
+ "dogon_mystery_theory3_title": "Observation minutieuse",
+ "dogon_mystery_theory3_desc": "Une déduction patiente à partir des perturbations observées sur Sirius A.",
+ "dogon_astronomy_geometry_title": "Géométrie sacrée",
+ "dogon_astronomy_geometry_desc": "Des figures géométriques complexes représentent les mouvements célestes et les cycles cosmiques.",
+ "dogon_astronomy_calendar_title": "Calendrier lunaire",
+ "dogon_astronomy_calendar_desc": "Un systÚme calendaire sophistiqué fondé sur les phases lunaires et la position de Sirius, au service de l'agriculture.",
+ "dogon_astronomy_planets_title": "Connaissance planétaire",
+ "dogon_astronomy_planets_desc": "Une description des anneaux de Saturne et des lunes de Jupiter, invisibles sans télescope.",
+ "dogon_astronomy_universe_title": "Structure de l'univers",
+ "dogon_astronomy_universe_desc": "Un univers conçu comme infini, fait de mondes multiples â une intuition proche de la cosmologie moderne.",
+ "dogon_calc_example_title": "Une correspondance troublante",
+ "dogon_calc_example_text": "Période orbitale de Po Tolo : 50 ans. Ajustement rituel : à 1,2. Période du Sigui : 60 ans. Concordance avec l'orbite réelle de Sirius B (50,1 ans) : 99,8 %.",
+ "dogon_heritage_1_date": "Antiquité",
+ "dogon_heritage_1_desc": "Liens possibles avec les prĂȘtres Ă©gyptiens qui vĂ©nĂ©raient Sothis (Sirius)",
+ "dogon_heritage_2_date": "XIIIá” siĂšcle",
+ "dogon_heritage_2_desc": "Migration vers les falaises de Bandiagara au Mali, préservation des traditions",
+ "dogon_heritage_3_date": "1931-1956",
+ "dogon_heritage_3_desc": "L'étude ethnographique de Marcel Griaule révÚle le savoir astronomique dogon",
+ "dogon_heritage_4_date": "Aujourd'hui",
+ "dogon_heritage_4_desc": "Les Dogon continuent d'inspirer chercheurs et scientifiques du monde entier",
+ "dogon_heritage_diaspora_title": "Une influence qui traverse l'Atlantique",
+ "dogon_heritage_diaspora_desc": "Les traditions astronomiques africaines, dogon comprises, ont traversé l'Atlantique avec la diaspora, enrichissant les pratiques spirituelles et calendaires des Antilles.",
+ "dogon_heritage_diaspora_haiti": "Vaudou et astronomie sacrée",
+ "dogon_heritage_diaspora_guadeloupe": "Traditions du gwoka et cycles cosmiques",
+ "dogon_heritage_diaspora_martinique": "BĂšlĂš et rythmes stellaires",
+ "dogon_heritage_diaspora_jamaica": "Rastafari et conscience cosmique",
+
+ "observer_title": "Observer",
+ "observer_subtitle": "OĂč, quand et comment observer le lever hĂ©liaque en Guadeloupe",
+ "observer_calculator_title": "Calculateur de prédictions",
+ "observer_calculator_subtitle": "Choisissez votre site pour connaĂźtre la date exacte",
+ "observer_calculator_select_label": "Votre lieu d'observation",
+ "observer_calculator_table_site": "Site",
+ "observer_calculator_table_date": "Date 2026",
+ "observer_calculator_table_time": "Heure",
+ "observer_calculator_result_heliacal": "Lever héliaque",
+ "observer_calculator_result_window": "FenĂȘtre d'observation",
+ "observer_map_title": "Carte des sites d'observation",
+ "observer_map_subtitle": "Sept lieux emblématiques répartis sur l'archipel",
+ "observer_timeline_title": "Chronologie de l'observation",
+ "observer_phase1_time": "04h30",
+ "observer_phase1_title": "Préparation",
+ "observer_phase1_desc": "Arrivez sur site, laissez vos yeux s'adapter à l'obscurité",
+ "observer_phase2_time": "05h00",
+ "observer_phase2_title": "Recherche",
+ "observer_phase2_desc": "Cherchez vers l'Est-Sud-Est, prĂšs de l'horizon",
+ "observer_phase3_time": "05h15",
+ "observer_phase3_title": "Apparition",
+ "observer_phase3_desc": "Sirius émerge de la lueur de l'aube",
+ "observer_phase4_time": "05h30",
+ "observer_phase4_title": "Observation",
+ "observer_phase4_desc": "Moment optimal pour contempler",
+ "observer_equipment_title": "Ăquipement recommandĂ©",
+ "observer_equipment_essential_badge": "Essentiel",
+ "observer_equipment_binoculars_name": "Jumelles",
+ "observer_equipment_binoculars_desc": "7x50 ou 10x50 recommandées",
+ "observer_equipment_lamp_name": "Lampe rouge",
+ "observer_equipment_lamp_desc": "Préserve la vision nocturne",
+ "observer_equipment_compass_name": "Boussole",
+ "observer_equipment_compass_desc": "Pour trouver l'Est",
+ "observer_equipment_clothes_name": "VĂȘtements chauds",
+ "observer_equipment_clothes_desc": "Les matins sont frais",
+ "observer_equipment_notebook_name": "Carnet de notes",
+ "observer_equipment_notebook_desc": "Pour documenter l'observation",
+ "observer_tips_title": "Conseils pratiques",
+ "observer_tip_weather_title": "Météo idéale",
+ "observer_tip_weather_desc": "Ciel dégagé à l'Est, pas de nuages bas, humidité modérée",
+ "observer_tip_moon_title": "Phase lunaire",
+ "observer_tip_moon_desc": "Nouvelle lune ou croissant fin pour un ciel plus sombre",
+ "observer_tip_apps_title": "Applications utiles",
+ "observer_tip_apps_desc": "Stellarium, SkySafari, Star Walk pour repérer les constellations",
+ "observer_tip_group_title": "En groupe",
+ "observer_tip_group_desc": "Partagez ce moment unique avec famille et amis",
+
+ "globe_title": "Le phénomÚne de la vague",
+ "globe_p1": "Le lever héliaque de Sirius ne se produit pas simultanément sur toute la Terre. Telle une vague cosmique, il progresse d'Est en Ouest, touchant d'abord La Réunion fin juin, puis traversant l'Afrique, pour finalement atteindre les Caraïbes en juillet.",
+ "globe_p2": "Cette animation montre la progression de cette « vague planétaire » qui suit la rotation terrestre et la position de Sirius dans le ciel. Chaque lieu expérimente ce moment sacré à une date précise, créant un calendrier cosmique naturel qui a guidé les civilisations pendant des millénaires.",
+ "globe_controls_hint": "Glisser pour tourner · molette pour zoomer",
+ "globe_timeline_title": "Chronologie de la vague",
+
+ "associations_title": "Associations qui fĂȘtent le Wep Ronpet",
+ "associations_subtitle": "Découvrez les événements et communautés qui célÚbrent le Nouvel An Kamit",
+ "associations_events_title": "ĂvĂ©nements Wep Ronpet",
+ "associations_event1_title": "Nouvel An Kamite",
+ "associations_event1_organizer": "Afrocentricity International & Famille Muntu",
+ "associations_event1_desc": "Temps sacré de passage vers une nouvelle rotation cosmique, vécu en harmonie avec les lois de l'univers. Cérémonie et rituels, gastronomie kamite, marché artisanal.",
+ "associations_event2_title": "Nouvel An Kamit",
+ "associations_event2_organizer": "Mouvement Politique Spirituel MUN",
+ "associations_event2_desc": "Célébration avec la Nouvelle Lune. Cérémonie, rituels, conférences, dßner kamit, soirée dansante.",
+ "associations_community_title": "Communauté & ressources",
+ "associations_link1_title": "14Ăšme Membre",
+ "associations_link1_desc": "Site web â ĂvĂ©nements",
+ "associations_link2_title": "Mouvement Politique Spirituel MUN",
+ "associations_link2_desc": "Page Facebook officielle",
+ "associations_video_title": "Découvrir le Wep Ronpet",
+ "associations_note": "Dates, lieux et liens Ă confirmer chaque annĂ©e auprĂšs des organisateurs â les informations ci-dessus sont donnĂ©es Ă titre indicatif.",
+
+ "footer_tagline": "Un projet célébrant le patrimoine astronomique africain et caribéen à travers l'observation du lever héliaque de Sirius.",
+ "footer_links_title": "Liens rapides",
+ "footer_resources_title": "Ressources",
+ "footer_resources_stellarium": "Stellarium",
+ "footer_resources_guide": "Guide PDF",
+ "footer_resources_references": "Références",
+ "footer_resources_contact": "Contact",
+ "footer_next_title": "Prochaine observation",
+ "footer_copyright_prefix": "Projet rĂ©alisĂ© avec â€ïž par",
+ "footer_and": "et",
+ "footer_quote": "« Les Ă©toiles sont les ancĂȘtres qui veillent sur nous » â proverbe africain",
+ "footer_rights": "Sirius Gwada. Levez les yeux vers le ciel."
+}
diff --git a/messages/ht.json b/messages/ht.json
new file mode 100644
index 0000000..731b6fb
--- /dev/null
+++ b/messages/ht.json
@@ -0,0 +1,95 @@
+{
+ "$schema": "https://inlang.com/schema/inlang-message-format",
+
+ "meta_title": "Sirius nan Gwadloup â Wep Ronpet, leve elyak la",
+
+ "skip_to_content": "Ale nan kontni an",
+ "lang_name_fr": "Français",
+ "lang_name_en": "English",
+ "lang_name_ht": "KreyĂČl",
+
+ "nav_home": "AkĂšy",
+ "nav_science": "Sirius & Syans",
+ "nav_culture": "Kilti & Konesans",
+ "nav_observer": "ObsĂšve",
+ "nav_associations": "Asosyasyon",
+
+ "hero_eyebrow": "Wep Ronpet",
+ "hero_title1": "Sirius",
+ "hero_title2": "nan Gwadloup",
+ "hero_subtitle": "OuvĂšti Ane Kosmik la",
+ "hero_description": "Randevou milenĂš ant SyĂšl, Syans ak Kilti",
+ "hero_date_label": "Pwochen leve elyak",
+ "hero_cta_predictions": "Dekouvri prediksyon yo",
+ "hero_cta_learn": "Aprann plis",
+
+ "home_intro_title": "Sirius ak Wep Ronpet",
+ "home_intro_subtitle": "OuvĂšti Ane a â NouvĂšl An kosmik ansyen ejipsyen yo",
+ "feature_brightest_title": "Zetwal ki pi klere a",
+ "feature_rising_title": "Leve elyak la",
+ "feature_heritage_title": "Eritaj zansĂšt",
+
+ "science_title": "Sirius & Syans",
+ "science_tab_mechanics": "Mekanik selĂšs",
+ "science_tab_arcus": "Arcus Visionis",
+ "science_tab_factors": "FaktĂš enfliyans",
+ "science_tab_calc": "MetĂČd kalkil",
+ "science_diagram_sun": "SolĂšy",
+ "science_diagram_earth": "LatĂš",
+ "science_diagram_sirius": "Sirius",
+ "science_factor_magnitude_title": "Mayitid",
+ "science_factor_latitude_title": "Latitid",
+ "science_factor_atmosphere_title": "AtmosfĂš",
+
+ "culture_title": "Kilti & Konesans",
+ "culture_egypt_title": "Lejip: Sothis, deyĂšs Nil la",
+ "culture_dogon_title": "Dogon: gadyen konesans zetwal yo",
+ "culture_caribbean_title": "Karayib: navigasyon selĂšs",
+ "culture_timeline_title": "Kwonoloji konesans lan",
+
+ "dogon_title": "Dogon yo, gadyen syĂšl la",
+ "dogon_tab_cosmogony": "Kosmogoni",
+ "dogon_tab_system": "SistĂšm Sirius la",
+ "dogon_tab_astronomy": "Astwonomi dogon",
+ "dogon_tab_heritage": "Eritaj",
+
+ "observer_title": "ObsĂšve",
+ "observer_calculator_title": "KalkilatĂš prediksyon",
+ "observer_calculator_select_label": "Kote w ap obsĂšve",
+ "observer_calculator_table_site": "Sit",
+ "observer_calculator_table_date": "Dat 2026",
+ "observer_calculator_table_time": "LĂš",
+ "observer_map_title": "Kat sit obsĂšvasyon yo",
+ "observer_timeline_title": "Kwonoloji obsĂšvasyon an",
+ "observer_phase1_title": "Preparasyon",
+ "observer_phase2_title": "RechĂšch",
+ "observer_phase3_title": "Aparisyon",
+ "observer_phase4_title": "ObsĂšvasyon",
+ "observer_equipment_title": "Ekipman rekĂČmande",
+ "observer_equipment_essential_badge": "EsansyĂšl",
+ "observer_equipment_binoculars_name": "JimĂšl",
+ "observer_equipment_lamp_name": "Lanp wouj",
+ "observer_equipment_compass_name": "BousĂČl",
+ "observer_equipment_clothes_name": "Rad cho",
+ "observer_equipment_notebook_name": "Kaye nĂČt",
+ "observer_tips_title": "KonsĂšy pratik",
+
+ "globe_title": "FenomĂšn vag la",
+ "globe_controls_hint": "Trennen pou vire · molÚt pou zoome",
+
+ "associations_title": "Asosyasyon ki fete Wep Ronpet",
+ "associations_subtitle": "Dekouvri evĂšnman ak kominote ki selebre NouvĂšl An Kamit la",
+ "associations_events_title": "EvĂšnman Wep Ronpet",
+ "associations_event1_title": "NouvĂšl An Kamite",
+ "associations_event2_title": "NouvĂšl An Kamit",
+ "associations_community_title": "Kominote & resous",
+ "associations_video_title": "Dekouvri Wep Ronpet",
+
+ "footer_links_title": "Lyen rapid",
+ "footer_resources_title": "Resous",
+ "footer_next_title": "Pwochen obsĂšvasyon",
+ "footer_copyright_prefix": "PwojĂš fĂšt ak â€ïž pa",
+ "footer_and": "ak",
+ "footer_quote": "« Zetwal yo se zansĂšt k ap veye sou nou » â pwovĂšb afriken",
+ "footer_rights": "Sirius Gwada. Leve je nou gade syĂšl la."
+}
diff --git a/package-lock.json b/package-lock.json
index 626ccce..1eff334 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,431 +1,339 @@
{
"name": "gwada-sirius",
- "version": "1.5.0",
+ "version": "2.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "gwada-sirius",
- "version": "1.5.0",
- "dependencies": {
- "animejs": "^3.2.1"
- },
+ "version": "2.0.0",
"devDependencies": {
- "@sveltejs/vite-plugin-svelte": "^3.0.0",
+ "@11ty/eleventy": "^3.1.6",
+ "@11ty/eleventy-plugin-vite": "^8.0.0",
+ "@fontsource-variable/fraunces": "^5.2.9",
+ "@fontsource/atkinson-hyperlegible": "^5.2.8",
+ "@inlang/paraglide-js": "^2.20.2",
+ "@sveltejs/vite-plugin-svelte": "^7.1.4",
"gh-pages": "^6.1.1",
- "svelte": "^4.2.7",
- "vite": "^5.0.8"
+ "svelte": "^5.56.4",
+ "vite": "^8.1.3"
}
},
- "node_modules/@ampproject/remapping": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
- "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
+ "node_modules/@11ty/dependency-tree": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@11ty/dependency-tree/-/dependency-tree-4.0.2.tgz",
+ "integrity": "sha512-RTF6VTZHatYf7fSZBUN3RKwiUeJh5dhWV61gDPrHhQF2/gzruAkYz8yXuvGLx3w3ZBKreGrR+MfYpSVkdbdbLA==",
"dev": true,
- "license": "Apache-2.0",
+ "license": "MIT",
"dependencies": {
- "@jridgewell/gen-mapping": "^0.3.5",
- "@jridgewell/trace-mapping": "^0.3.24"
+ "@11ty/eleventy-utils": "^2.0.1"
+ }
+ },
+ "node_modules/@11ty/dependency-tree-esm": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@11ty/dependency-tree-esm/-/dependency-tree-esm-2.0.4.tgz",
+ "integrity": "sha512-MYKC0Ac77ILr1HnRJalzKDlb9Z8To3kXQCltx299pUXXUFtJ1RIONtULlknknqW8cLe19DLVgmxVCtjEFm7h0A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@11ty/eleventy-utils": "^2.0.7",
+ "acorn": "^8.15.0",
+ "dependency-graph": "^1.0.0",
+ "normalize-path": "^3.0.0"
+ }
+ },
+ "node_modules/@11ty/eleventy": {
+ "version": "3.1.6",
+ "resolved": "https://registry.npmjs.org/@11ty/eleventy/-/eleventy-3.1.6.tgz",
+ "integrity": "sha512-ZlSiR1PLdS2lv7TelBgWAhcvMiLNZkPBlLEb+lh7kGYZ+Mk0bo9qcYgVsewvw9W7Em0RH3wd01h5fAstNDh0zA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@11ty/dependency-tree": "^4.0.2",
+ "@11ty/dependency-tree-esm": "^2.0.4",
+ "@11ty/eleventy-dev-server": "^2.0.8",
+ "@11ty/eleventy-plugin-bundle": "^3.0.7",
+ "@11ty/eleventy-utils": "^2.0.7",
+ "@11ty/lodash-custom": "^4.17.21",
+ "@11ty/posthtml-urls": "^1.0.3",
+ "@11ty/recursive-copy": "^4.0.4",
+ "@sindresorhus/slugify": "^2.2.1",
+ "bcp-47-normalize": "^2.3.0",
+ "chokidar": "^3.6.0",
+ "debug": "^4.4.3",
+ "dependency-graph": "^1.0.0",
+ "entities": "^6.0.1",
+ "filesize": "^10.1.6",
+ "gray-matter": "^4.0.3",
+ "iso-639-1": "^3.1.5",
+ "js-yaml": "^4.1.1",
+ "kleur": "^4.1.5",
+ "liquidjs": "^10.27.0",
+ "luxon": "^3.7.2",
+ "markdown-it": "^14.2.0",
+ "minimist": "^1.2.8",
+ "moo": "0.5.2",
+ "node-retrieve-globals": "^6.0.1",
+ "nunjucks": "^3.2.4",
+ "picomatch": "^4.0.4",
+ "please-upgrade-node": "^3.2.0",
+ "posthtml": "^0.16.7",
+ "posthtml-match-helper": "^2.0.3",
+ "semver": "^7.8.1",
+ "slugify": "^1.6.9",
+ "tinyglobby": "^0.2.16"
+ },
+ "bin": {
+ "eleventy": "cmd.cjs"
},
"engines": {
- "node": ">=6.0.0"
+ "node": ">=18"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/11ty"
}
},
- "node_modules/@esbuild/aix-ppc64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz",
- "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==",
- "cpu": [
- "ppc64"
- ],
+ "node_modules/@11ty/eleventy-dev-server": {
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/@11ty/eleventy-dev-server/-/eleventy-dev-server-2.0.8.tgz",
+ "integrity": "sha512-15oC5M1DQlCaOMUq4limKRYmWiGecDaGwryr7fTE/oM9Ix8siqMvWi+I8VjsfrGr+iViDvWcH/TVI6D12d93mA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@11ty/eleventy-utils": "^2.0.1",
+ "chokidar": "^3.6.0",
+ "debug": "^4.4.0",
+ "finalhandler": "^1.3.1",
+ "mime": "^3.0.0",
+ "minimist": "^1.2.8",
+ "morphdom": "^2.7.4",
+ "please-upgrade-node": "^3.2.0",
+ "send": "^1.1.0",
+ "ssri": "^11.0.0",
+ "urlpattern-polyfill": "^10.0.0",
+ "ws": "^8.18.1"
+ },
+ "bin": {
+ "eleventy-dev-server": "cmd.js"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/11ty"
+ }
+ },
+ "node_modules/@11ty/eleventy-plugin-bundle": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/@11ty/eleventy-plugin-bundle/-/eleventy-plugin-bundle-3.0.7.tgz",
+ "integrity": "sha512-QK1tRFBhQdZASnYU8GMzpTdsMMFLVAkuU0gVVILqNyp09xJJZb81kAS3AFrNrwBCsgLxTdWHJ8N64+OTTsoKkA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@11ty/eleventy-utils": "^2.0.2",
+ "debug": "^4.4.0",
+ "posthtml-match-helper": "^2.0.3"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/11ty"
+ }
+ },
+ "node_modules/@11ty/eleventy-plugin-vite": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/@11ty/eleventy-plugin-vite/-/eleventy-plugin-vite-8.0.0.tgz",
+ "integrity": "sha512-dbKKhD+AMHcf832rEnt4FsSBWawQJCoHLePREz+oRGmqyud0lj3mZcqfDVxBJKqvtiUyE3VTtXX0po+CZQgg8A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@11ty/eleventy-utils": "^2.0.7",
+ "vite": "^8.0.9"
+ },
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/11ty"
+ }
+ },
+ "node_modules/@11ty/eleventy-utils": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@11ty/eleventy-utils/-/eleventy-utils-2.0.7.tgz",
+ "integrity": "sha512-6QE+duqSQ0GY9rENXYb4iPR4AYGdrFpqnmi59tFp9VrleOl0QSh8VlBr2yd6dlhkdtj7904poZW5PvGr9cMiJQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/11ty"
+ }
+ },
+ "node_modules/@11ty/lodash-custom": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/@11ty/lodash-custom/-/lodash-custom-4.17.21.tgz",
+ "integrity": "sha512-Mqt6im1xpb1Ykn3nbcCovWXK3ggywRJa+IXIdoz4wIIK+cvozADH63lexcuPpGS/gJ6/m2JxyyXDyupkMr5DHw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/11ty"
+ }
+ },
+ "node_modules/@11ty/posthtml-urls": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@11ty/posthtml-urls/-/posthtml-urls-1.0.3.tgz",
+ "integrity": "sha512-1YvhnkaNlFnnJic1rBMWmTC2adbuy+JQiBfl1Hecr1Wjjik1pQZmGyk/eC9zKX/FQv52s2Nht1Gi/UwhYqrBeg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "evaluate-value": "^2.0.0",
+ "http-equiv-refresh": "^2.0.1",
+ "list-to-array": "^1.1.0",
+ "parse-srcset": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/@11ty/recursive-copy": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@11ty/recursive-copy/-/recursive-copy-4.0.4.tgz",
+ "integrity": "sha512-oI7m8pa7/IAU/3lqRU9vjBbs20iKFo7x+1K9kT3aVira6scc1X9MjBdgLCHzLJeJ7iB6wydioA+kr9/qPnvmlQ==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "errno": "^1.0.0",
+ "junk": "^3.1.0",
+ "minimatch": "^3.1.5",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@emnapi/core": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.1.tgz",
+ "integrity": "sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==",
"dev": true,
"license": "MIT",
"optional": true,
- "os": [
- "aix"
- ],
- "engines": {
- "node": ">=12"
+ "dependencies": {
+ "@emnapi/wasi-threads": "1.2.2",
+ "tslib": "^2.4.0"
}
},
- "node_modules/@esbuild/android-arm": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz",
- "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==",
- "cpu": [
- "arm"
- ],
+ "node_modules/@emnapi/runtime": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.1.tgz",
+ "integrity": "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==",
"dev": true,
"license": "MIT",
"optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=12"
+ "dependencies": {
+ "tslib": "^2.4.0"
}
},
- "node_modules/@esbuild/android-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz",
- "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==",
- "cpu": [
- "arm64"
- ],
+ "node_modules/@emnapi/wasi-threads": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.2.tgz",
+ "integrity": "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==",
"dev": true,
"license": "MIT",
"optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=12"
+ "dependencies": {
+ "tslib": "^2.4.0"
}
},
- "node_modules/@esbuild/android-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz",
- "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==",
- "cpu": [
- "x64"
- ],
+ "node_modules/@fontsource-variable/fraunces": {
+ "version": "5.2.9",
+ "resolved": "https://registry.npmjs.org/@fontsource-variable/fraunces/-/fraunces-5.2.9.tgz",
+ "integrity": "sha512-Y6IjunlN9Ni723np+GIgAaKzCDBrPRrqNi01TZxHs5wtHYROWFM9W6yiT+/gGwSjWIRD18oX17kD/BRWekc/Lw==",
"dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=12"
+ "license": "OFL-1.1",
+ "funding": {
+ "url": "https://github.com/sponsors/ayuhito"
}
},
- "node_modules/@esbuild/darwin-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz",
- "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==",
- "cpu": [
- "arm64"
- ],
+ "node_modules/@fontsource/atkinson-hyperlegible": {
+ "version": "5.2.8",
+ "resolved": "https://registry.npmjs.org/@fontsource/atkinson-hyperlegible/-/atkinson-hyperlegible-5.2.8.tgz",
+ "integrity": "sha512-HciLcJ5DIK/OVOdo71EbEN4NnvDFlp6/SpAxtcbWf2aAdcsOuPqITxj5KNEXb48qSPSdnnZdGGnSJChPKi3/bA==",
"dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=12"
+ "license": "OFL-1.1",
+ "funding": {
+ "url": "https://github.com/sponsors/ayuhito"
}
},
- "node_modules/@esbuild/darwin-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz",
- "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==",
- "cpu": [
- "x64"
- ],
+ "node_modules/@inlang/paraglide-js": {
+ "version": "2.20.2",
+ "resolved": "https://registry.npmjs.org/@inlang/paraglide-js/-/paraglide-js-2.20.2.tgz",
+ "integrity": "sha512-V8iY3uu/vQU94gEag1bdC3glMJSp4Dg3XMwfnabZLBh1Dv0F++DvDYlMeniqv2+nHbnS/twB75AM140OmpHDEg==",
"dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=12"
+ "dependencies": {
+ "@inlang/recommend-sherlock": "^0.2.1",
+ "@inlang/sdk": "^2.10.0",
+ "commander": "11.1.0",
+ "consola": "3.4.0",
+ "json5": "2.2.3",
+ "unplugin": "^2.1.2",
+ "urlpattern-polyfill": "^10.0.0"
+ },
+ "bin": {
+ "paraglide-js": "bin/run.js"
+ },
+ "peerDependencies": {
+ "typescript": ">=5.6"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
}
},
- "node_modules/@esbuild/freebsd-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz",
- "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==",
- "cpu": [
- "arm64"
- ],
+ "node_modules/@inlang/recommend-sherlock": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/@inlang/recommend-sherlock/-/recommend-sherlock-0.2.1.tgz",
+ "integrity": "sha512-ckv8HvHy/iTqaVAEKrr+gnl+p3XFNwe5D2+6w6wJk2ORV2XkcRkKOJ/XsTUJbPSiyi4PI+p+T3bqbmNx/rDUlg==",
"dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=12"
+ "dependencies": {
+ "comment-json": "^4.2.3"
}
},
- "node_modules/@esbuild/freebsd-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz",
- "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==",
- "cpu": [
- "x64"
- ],
+ "node_modules/@inlang/sdk": {
+ "version": "2.10.2",
+ "resolved": "https://registry.npmjs.org/@inlang/sdk/-/sdk-2.10.2.tgz",
+ "integrity": "sha512-O1ki72SNK6LPagaGrvlioBb1mWKvump7cO7P85hfGZjdFTmDdn3icI0A6MvaBsB3P9KQHAjzyubnN1OslGufTw==",
"dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
+ "dependencies": {
+ "@lix-js/sdk": "0.4.10",
+ "@sinclair/typebox": "^0.31.17",
+ "kysely": "^0.28.12",
+ "sqlite-wasm-kysely": "0.3.0",
+ "uuid": "^14.0.0"
+ },
"engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-arm": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz",
- "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz",
- "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-ia32": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz",
- "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-loong64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz",
- "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==",
- "cpu": [
- "loong64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-mips64el": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz",
- "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==",
- "cpu": [
- "mips64el"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-ppc64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz",
- "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-riscv64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz",
- "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-s390x": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz",
- "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==",
- "cpu": [
- "s390x"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz",
- "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/netbsd-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz",
- "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "netbsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/openbsd-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz",
- "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "openbsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/sunos-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz",
- "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "sunos"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/win32-arm64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz",
- "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/win32-ia32": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz",
- "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/win32-x64": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz",
- "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
+ "node": ">=20.0.0"
}
},
"node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.12",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz",
- "integrity": "sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==",
+ "version": "0.3.13",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
+ "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -433,6 +341,17 @@
"@jridgewell/trace-mapping": "^0.3.24"
}
},
+ "node_modules/@jridgewell/remapping": {
+ "version": "2.3.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz",
+ "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ }
+ },
"node_modules/@jridgewell/resolve-uri": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
@@ -444,16 +363,16 @@
}
},
"node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.5.4",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz",
- "integrity": "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==",
+ "version": "1.5.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
+ "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
"dev": true,
"license": "MIT"
},
"node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.29",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz",
- "integrity": "sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==",
+ "version": "0.3.31",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz",
+ "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -461,6 +380,51 @@
"@jridgewell/sourcemap-codec": "^1.4.14"
}
},
+ "node_modules/@lix-js/sdk": {
+ "version": "0.4.10",
+ "resolved": "https://registry.npmjs.org/@lix-js/sdk/-/sdk-0.4.10.tgz",
+ "integrity": "sha512-0dMInAJK/67guTG5rRZaCEhvzC5cCXENOjaePA5AqMXrCE97kaY7SRor9e2vnoGsFIiGqXKlT0MCIoZj36G0gg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@lix-js/server-protocol-schema": "0.1.1",
+ "dedent": "1.5.1",
+ "human-id": "^4.1.1",
+ "js-sha256": "^0.11.0",
+ "kysely": "^0.28.12",
+ "sqlite-wasm-kysely": "0.3.0",
+ "uuid": "^14.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@lix-js/server-protocol-schema": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/@lix-js/server-protocol-schema/-/server-protocol-schema-0.1.1.tgz",
+ "integrity": "sha512-jBeALB6prAbtr5q4vTuxnRZZv1M2rKe8iNqRQhFJ4Tv7150unEa0vKyz0hs8Gl3fUGsWaNJBh3J8++fpbrpRBQ==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
+ "node_modules/@napi-rs/wasm-runtime": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.6.tgz",
+ "integrity": "sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "@tybys/wasm-util": "^0.10.3"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/Brooooooklyn"
+ },
+ "peerDependencies": {
+ "@emnapi/core": "^1.7.1",
+ "@emnapi/runtime": "^1.7.1"
+ }
+ },
"node_modules/@nodelib/fs.scandir": {
"version": "2.1.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
@@ -499,24 +463,20 @@
"node": ">= 8"
}
},
- "node_modules/@rollup/rollup-android-arm-eabi": {
- "version": "4.44.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.44.2.tgz",
- "integrity": "sha512-g0dF8P1e2QYPOj1gu7s/3LVP6kze9A7m6x0BZ9iTdXK8N5c2V7cpBKHV3/9A4Zd8xxavdhK0t4PnqjkqVmUc9Q==",
- "cpu": [
- "arm"
- ],
+ "node_modules/@oxc-project/types": {
+ "version": "0.138.0",
+ "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.138.0.tgz",
+ "integrity": "sha512-1a7ZKmrRTCoN1XMZ4L0PyyqrMnrNlLyPuOkdSX2MZg7IiIGRUyurNhAm73ptDOraoBcIordsIGKNPKUzy3ZmfA==",
"dev": true,
"license": "MIT",
- "optional": true,
- "os": [
- "android"
- ]
+ "funding": {
+ "url": "https://github.com/sponsors/Boshen"
+ }
},
- "node_modules/@rollup/rollup-android-arm64": {
- "version": "4.44.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.44.2.tgz",
- "integrity": "sha512-Yt5MKrOosSbSaAK5Y4J+vSiID57sOvpBNBR6K7xAaQvk3MkcNVV0f9fE20T+41WYN8hDn6SGFlFrKudtx4EoxA==",
+ "node_modules/@rolldown/binding-android-arm64": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.1.4.tgz",
+ "integrity": "sha512-EZLpf/8y7GXkkra90ML47kzik/GMP3EMcE9bPyHmRfxLC6z9+aW5A8poCsoxjrT5GfEcNAAvWwUHjvP1pUQkfw==",
"cpu": [
"arm64"
],
@@ -525,12 +485,15 @@
"optional": true,
"os": [
"android"
- ]
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
},
- "node_modules/@rollup/rollup-darwin-arm64": {
- "version": "4.44.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.44.2.tgz",
- "integrity": "sha512-EsnFot9ZieM35YNA26nhbLTJBHD0jTwWpPwmRVDzjylQT6gkar+zenfb8mHxWpRrbn+WytRRjE0WKsfaxBkVUA==",
+ "node_modules/@rolldown/binding-darwin-arm64": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.1.4.tgz",
+ "integrity": "sha512-aUi+HBvmYb7j8krl1+qJgkG8C17fO79gk3c+jPw4S8glRFc1DTija9S3EyaTSQUm5GJXYKDAsugBEhFHH2vYiQ==",
"cpu": [
"arm64"
],
@@ -539,12 +502,15 @@
"optional": true,
"os": [
"darwin"
- ]
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
},
- "node_modules/@rollup/rollup-darwin-x64": {
- "version": "4.44.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.44.2.tgz",
- "integrity": "sha512-dv/t1t1RkCvJdWWxQ2lWOO+b7cMsVw5YFaS04oHpZRWehI1h0fV1gF4wgGCTyQHHjJDfbNpwOi6PXEafRBBezw==",
+ "node_modules/@rolldown/binding-darwin-x64": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.1.4.tgz",
+ "integrity": "sha512-F7hHC3gwY11+vByKPRWqwGbeXWVgKmL+pTGCinaEhdihzBV2aQ0fvZOch9cXYUOKuKKq429HeYXOqQLc7wFCEg==",
"cpu": [
"x64"
],
@@ -553,26 +519,15 @@
"optional": true,
"os": [
"darwin"
- ]
- },
- "node_modules/@rollup/rollup-freebsd-arm64": {
- "version": "4.44.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.44.2.tgz",
- "integrity": "sha512-W4tt4BLorKND4qeHElxDoim0+BsprFTwb+vriVQnFFtT/P6v/xO5I99xvYnVzKWrK6j7Hb0yp3x7V5LUbaeOMg==",
- "cpu": [
- "arm64"
],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ]
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
},
- "node_modules/@rollup/rollup-freebsd-x64": {
- "version": "4.44.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.44.2.tgz",
- "integrity": "sha512-tdT1PHopokkuBVyHjvYehnIe20fxibxFCEhQP/96MDSOcyjM/shlTkZZLOufV3qO6/FQOSiJTBebhVc12JyPTA==",
+ "node_modules/@rolldown/binding-freebsd-x64": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.1.4.tgz",
+ "integrity": "sha512-sI5yw+7s92SK6odiEhD5lKCBlWcpjHS5qyqpVQbZAJ0fIzEUXrmbl3DH2ybR3PZogulNJF+COLtmA8hUfvkCCQ==",
"cpu": [
"x64"
],
@@ -581,12 +536,15 @@
"optional": true,
"os": [
"freebsd"
- ]
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
},
- "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
- "version": "4.44.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.44.2.tgz",
- "integrity": "sha512-+xmiDGGaSfIIOXMzkhJ++Oa0Gwvl9oXUeIiwarsdRXSe27HUIvjbSIpPxvnNsRebsNdUo7uAiQVgBD1hVriwSQ==",
+ "node_modules/@rolldown/binding-linux-arm-gnueabihf": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.1.4.tgz",
+ "integrity": "sha512-mCi0OKgEieFircrtVYmQAFGszRtMnZ6fpZAXrxanXAu7lqZcsK1E1RAaZNG0uKAnxox3B1f4EyQNnoyMfN1vAA==",
"cpu": [
"arm"
],
@@ -595,26 +553,15 @@
"optional": true,
"os": [
"linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-arm-musleabihf": {
- "version": "4.44.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.44.2.tgz",
- "integrity": "sha512-bDHvhzOfORk3wt8yxIra8N4k/N0MnKInCW5OGZaeDYa/hMrdPaJzo7CSkjKZqX4JFUWjUGm88lI6QJLCM7lDrA==",
- "cpu": [
- "arm"
],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
},
- "node_modules/@rollup/rollup-linux-arm64-gnu": {
- "version": "4.44.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.44.2.tgz",
- "integrity": "sha512-NMsDEsDiYghTbeZWEGnNi4F0hSbGnsuOG+VnNvxkKg0IGDvFh7UVpM/14mnMwxRxUf9AdAVJgHPvKXf6FpMB7A==",
+ "node_modules/@rolldown/binding-linux-arm64-gnu": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.1.4.tgz",
+ "integrity": "sha512-B9Ial3Kv5sh0SHnB1g/QWcUQCEvCF6QKGAl4zXypYj65mVI+B4AhFBwPtSN7pDrJeIx8Z7zdy4ntx+wQABom7w==",
"cpu": [
"arm64"
],
@@ -623,12 +570,15 @@
"optional": true,
"os": [
"linux"
- ]
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
},
- "node_modules/@rollup/rollup-linux-arm64-musl": {
- "version": "4.44.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.44.2.tgz",
- "integrity": "sha512-lb5bxXnxXglVq+7imxykIp5xMq+idehfl+wOgiiix0191av84OqbjUED+PRC5OA8eFJYj5xAGcpAZ0pF2MnW+A==",
+ "node_modules/@rolldown/binding-linux-arm64-musl": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.1.4.tgz",
+ "integrity": "sha512-lZVym0PuHE1KZ22gmFTC15lAkrg9iTszR617oYRB/iPY1A56ywoJzVKOJBKaot5RiikCObmur6pogpse3gRcng==",
"cpu": [
"arm64"
],
@@ -637,26 +587,15 @@
"optional": true,
"os": [
"linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-loongarch64-gnu": {
- "version": "4.44.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.44.2.tgz",
- "integrity": "sha512-Yl5Rdpf9pIc4GW1PmkUGHdMtbx0fBLE1//SxDmuf3X0dUC57+zMepow2LK0V21661cjXdTn8hO2tXDdAWAqE5g==",
- "cpu": [
- "loong64"
],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
},
- "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
- "version": "4.44.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.44.2.tgz",
- "integrity": "sha512-03vUDH+w55s680YYryyr78jsO1RWU9ocRMaeV2vMniJJW/6HhoTBwyyiiTPVHNWLnhsnwcQ0oH3S9JSBEKuyqw==",
+ "node_modules/@rolldown/binding-linux-ppc64-gnu": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.1.4.tgz",
+ "integrity": "sha512-t2DNiLJWNTbnEHyUzTumldML6ET4/g16467LZoDDJ3tSxGvguL5/NyC2lCsNKuyRycg9XeDQF5SSv+TNOhQEXg==",
"cpu": [
"ppc64"
],
@@ -665,40 +604,15 @@
"optional": true,
"os": [
"linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-riscv64-gnu": {
- "version": "4.44.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.44.2.tgz",
- "integrity": "sha512-iYtAqBg5eEMG4dEfVlkqo05xMOk6y/JXIToRca2bAWuqjrJYJlx/I7+Z+4hSrsWU8GdJDFPL4ktV3dy4yBSrzg==",
- "cpu": [
- "riscv64"
],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
},
- "node_modules/@rollup/rollup-linux-riscv64-musl": {
- "version": "4.44.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.44.2.tgz",
- "integrity": "sha512-e6vEbgaaqz2yEHqtkPXa28fFuBGmUJ0N2dOJK8YUfijejInt9gfCSA7YDdJ4nYlv67JfP3+PSWFX4IVw/xRIPg==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-s390x-gnu": {
- "version": "4.44.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.44.2.tgz",
- "integrity": "sha512-evFOtkmVdY3udE+0QKrV5wBx7bKI0iHz5yEVx5WqDJkxp9YQefy4Mpx3RajIVcM6o7jxTvVd/qpC1IXUhGc1Mw==",
+ "node_modules/@rolldown/binding-linux-s390x-gnu": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.1.4.tgz",
+ "integrity": "sha512-0WIRnL1Uw4BvTZRLQt+PVgo6ZKTJadlC2btP+/EOXv2f/DWbY0rEgl+y834mIVwP1FkTlWVTrGGJXf12lru7EQ==",
"cpu": [
"s390x"
],
@@ -707,12 +621,15 @@
"optional": true,
"os": [
"linux"
- ]
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
},
- "node_modules/@rollup/rollup-linux-x64-gnu": {
- "version": "4.44.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.44.2.tgz",
- "integrity": "sha512-/bXb0bEsWMyEkIsUL2Yt5nFB5naLAwyOWMEviQfQY1x3l5WsLKgvZf66TM7UTfED6erckUVUJQ/jJ1FSpm3pRQ==",
+ "node_modules/@rolldown/binding-linux-x64-gnu": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.1.4.tgz",
+ "integrity": "sha512-JWtGshGfX+oENAKonoNkqEJX+7hC8yfhi9GUyPX1VX4mdh1y5r+ZiJLR5XzAB0aoP6s/PcILsGjKq8O0mm24bw==",
"cpu": [
"x64"
],
@@ -721,12 +638,15 @@
"optional": true,
"os": [
"linux"
- ]
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
},
- "node_modules/@rollup/rollup-linux-x64-musl": {
- "version": "4.44.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.44.2.tgz",
- "integrity": "sha512-3D3OB1vSSBXmkGEZR27uiMRNiwN08/RVAcBKwhUYPaiZ8bcvdeEwWPvbnXvvXHY+A/7xluzcN+kaiOFNiOZwWg==",
+ "node_modules/@rolldown/binding-linux-x64-musl": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.1.4.tgz",
+ "integrity": "sha512-rT6yQcxUuXs4CnbofqwHRRV0iem349rLMYpTjkgQGLjrY4ado/eDzwPZPTCgTOlF6Nkp8NEv70yLMTn6qkWxsQ==",
"cpu": [
"x64"
],
@@ -735,12 +655,51 @@
"optional": true,
"os": [
"linux"
- ]
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
},
- "node_modules/@rollup/rollup-win32-arm64-msvc": {
- "version": "4.44.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.44.2.tgz",
- "integrity": "sha512-VfU0fsMK+rwdK8mwODqYeM2hDrF2WiHaSmCBrS7gColkQft95/8tphyzv2EupVxn3iE0FI78wzffoULH1G+dkw==",
+ "node_modules/@rolldown/binding-openharmony-arm64": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.1.4.tgz",
+ "integrity": "sha512-KXMGoboq5cyaCQjDA4GLuRiOwBQ0EyFnJoVViLeZ45/3rFItRODEr+NdsBcVpll40hhNArlm/speWGRvj08LzA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openharmony"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@rolldown/binding-wasm32-wasi": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.1.4.tgz",
+ "integrity": "sha512-5K83rb36oJiY7BCyE9zLZtGcPV4g5wvq+xwdO0XPIwDVZI8cyB/AUjkNXGb92/rnmezEkjMOpgY61rtwjQtFwg==",
+ "cpu": [
+ "wasm32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "@emnapi/core": "1.11.1",
+ "@emnapi/runtime": "1.11.1",
+ "@napi-rs/wasm-runtime": "^1.1.6"
+ },
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@rolldown/binding-win32-arm64-msvc": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.1.4.tgz",
+ "integrity": "sha512-PnWBtw3TV5KOg69HQQDR0mnQuyCmSGR2pAB4DC1rPF808fgKeTUMj2EOEyKATpgiuxuR5APQmiDO7PDgEjTFSA==",
"cpu": [
"arm64"
],
@@ -749,26 +708,15 @@
"optional": true,
"os": [
"win32"
- ]
- },
- "node_modules/@rollup/rollup-win32-ia32-msvc": {
- "version": "4.44.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.44.2.tgz",
- "integrity": "sha512-+qMUrkbUurpE6DVRjiJCNGZBGo9xM4Y0FXU5cjgudWqIBWbcLkjE3XprJUsOFgC6xjBClwVa9k6O3A7K3vxb5Q==",
- "cpu": [
- "ia32"
],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ]
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
},
- "node_modules/@rollup/rollup-win32-x64-msvc": {
- "version": "4.44.2",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.44.2.tgz",
- "integrity": "sha512-3+QZROYfJ25PDcxFF66UEk8jGWigHJeecZILvkPkyQN7oc5BvFo4YEXFkOs154j3FTMp9mn9Ky8RCOwastduEA==",
+ "node_modules/@rolldown/binding-win32-x64-msvc": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.1.4.tgz",
+ "integrity": "sha512-M1lpniBePobTfsa7Ks9a199e1akxsXn+GYBUKsEzv3YFzOm1HJAMNwKI3qr0Zq+mxwx9gOZoTdP1yXRYsZUocQ==",
"cpu": [
"x64"
],
@@ -777,60 +725,134 @@
"optional": true,
"os": [
"win32"
- ]
- },
- "node_modules/@sveltejs/vite-plugin-svelte": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-3.1.2.tgz",
- "integrity": "sha512-Txsm1tJvtiYeLUVRNqxZGKR/mI+CzuIQuc2gn+YCs9rMTowpNZ2Nqt53JdL8KF9bLhAf2ruR/dr9eZCwdTriRA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@sveltejs/vite-plugin-svelte-inspector": "^2.1.0",
- "debug": "^4.3.4",
- "deepmerge": "^4.3.1",
- "kleur": "^4.1.5",
- "magic-string": "^0.30.10",
- "svelte-hmr": "^0.16.0",
- "vitefu": "^0.2.5"
- },
+ ],
"engines": {
- "node": "^18.0.0 || >=20"
- },
- "peerDependencies": {
- "svelte": "^4.0.0 || ^5.0.0-next.0",
- "vite": "^5.0.0"
+ "node": "^20.19.0 || >=22.12.0"
}
},
- "node_modules/@sveltejs/vite-plugin-svelte-inspector": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-2.1.0.tgz",
- "integrity": "sha512-9QX28IymvBlSCqsCll5t0kQVxipsfhFFL+L2t3nTWfXnddYwxBuAEtTtlaVQpRz9c37BhJjltSeY4AJSC03SSg==",
+ "node_modules/@rolldown/pluginutils": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz",
+ "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@sinclair/typebox": {
+ "version": "0.31.28",
+ "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.31.28.tgz",
+ "integrity": "sha512-/s55Jujywdw/Jpan+vsy6JZs1z2ZTGxTmbZTPiuSL2wz9mfzA2gN1zzaqmvfi4pq+uOt7Du85fkiwv5ymW84aQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@sindresorhus/slugify": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-2.2.1.tgz",
+ "integrity": "sha512-MkngSCRZ8JdSOCHRaYd+D01XhvU3Hjy6MGl06zhOk614hp9EOAp5gIkBeQg7wtmxpitU6eAL4kdiRMcJa2dlrw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "debug": "^4.3.4"
+ "@sindresorhus/transliterate": "^1.0.0",
+ "escape-string-regexp": "^5.0.0"
},
"engines": {
- "node": "^18.0.0 || >=20"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@sindresorhus/transliterate": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/transliterate/-/transliterate-1.6.0.tgz",
+ "integrity": "sha512-doH1gimEu3A46VX6aVxpHTeHrytJAG6HgdxntYnCFiIFHEM/ZGpG8KiZGBChchjQmG0XFIBL552kBTjVcMZXwQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "escape-string-regexp": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@sqlite.org/sqlite-wasm": {
+ "version": "3.48.0-build4",
+ "resolved": "https://registry.npmjs.org/@sqlite.org/sqlite-wasm/-/sqlite-wasm-3.48.0-build4.tgz",
+ "integrity": "sha512-hI6twvUkzOmyGZhQMza1gpfqErZxXRw6JEsiVjUbo7tFanVD+8Oil0Ih3l2nGzHdxPI41zFmfUQG7GHqhciKZQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "bin": {
+ "sqlite-wasm": "bin/index.js"
+ }
+ },
+ "node_modules/@sveltejs/acorn-typescript": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/@sveltejs/acorn-typescript/-/acorn-typescript-1.0.11.tgz",
+ "integrity": "sha512-LFuZUkjJ9iF7JZye/aG5XM0SFcQ5VyL0oVX4WJ9dc0Va3R3s0OauX1BESVCb+YN/ol8TAfqGDDAQsTG627Y5kw==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "acorn": "^8.9.0"
+ }
+ },
+ "node_modules/@sveltejs/vite-plugin-svelte": {
+ "version": "7.1.4",
+ "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-7.1.4.tgz",
+ "integrity": "sha512-HJ0n7DysuQQBXxGvpV9KeJrta44w8OovdQ1SS6IsDQo6lYdwzolKQQca3+244V2GrZEo0hP6QPplKabZHck33A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "deepmerge": "^4.3.1",
+ "magic-string": "^0.30.21",
+ "obug": "^2.1.0",
+ "vitefu": "^1.1.2"
+ },
+ "engines": {
+ "node": "^20.19 || ^22.12 || >=24"
},
"peerDependencies": {
- "@sveltejs/vite-plugin-svelte": "^3.0.0",
- "svelte": "^4.0.0 || ^5.0.0-next.0",
- "vite": "^5.0.0"
+ "svelte": "^5.46.4",
+ "vite": "^8.0.0-beta.7 || ^8.0.0"
+ }
+ },
+ "node_modules/@tybys/wasm-util": {
+ "version": "0.10.3",
+ "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.3.tgz",
+ "integrity": "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "tslib": "^2.4.0"
}
},
"node_modules/@types/estree": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
- "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz",
+ "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/trusted-types": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
+ "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/a-sync-waterfall": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz",
+ "integrity": "sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==",
"dev": true,
"license": "MIT"
},
"node_modules/acorn": {
- "version": "8.15.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
- "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
+ "version": "8.17.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.17.0.tgz",
+ "integrity": "sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==",
"dev": true,
"license": "MIT",
"bin": {
@@ -840,22 +862,70 @@
"node": ">=0.4.0"
}
},
- "node_modules/animejs": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/animejs/-/animejs-3.2.1.tgz",
- "integrity": "sha512-sWno3ugFryK5nhiDm/2BKeFCpZv7vzerWUcUPyAZLDhMek3+S/p418ldZJbJXo5ZUOpfm2kP2XRO4NJcULMy9A==",
- "license": "MIT"
+ "node_modules/acorn-walk": {
+ "version": "8.3.5",
+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.5.tgz",
+ "integrity": "sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "acorn": "^8.11.0"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/anymatch/node_modules/picomatch": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz",
+ "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true,
+ "license": "Python-2.0"
},
"node_modules/aria-query": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz",
- "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==",
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.1.tgz",
+ "integrity": "sha512-Z/ZeOgVl7bcSYZ/u/rh0fOpvEpq//LZmdbkXyc7syVzjPAhfOa9ebsdTSjEBDU4vs5nC98Kfduj1uFo0qyET3g==",
"dev": true,
"license": "Apache-2.0",
"engines": {
"node": ">= 0.4"
}
},
+ "node_modules/array-timsort": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/array-timsort/-/array-timsort-1.0.3.tgz",
+ "integrity": "sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/array-union": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
@@ -866,6 +936,13 @@
"node": ">=8"
}
},
+ "node_modules/asap": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
+ "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/async": {
"version": "3.2.6",
"resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz",
@@ -883,6 +960,79 @@
"node": ">= 0.4"
}
},
+ "node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/bcp-47": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/bcp-47/-/bcp-47-2.1.1.tgz",
+ "integrity": "sha512-KLw+H/gd2p4zly1X7Yh/qziuyae5/w/QFnvTng9eZL5fvszL7Whl3MBoWF8yxL7ksUjBfOD+OxkytiqbBpG+Fw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-alphabetical": "^2.0.0",
+ "is-alphanumerical": "^2.0.0",
+ "is-decimal": "^2.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/bcp-47-match": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/bcp-47-match/-/bcp-47-match-2.0.3.tgz",
+ "integrity": "sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/bcp-47-normalize": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/bcp-47-normalize/-/bcp-47-normalize-2.3.0.tgz",
+ "integrity": "sha512-8I/wfzqQvttUFz7HVJgIZ7+dj3vUaIyIxYXaTRP1YWoSDfzt6TUmxaKZeuXR62qBmYr+nvuWINFRl6pZ5DlN4Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "bcp-47": "^2.0.0",
+ "bcp-47-match": "^2.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/binary-extensions": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
+ "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/brace-expansion": {
+ "version": "1.1.15",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.15.tgz",
+ "integrity": "sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
"node_modules/braces": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
@@ -896,18 +1046,63 @@
"node": ">=8"
}
},
- "node_modules/code-red": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/code-red/-/code-red-1.0.4.tgz",
- "integrity": "sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==",
+ "node_modules/chokidar": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
+ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@jridgewell/sourcemap-codec": "^1.4.15",
- "@types/estree": "^1.0.1",
- "acorn": "^8.10.0",
- "estree-walker": "^3.0.3",
- "periscopic": "^3.1.0"
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
+ },
+ "engines": {
+ "node": ">= 8.10.0"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/clsx": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
+ "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/commander": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz",
+ "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=16"
+ }
+ },
+ "node_modules/comment-json": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.6.2.tgz",
+ "integrity": "sha512-R2rze/hDX30uul4NZoIZ76ImSJLFxn/1/ZxtKC1L77y2X1k+yYu1joKbAtMA2Fg3hZrTOiw0I5mwVMo0cf250w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "array-timsort": "^1.0.3",
+ "esprima": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
}
},
"node_modules/commondir": {
@@ -917,24 +1112,27 @@
"dev": true,
"license": "MIT"
},
- "node_modules/css-tree": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz",
- "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==",
+ "node_modules/concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/consola": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.0.tgz",
+ "integrity": "sha512-EiPU8G6dQG0GFHNR8ljnZFki/8a+cQwEQ+7wpxdChl02Q8HXlwEZWD5lqAF8vC2sEC3Tehr8hy7vErz88LHyUA==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "mdn-data": "2.0.30",
- "source-map-js": "^1.0.1"
- },
"engines": {
- "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
+ "node": "^14.18.0 || >=16.10.0"
}
},
"node_modules/debug": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz",
- "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==",
+ "version": "4.4.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -949,6 +1147,21 @@
}
}
},
+ "node_modules/dedent": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz",
+ "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "babel-plugin-macros": "^3.1.0"
+ },
+ "peerDependenciesMeta": {
+ "babel-plugin-macros": {
+ "optional": true
+ }
+ }
+ },
"node_modules/deepmerge": {
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
@@ -959,6 +1172,43 @@
"node": ">=0.10.0"
}
},
+ "node_modules/depd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/dependency-graph": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-1.0.0.tgz",
+ "integrity": "sha512-cW3gggJ28HZ/LExwxP2B++aiKxhJXMSIt9K48FOXQkm+vuG5gyatXnLsONRJdzO/7VfjDIiaOOa/bs4l464Lwg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/detect-libc": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
+ "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/devalue": {
+ "version": "5.8.1",
+ "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.8.1.tgz",
+ "integrity": "sha512-4CXDYRBGqN+57wVJkuXBYmpAVUSg3L6JAQa/DFqm238G73E1wuyc/JhGQJzN7vUf/CMphYau2zXbfWzDR5aTEw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/dir-glob": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
@@ -972,6 +1222,82 @@
"node": ">=8"
}
},
+ "node_modules/dom-serializer": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
+ "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "domelementtype": "^2.0.1",
+ "domhandler": "^4.2.0",
+ "entities": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
+ }
+ },
+ "node_modules/dom-serializer/node_modules/entities": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
+ "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/domelementtype": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fb55"
+ }
+ ],
+ "license": "BSD-2-Clause"
+ },
+ "node_modules/domhandler": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz",
+ "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "domelementtype": "^2.2.0"
+ },
+ "engines": {
+ "node": ">= 4"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domhandler?sponsor=1"
+ }
+ },
+ "node_modules/domutils": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
+ "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "dom-serializer": "^1.0.1",
+ "domelementtype": "^2.2.0",
+ "domhandler": "^4.2.0"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domutils?sponsor=1"
+ }
+ },
+ "node_modules/ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/email-addresses": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-5.0.0.tgz",
@@ -979,63 +1305,142 @@
"dev": true,
"license": "MIT"
},
- "node_modules/esbuild": {
- "version": "0.21.5",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz",
- "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==",
- "dev": true,
- "hasInstallScript": true,
- "license": "MIT",
- "bin": {
- "esbuild": "bin/esbuild"
- },
- "engines": {
- "node": ">=12"
- },
- "optionalDependencies": {
- "@esbuild/aix-ppc64": "0.21.5",
- "@esbuild/android-arm": "0.21.5",
- "@esbuild/android-arm64": "0.21.5",
- "@esbuild/android-x64": "0.21.5",
- "@esbuild/darwin-arm64": "0.21.5",
- "@esbuild/darwin-x64": "0.21.5",
- "@esbuild/freebsd-arm64": "0.21.5",
- "@esbuild/freebsd-x64": "0.21.5",
- "@esbuild/linux-arm": "0.21.5",
- "@esbuild/linux-arm64": "0.21.5",
- "@esbuild/linux-ia32": "0.21.5",
- "@esbuild/linux-loong64": "0.21.5",
- "@esbuild/linux-mips64el": "0.21.5",
- "@esbuild/linux-ppc64": "0.21.5",
- "@esbuild/linux-riscv64": "0.21.5",
- "@esbuild/linux-s390x": "0.21.5",
- "@esbuild/linux-x64": "0.21.5",
- "@esbuild/netbsd-x64": "0.21.5",
- "@esbuild/openbsd-x64": "0.21.5",
- "@esbuild/sunos-x64": "0.21.5",
- "@esbuild/win32-arm64": "0.21.5",
- "@esbuild/win32-ia32": "0.21.5",
- "@esbuild/win32-x64": "0.21.5"
- }
- },
- "node_modules/escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "node_modules/encodeurl": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
+ "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">=0.8.0"
+ "node": ">= 0.8"
}
},
- "node_modules/estree-walker": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
- "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
+ "node_modules/entities": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz",
+ "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/errno": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/errno/-/errno-1.0.0.tgz",
+ "integrity": "sha512-3zV5mFS1E8/1bPxt/B0xxzI1snsg3uSCIh6Zo1qKg6iMw93hzPANk9oBFzSFBFrwuVoQuE3rLoouAUfwOAj1wQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@types/estree": "^1.0.0"
+ "prr": "~1.0.1"
+ },
+ "bin": {
+ "errno": "cli.js"
+ }
+ },
+ "node_modules/escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/escape-string-regexp": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
+ "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/esm-env": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.2.2.tgz",
+ "integrity": "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/esm-import-transformer": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/esm-import-transformer/-/esm-import-transformer-3.0.5.tgz",
+ "integrity": "sha512-1GKLvfuMnnpI75l8c6sHoz0L3Z872xL5akGuBudgqTDPv4Vy6f2Ec7jEMKTxlqWl/3kSvNbHELeimJtnqgYniw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "acorn": "^8.15.0"
+ }
+ },
+ "node_modules/esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "bin": {
+ "esparse": "bin/esparse.js",
+ "esvalidate": "bin/esvalidate.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/esrap": {
+ "version": "2.2.13",
+ "resolved": "https://registry.npmjs.org/esrap/-/esrap-2.2.13.tgz",
+ "integrity": "sha512-m8jH5hZgJE2RRUK/jjkGPcJEDAV+dYnZYFkosQaPTcE+Yw4xynXHOo6FUdwaWBtdR3b1MMa7wEDTSHeR2VWsGA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.4.15"
+ },
+ "peerDependencies": {
+ "@typescript-eslint/types": "^8.2.0"
+ },
+ "peerDependenciesMeta": {
+ "@typescript-eslint/types": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/etag": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/evaluate-value": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/evaluate-value/-/evaluate-value-2.0.0.tgz",
+ "integrity": "sha512-VonfiuDJc0z4sOO7W0Pd130VLsXN6vmBWZlrog1mCb/o7o/Nl5Lr25+Kj/nkCCAhG+zqeeGjxhkK9oHpkgTHhQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
"node_modules/fast-glob": {
@@ -1056,15 +1461,33 @@
}
},
"node_modules/fastq": {
- "version": "1.19.1",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz",
- "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==",
+ "version": "1.20.1",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz",
+ "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==",
"dev": true,
"license": "ISC",
"dependencies": {
"reusify": "^1.0.4"
}
},
+ "node_modules/fdir": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
+ "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "peerDependencies": {
+ "picomatch": "^3 || ^4"
+ },
+ "peerDependenciesMeta": {
+ "picomatch": {
+ "optional": true
+ }
+ }
+ },
"node_modules/filename-reserved-regex": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz",
@@ -1093,6 +1516,16 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/filesize": {
+ "version": "10.1.6",
+ "resolved": "https://registry.npmjs.org/filesize/-/filesize-10.1.6.tgz",
+ "integrity": "sha512-sJslQKU2uM33qH5nqewAwVB2QgR6w1aMNsYUp3aN5rMRyXEwJGmZvaWzeJFNTOXWlHQyBFCWrdj3fV/fsTOX8w==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">= 10.4.0"
+ }
+ },
"node_modules/fill-range": {
"version": "7.1.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
@@ -1106,6 +1539,42 @@
"node": ">=8"
}
},
+ "node_modules/finalhandler": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz",
+ "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "debug": "2.6.9",
+ "encodeurl": "~2.0.0",
+ "escape-html": "~1.0.3",
+ "on-finished": "~2.4.1",
+ "parseurl": "~1.3.3",
+ "statuses": "~2.0.2",
+ "unpipe": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/finalhandler/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/finalhandler/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/find-cache-dir": {
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz",
@@ -1138,10 +1607,20 @@
"node": ">=8"
}
},
+ "node_modules/fresh": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz",
+ "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
"node_modules/fs-extra": {
- "version": "11.3.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz",
- "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==",
+ "version": "11.3.6",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.6.tgz",
+ "integrity": "sha512-w8ZNZr2mKIc7qeNaQ9AVPT1+iFaI+Avd4xudVOvdDJ8VytREi1Ft5Ih7hd9jjehod8vAM5GMsfQ/TpPf4EyoEA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1242,6 +1721,120 @@
"dev": true,
"license": "ISC"
},
+ "node_modules/gray-matter": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz",
+ "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "js-yaml": "^3.13.1",
+ "kind-of": "^6.0.2",
+ "section-matter": "^1.0.0",
+ "strip-bom-string": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6.0"
+ }
+ },
+ "node_modules/gray-matter/node_modules/argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "node_modules/gray-matter/node_modules/js-yaml": {
+ "version": "3.15.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.15.0.tgz",
+ "integrity": "sha512-ttBQIIQPDeLjpPOohtUdXuXUVoA2uIB6fEH9HyJ7234s5mBJ5wTx20njxplLZQgLaOfpmPQA7X2t5AX6tIPbog==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/htmlparser2": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz",
+ "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==",
+ "dev": true,
+ "funding": [
+ "https://github.com/fb55/htmlparser2?sponsor=1",
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fb55"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "domelementtype": "^2.0.1",
+ "domhandler": "^4.2.2",
+ "domutils": "^2.8.0",
+ "entities": "^3.0.1"
+ }
+ },
+ "node_modules/htmlparser2/node_modules/entities": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz",
+ "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/http-equiv-refresh": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/http-equiv-refresh/-/http-equiv-refresh-2.0.1.tgz",
+ "integrity": "sha512-XJpDL/MLkV3dKwLzHwr2dY05dYNfBNlyPu4STQ8WvKCFdc6vC5tPXuq28of663+gHVg03C+16pHHs/+FmmDjcw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/http-errors": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz",
+ "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "depd": "~2.0.0",
+ "inherits": "~2.0.4",
+ "setprototypeof": "~1.2.0",
+ "statuses": "~2.0.2",
+ "toidentifier": "~1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
+ }
+ },
+ "node_modules/human-id": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/human-id/-/human-id-4.2.0.tgz",
+ "integrity": "sha512-K3GbkIWqyvvlpfhBPlbEvD97TtqBpAYA4kt+cn2lD2x2HuohzZCibcA2nOlnJT6exqvJLggoB5nv2dNf192nEA==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "human-id": "dist/cli.js"
+ }
+ },
"node_modules/ignore": {
"version": "5.3.2",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
@@ -1252,6 +1845,73 @@
"node": ">= 4"
}
},
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/is-alphabetical": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz",
+ "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/is-alphanumerical": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz",
+ "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-alphabetical": "^2.0.0",
+ "is-decimal": "^2.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "binary-extensions": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-decimal": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz",
+ "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/is-extglob": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
@@ -1275,6 +1935,13 @@
"node": ">=0.10.0"
}
},
+ "node_modules/is-json": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-json/-/is-json-2.0.1.tgz",
+ "integrity": "sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA==",
+ "dev": true,
+ "license": "ISC"
+ },
"node_modules/is-number": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
@@ -1295,10 +1962,63 @@
"@types/estree": "^1.0.6"
}
},
+ "node_modules/iso-639-1": {
+ "version": "3.1.6",
+ "resolved": "https://registry.npmjs.org/iso-639-1/-/iso-639-1-3.1.6.tgz",
+ "integrity": "sha512-ZFar/L4ngX7wZh2QX+Fiftmuf0igWJsrJtfizrovWifF1gAWkfmRa5Z1m0LQZbm0hKCHRDYhLRSLFrSqNe4EJA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0"
+ }
+ },
+ "node_modules/js-sha256": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.11.1.tgz",
+ "integrity": "sha512-o6WSo/LUvY2uC4j7mO50a2ms7E/EAdbP0swigLV+nzHKTTaYnaLIWJ02VdXrsJX0vGedDESQnLsOekr94ryfjg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/js-yaml": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.0.tgz",
+ "integrity": "sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/puzrin"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/nodeca"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/json5": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "json5": "lib/cli.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/jsonfile": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
- "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.1.tgz",
+ "integrity": "sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1308,6 +2028,26 @@
"graceful-fs": "^4.1.6"
}
},
+ "node_modules/junk": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz",
+ "integrity": "sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/kleur": {
"version": "4.1.5",
"resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz",
@@ -1318,6 +2058,335 @@
"node": ">=6"
}
},
+ "node_modules/kysely": {
+ "version": "0.28.17",
+ "resolved": "https://registry.npmjs.org/kysely/-/kysely-0.28.17.tgz",
+ "integrity": "sha512-nbD8lB9EB3wNdMhOCdx5Li8DxnLbvKByylRLcJ1h+4SkrowVeECAyZlyiKMThF7xFdRz0jSQ2MoJr+wXux2y0Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=20.0.0"
+ }
+ },
+ "node_modules/lightningcss": {
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz",
+ "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==",
+ "dev": true,
+ "license": "MPL-2.0",
+ "dependencies": {
+ "detect-libc": "^2.0.3"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ },
+ "optionalDependencies": {
+ "lightningcss-android-arm64": "1.32.0",
+ "lightningcss-darwin-arm64": "1.32.0",
+ "lightningcss-darwin-x64": "1.32.0",
+ "lightningcss-freebsd-x64": "1.32.0",
+ "lightningcss-linux-arm-gnueabihf": "1.32.0",
+ "lightningcss-linux-arm64-gnu": "1.32.0",
+ "lightningcss-linux-arm64-musl": "1.32.0",
+ "lightningcss-linux-x64-gnu": "1.32.0",
+ "lightningcss-linux-x64-musl": "1.32.0",
+ "lightningcss-win32-arm64-msvc": "1.32.0",
+ "lightningcss-win32-x64-msvc": "1.32.0"
+ }
+ },
+ "node_modules/lightningcss-android-arm64": {
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz",
+ "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-darwin-arm64": {
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz",
+ "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-darwin-x64": {
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz",
+ "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-freebsd-x64": {
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz",
+ "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-arm-gnueabihf": {
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz",
+ "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-arm64-gnu": {
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz",
+ "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-arm64-musl": {
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz",
+ "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-x64-gnu": {
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz",
+ "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-x64-musl": {
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz",
+ "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-win32-arm64-msvc": {
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz",
+ "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-win32-x64-msvc": {
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz",
+ "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/linkify-it": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.2.tgz",
+ "integrity": "sha512-ONTm2jCMAVZjgQa/Fy1kScXsuOoF5NPTsoFBdE1KVIZ2vAh/r9+Bqo+0jINCBYnavTPQZz38QzFTme79ENoN3Q==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/puzrin"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/markdown-it"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "uc.micro": "^2.0.0"
+ }
+ },
+ "node_modules/liquidjs": {
+ "version": "10.27.1",
+ "resolved": "https://registry.npmjs.org/liquidjs/-/liquidjs-10.27.1.tgz",
+ "integrity": "sha512-ylE+1q2kSef1UxAyxqbyuWM3FRWS1v48JK1Y3CoW3bD6TSNXZh0+GsVnihujEpKyR+Jejx2aRAFfC3AHm9rElg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "commander": "^10.0.0"
+ },
+ "bin": {
+ "liquid": "bin/liquid.js",
+ "liquidjs": "bin/liquid.js"
+ },
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/liquidjs"
+ }
+ },
+ "node_modules/liquidjs/node_modules/commander": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz",
+ "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/list-to-array": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/list-to-array/-/list-to-array-1.1.0.tgz",
+ "integrity": "sha512-+dAZZ2mM+/m+vY9ezfoueVvrgnHIGi5FvgSymbIgJOFwiznWyA59mav95L+Mc6xPtL3s9gm5eNTlNtxJLbNM1g==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/locate-character": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz",
@@ -1338,14 +2407,24 @@
"node": ">=8"
}
},
+ "node_modules/luxon": {
+ "version": "3.7.2",
+ "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.7.2.tgz",
+ "integrity": "sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ }
+ },
"node_modules/magic-string": {
- "version": "0.30.17",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz",
- "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==",
+ "version": "0.30.21",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz",
+ "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@jridgewell/sourcemap-codec": "^1.5.0"
+ "@jridgewell/sourcemap-codec": "^1.5.5"
}
},
"node_modules/make-dir": {
@@ -1364,12 +2443,63 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/mdn-data": {
- "version": "2.0.30",
- "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz",
- "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==",
+ "node_modules/make-dir/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
- "license": "CC0-1.0"
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/markdown-it": {
+ "version": "14.3.0",
+ "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.3.0.tgz",
+ "integrity": "sha512-RCEsPjR+sr0x+AuYp601tKTkgFG4YEPLCzHST3cQ/fhlJkqAkz1L2/Qbp1j9qw5SBwQHFBoW8+hoN5xssOF0Tw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/puzrin"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/markdown-it"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "argparse": "^2.0.1",
+ "entities": "^4.5.0",
+ "linkify-it": "^5.0.2",
+ "mdurl": "^2.0.0",
+ "punycode.js": "^2.3.1",
+ "uc.micro": "^2.1.0"
+ },
+ "bin": {
+ "markdown-it": "bin/markdown-it.mjs"
+ }
+ },
+ "node_modules/markdown-it/node_modules/entities": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
+ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/mdurl": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz",
+ "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/merge2": {
"version": "1.4.1",
@@ -1395,6 +2525,106 @@
"node": ">=8.6"
}
},
+ "node_modules/micromatch/node_modules/picomatch": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz",
+ "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/mime": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz",
+ "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "mime": "cli.js"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/mime-db": {
+ "version": "1.54.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz",
+ "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime-types": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz",
+ "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mime-db": "^1.54.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
+ }
+ },
+ "node_modules/minimatch": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
+ "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/minimist": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/minipass": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz",
+ "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==",
+ "dev": true,
+ "license": "BlueOak-1.0.0",
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ }
+ },
+ "node_modules/moo": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.2.tgz",
+ "integrity": "sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/morphdom": {
+ "version": "2.7.8",
+ "resolved": "https://registry.npmjs.org/morphdom/-/morphdom-2.7.8.tgz",
+ "integrity": "sha512-D/fR4xgGUyVRbdMGU6Nejea1RFzYxYtyurG4Fbv2Fi/daKlWKuXGLOdXtl+3eIwL110cI2hz1ZojGICjjFLgTg==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/ms": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
@@ -1403,9 +2633,9 @@
"license": "MIT"
},
"node_modules/nanoid": {
- "version": "3.3.11",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
- "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
+ "version": "3.3.15",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.15.tgz",
+ "integrity": "sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA==",
"dev": true,
"funding": [
{
@@ -1421,6 +2651,91 @@
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
}
},
+ "node_modules/node-retrieve-globals": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/node-retrieve-globals/-/node-retrieve-globals-6.0.1.tgz",
+ "integrity": "sha512-j0DeFuZ/Wg3VlklfbxUgZF/mdHMTEiEipBb3q0SpMMbHaV3AVfoUQF8UGxh1s/yjqO0TgRZd4Pi/x2yRqoQ4Eg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "acorn": "^8.14.1",
+ "acorn-walk": "^8.3.4",
+ "esm-import-transformer": "^3.0.3"
+ }
+ },
+ "node_modules/normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/nunjucks": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.4.tgz",
+ "integrity": "sha512-26XRV6BhkgK0VOxfbU5cQI+ICFUtMLixv1noZn1tGU38kQH5A5nmmbk/O45xdyBhD1esk47nKrY0mvQpZIhRjQ==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "a-sync-waterfall": "^1.0.0",
+ "asap": "^2.0.3",
+ "commander": "^5.1.0"
+ },
+ "bin": {
+ "nunjucks-precompile": "bin/precompile"
+ },
+ "engines": {
+ "node": ">= 6.9.0"
+ },
+ "peerDependencies": {
+ "chokidar": "^3.3.0"
+ },
+ "peerDependenciesMeta": {
+ "chokidar": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/nunjucks/node_modules/commander": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz",
+ "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/obug": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.3.tgz",
+ "integrity": "sha512-9miFgM2OFba7hB+pRgvtV84pYTBaoTHohvmIgiRt6dRIzbwEOIaNaP+dIlGs2fNFoB0SeISs0Jz5WFVRid6Xyg==",
+ "dev": true,
+ "funding": [
+ "https://github.com/sponsors/sxzz",
+ "https://opencollective.com/debug"
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.20.0"
+ }
+ },
+ "node_modules/on-finished": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ee-first": "1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
"node_modules/p-limit": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
@@ -1460,6 +2775,23 @@
"node": ">=6"
}
},
+ "node_modules/parse-srcset": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz",
+ "integrity": "sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
"node_modules/path-exists": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
@@ -1480,18 +2812,6 @@
"node": ">=8"
}
},
- "node_modules/periscopic": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz",
- "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/estree": "^1.0.0",
- "estree-walker": "^3.0.0",
- "is-reference": "^3.0.0"
- }
- },
"node_modules/picocolors": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
@@ -1500,13 +2820,13 @@
"license": "ISC"
},
"node_modules/picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz",
+ "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">=8.6"
+ "node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/jonschlinkert"
@@ -1525,10 +2845,20 @@
"node": ">=8"
}
},
+ "node_modules/please-upgrade-node": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz",
+ "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "semver-compare": "^1.0.0"
+ }
+ },
"node_modules/postcss": {
- "version": "8.5.6",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
- "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
+ "version": "8.5.16",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.16.tgz",
+ "integrity": "sha512-vuwillviilfKZsg0VGj5R/YwwcHx4SLsIOI/7K6mQkWx+l5cUHTjj5g0AasTBcyXsbfTgrwsUNmVUb5xVwyPwg==",
"dev": true,
"funding": [
{
@@ -1546,7 +2876,7 @@
],
"license": "MIT",
"dependencies": {
- "nanoid": "^3.3.11",
+ "nanoid": "^3.3.12",
"picocolors": "^1.1.1",
"source-map-js": "^1.2.1"
},
@@ -1554,6 +2884,76 @@
"node": "^10 || ^12 || >=14"
}
},
+ "node_modules/posthtml": {
+ "version": "0.16.7",
+ "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.16.7.tgz",
+ "integrity": "sha512-7Hc+IvlQ7hlaIfQFZnxlRl0jnpWq2qwibORBhQYIb0QbNtuicc5ZxvKkVT71HJ4Py1wSZ/3VR1r8LfkCtoCzhw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "posthtml-parser": "^0.11.0",
+ "posthtml-render": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/posthtml-match-helper": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/posthtml-match-helper/-/posthtml-match-helper-2.0.3.tgz",
+ "integrity": "sha512-p9oJgTdMF2dyd7WE54QI1LvpBIkNkbSiiECKezNnDVYhGhD1AaOnAkw0Uh0y5TW+OHO8iBdSqnd8Wkpb6iUqmw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "posthtml": "^0.16.6"
+ }
+ },
+ "node_modules/posthtml-parser": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.11.0.tgz",
+ "integrity": "sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "htmlparser2": "^7.1.1"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/posthtml-render": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-3.0.0.tgz",
+ "integrity": "sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-json": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/prr": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
+ "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/punycode.js": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz",
+ "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/queue-microtask": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
@@ -1575,6 +2975,46 @@
],
"license": "MIT"
},
+ "node_modules/range-parser": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.3.0.tgz",
+ "integrity": "sha512-hek2mFQpPuI4E1BBKrSto+BU3e3x4xuarsbiwr3+lf7p44juvFMV0XFWQAP3xUyqXA4RrXLIoaSUGbSt056ZMw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
+ }
+ },
+ "node_modules/readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "picomatch": "^2.2.1"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ }
+ },
+ "node_modules/readdirp/node_modules/picomatch": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz",
+ "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
"node_modules/reusify": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
@@ -1586,44 +3026,38 @@
"node": ">=0.10.0"
}
},
- "node_modules/rollup": {
- "version": "4.44.2",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.44.2.tgz",
- "integrity": "sha512-PVoapzTwSEcelaWGth3uR66u7ZRo6qhPHc0f2uRO9fX6XDVNrIiGYS0Pj9+R8yIIYSD/mCx2b16Ws9itljKSPg==",
+ "node_modules/rolldown": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.1.4.tgz",
+ "integrity": "sha512-IjZYiLxZwpnhwhdBH2ugdTGVSdhCQUmLxLoqyjiL0JxYjyRst+5a0P3xfrTxJ5F638j4Mvvw5FAX5XE6eHpXbA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@types/estree": "1.0.8"
+ "@oxc-project/types": "=0.138.0",
+ "@rolldown/pluginutils": "^1.0.0"
},
"bin": {
- "rollup": "dist/bin/rollup"
+ "rolldown": "bin/cli.mjs"
},
"engines": {
- "node": ">=18.0.0",
- "npm": ">=8.0.0"
+ "node": "^20.19.0 || >=22.12.0"
},
"optionalDependencies": {
- "@rollup/rollup-android-arm-eabi": "4.44.2",
- "@rollup/rollup-android-arm64": "4.44.2",
- "@rollup/rollup-darwin-arm64": "4.44.2",
- "@rollup/rollup-darwin-x64": "4.44.2",
- "@rollup/rollup-freebsd-arm64": "4.44.2",
- "@rollup/rollup-freebsd-x64": "4.44.2",
- "@rollup/rollup-linux-arm-gnueabihf": "4.44.2",
- "@rollup/rollup-linux-arm-musleabihf": "4.44.2",
- "@rollup/rollup-linux-arm64-gnu": "4.44.2",
- "@rollup/rollup-linux-arm64-musl": "4.44.2",
- "@rollup/rollup-linux-loongarch64-gnu": "4.44.2",
- "@rollup/rollup-linux-powerpc64le-gnu": "4.44.2",
- "@rollup/rollup-linux-riscv64-gnu": "4.44.2",
- "@rollup/rollup-linux-riscv64-musl": "4.44.2",
- "@rollup/rollup-linux-s390x-gnu": "4.44.2",
- "@rollup/rollup-linux-x64-gnu": "4.44.2",
- "@rollup/rollup-linux-x64-musl": "4.44.2",
- "@rollup/rollup-win32-arm64-msvc": "4.44.2",
- "@rollup/rollup-win32-ia32-msvc": "4.44.2",
- "@rollup/rollup-win32-x64-msvc": "4.44.2",
- "fsevents": "~2.3.2"
+ "@rolldown/binding-android-arm64": "1.1.4",
+ "@rolldown/binding-darwin-arm64": "1.1.4",
+ "@rolldown/binding-darwin-x64": "1.1.4",
+ "@rolldown/binding-freebsd-x64": "1.1.4",
+ "@rolldown/binding-linux-arm-gnueabihf": "1.1.4",
+ "@rolldown/binding-linux-arm64-gnu": "1.1.4",
+ "@rolldown/binding-linux-arm64-musl": "1.1.4",
+ "@rolldown/binding-linux-ppc64-gnu": "1.1.4",
+ "@rolldown/binding-linux-s390x-gnu": "1.1.4",
+ "@rolldown/binding-linux-x64-gnu": "1.1.4",
+ "@rolldown/binding-linux-x64-musl": "1.1.4",
+ "@rolldown/binding-openharmony-arm64": "1.1.4",
+ "@rolldown/binding-wasm32-wasi": "1.1.4",
+ "@rolldown/binding-win32-arm64-msvc": "1.1.4",
+ "@rolldown/binding-win32-x64-msvc": "1.1.4"
}
},
"node_modules/run-parallel": {
@@ -1650,16 +3084,74 @@
"queue-microtask": "^1.2.2"
}
},
+ "node_modules/section-matter": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz",
+ "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "extend-shallow": "^2.0.1",
+ "kind-of": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "version": "7.8.5",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz",
+ "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==",
"dev": true,
"license": "ISC",
"bin": {
"semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
}
},
+ "node_modules/semver-compare": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz",
+ "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/send": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz",
+ "integrity": "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "debug": "^4.4.3",
+ "encodeurl": "^2.0.0",
+ "escape-html": "^1.0.3",
+ "etag": "^1.8.1",
+ "fresh": "^2.0.0",
+ "http-errors": "^2.0.1",
+ "mime-types": "^3.0.2",
+ "ms": "^2.1.3",
+ "on-finished": "^2.4.1",
+ "range-parser": "^1.2.1",
+ "statuses": "^2.0.2"
+ },
+ "engines": {
+ "node": ">= 18"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
+ }
+ },
+ "node_modules/setprototypeof": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
+ "dev": true,
+ "license": "ISC"
+ },
"node_modules/slash": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
@@ -1670,6 +3162,16 @@
"node": ">=8"
}
},
+ "node_modules/slugify": {
+ "version": "1.6.9",
+ "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.9.tgz",
+ "integrity": "sha512-vZ7rfeehZui7wQs438JXBckYLkIIdfHOXsaVEUMyS5fHo1483l1bMdo0EDSWYclY0yZKFOipDy4KHuKs6ssvdg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
"node_modules/source-map-js": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
@@ -1680,6 +3182,58 @@
"node": ">=0.10.0"
}
},
+ "node_modules/sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/sqlite-wasm-kysely": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/sqlite-wasm-kysely/-/sqlite-wasm-kysely-0.3.0.tgz",
+ "integrity": "sha512-TzjBNv7KwRw6E3pdKdlRyZiTmUIE0UttT/Sl56MVwVARl/u5gp978KepazCJZewFUnlWHz9i3NQd4kOtP/Afdg==",
+ "dev": true,
+ "dependencies": {
+ "@sqlite.org/sqlite-wasm": "^3.48.0-build2"
+ },
+ "peerDependencies": {
+ "kysely": "*"
+ }
+ },
+ "node_modules/ssri": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-11.0.0.tgz",
+ "integrity": "sha512-aZpUoMN/Jj2MqA4vMCeiKGnc/8SuSyHbGSBdgFbZxP8OJGF/lFkIuElzPxsN0q8TQQ+prw3P4EDfB3TBHHgfXw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "minipass": "^7.0.3"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/statuses": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz",
+ "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/strip-bom-string": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz",
+ "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/strip-outer": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz",
@@ -1693,43 +3247,59 @@
"node": ">=0.10.0"
}
},
+ "node_modules/strip-outer/node_modules/escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
"node_modules/svelte": {
- "version": "4.2.20",
- "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.20.tgz",
- "integrity": "sha512-eeEgGc2DtiUil5ANdtd8vPwt9AgaMdnuUFnPft9F5oMvU/FHu5IHFic+p1dR/UOB7XU2mX2yHW+NcTch4DCh5Q==",
+ "version": "5.56.4",
+ "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.56.4.tgz",
+ "integrity": "sha512-/d0QHehmRuJW8gVz395MTkPcPozxzdjBMBE8oEYGz8O3b9KTMzzQ9ZHJQLuFKOHOPQbU6kx/X4iid/EBBzH7iw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@ampproject/remapping": "^2.2.1",
- "@jridgewell/sourcemap-codec": "^1.4.15",
- "@jridgewell/trace-mapping": "^0.3.18",
- "@types/estree": "^1.0.1",
- "acorn": "^8.9.0",
- "aria-query": "^5.3.0",
- "axobject-query": "^4.0.0",
- "code-red": "^1.0.3",
- "css-tree": "^2.3.1",
- "estree-walker": "^3.0.3",
- "is-reference": "^3.0.1",
+ "@jridgewell/remapping": "^2.3.4",
+ "@jridgewell/sourcemap-codec": "^1.5.0",
+ "@sveltejs/acorn-typescript": "^1.0.10",
+ "@types/estree": "^1.0.5",
+ "@types/trusted-types": "^2.0.7",
+ "acorn": "^8.12.1",
+ "aria-query": "5.3.1",
+ "axobject-query": "^4.1.0",
+ "clsx": "^2.1.1",
+ "devalue": "^5.8.1",
+ "esm-env": "^1.2.1",
+ "esrap": "^2.2.12",
+ "is-reference": "^3.0.3",
"locate-character": "^3.0.0",
- "magic-string": "^0.30.4",
- "periscopic": "^3.1.0"
+ "magic-string": "^0.30.11",
+ "zimmerframe": "^1.1.2"
},
"engines": {
- "node": ">=16"
+ "node": ">=18"
}
},
- "node_modules/svelte-hmr": {
- "version": "0.16.0",
- "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.16.0.tgz",
- "integrity": "sha512-Gyc7cOS3VJzLlfj7wKS0ZnzDVdv3Pn2IuVeJPk9m2skfhcu5bq3wtIZyQGggr7/Iim5rH5cncyQft/kRLupcnA==",
+ "node_modules/tinyglobby": {
+ "version": "0.2.17",
+ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz",
+ "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==",
"dev": true,
- "license": "ISC",
- "engines": {
- "node": "^12.20 || ^14.13.1 || >= 16"
+ "license": "MIT",
+ "dependencies": {
+ "fdir": "^6.5.0",
+ "picomatch": "^4.0.4"
},
- "peerDependencies": {
- "svelte": "^3.19.0 || ^4.0.0"
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/SuperchupuDev"
}
},
"node_modules/to-regex-range": {
@@ -1745,6 +3315,16 @@
"node": ">=8.0"
}
},
+ "node_modules/toidentifier": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.6"
+ }
+ },
"node_modules/trim-repeated": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz",
@@ -1758,6 +3338,31 @@
"node": ">=0.10.0"
}
},
+ "node_modules/trim-repeated/node_modules/escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/tslib": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+ "dev": true,
+ "license": "0BSD",
+ "optional": true
+ },
+ "node_modules/uc.micro": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz",
+ "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/universalify": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
@@ -1768,22 +3373,71 @@
"node": ">= 10.0.0"
}
},
- "node_modules/vite": {
- "version": "5.4.19",
- "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.19.tgz",
- "integrity": "sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==",
+ "node_modules/unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/unplugin": {
+ "version": "2.3.11",
+ "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-2.3.11.tgz",
+ "integrity": "sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==",
"dev": true,
"license": "MIT",
"dependencies": {
- "esbuild": "^0.21.3",
- "postcss": "^8.4.43",
- "rollup": "^4.20.0"
+ "@jridgewell/remapping": "^2.3.5",
+ "acorn": "^8.15.0",
+ "picomatch": "^4.0.3",
+ "webpack-virtual-modules": "^0.6.2"
+ },
+ "engines": {
+ "node": ">=18.12.0"
+ }
+ },
+ "node_modules/urlpattern-polyfill": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-10.1.0.tgz",
+ "integrity": "sha512-IGjKp/o0NL3Bso1PymYURCJxMPNAf/ILOpendP9f5B6e1rTJgdgiOvgfoT8VxCAdY+Wisb9uhGaJJf3yZ2V9nw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/uuid": {
+ "version": "14.0.1",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-14.0.1.tgz",
+ "integrity": "sha512-6ZxzVpzDXDa3bJWaHilVayA+BH/1zmxCJoVgvmqJnid/gPoKHxUrS/aC/T6LGQtNHT+XHG9fXPJB4d+IrU30Ew==",
+ "dev": true,
+ "funding": [
+ "https://github.com/sponsors/broofa",
+ "https://github.com/sponsors/ctavan"
+ ],
+ "license": "MIT",
+ "bin": {
+ "uuid": "dist-node/bin/uuid"
+ }
+ },
+ "node_modules/vite": {
+ "version": "8.1.3",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-8.1.3.tgz",
+ "integrity": "sha512-Ds+gBRbj0lwRO2Y5hwnUBdxSwlAve9LeRyU4sNnAr0ewW0gWF0n5bgXgUzbgZ49MV9BVUAQUFYVcDUcilUExMA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "lightningcss": "^1.32.0",
+ "picomatch": "^4.0.4",
+ "postcss": "^8.5.16",
+ "rolldown": "~1.1.3",
+ "tinyglobby": "^0.2.17"
},
"bin": {
"vite": "bin/vite.js"
},
"engines": {
- "node": "^18.0.0 || >=20.0.0"
+ "node": "^20.19.0 || >=22.12.0"
},
"funding": {
"url": "https://github.com/vitejs/vite?sponsor=1"
@@ -1792,23 +3446,33 @@
"fsevents": "~2.3.3"
},
"peerDependencies": {
- "@types/node": "^18.0.0 || >=20.0.0",
- "less": "*",
- "lightningcss": "^1.21.0",
- "sass": "*",
- "sass-embedded": "*",
- "stylus": "*",
- "sugarss": "*",
- "terser": "^5.4.0"
+ "@types/node": "^20.19.0 || >=22.12.0",
+ "@vitejs/devtools": "^0.3.0",
+ "esbuild": "^0.27.0 || ^0.28.0",
+ "jiti": ">=1.21.0",
+ "less": "^4.0.0",
+ "sass": "^1.70.0",
+ "sass-embedded": "^1.70.0",
+ "stylus": ">=0.54.8",
+ "sugarss": "^5.0.0",
+ "terser": "^5.16.0",
+ "tsx": "^4.8.1",
+ "yaml": "^2.4.2"
},
"peerDependenciesMeta": {
"@types/node": {
"optional": true
},
- "less": {
+ "@vitejs/devtools": {
"optional": true
},
- "lightningcss": {
+ "esbuild": {
+ "optional": true
+ },
+ "jiti": {
+ "optional": true
+ },
+ "less": {
"optional": true
},
"sass": {
@@ -1825,23 +3489,70 @@
},
"terser": {
"optional": true
+ },
+ "tsx": {
+ "optional": true
+ },
+ "yaml": {
+ "optional": true
}
}
},
"node_modules/vitefu": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-0.2.5.tgz",
- "integrity": "sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==",
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.1.3.tgz",
+ "integrity": "sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg==",
"dev": true,
"license": "MIT",
+ "workspaces": [
+ "tests/deps/*",
+ "tests/projects/*",
+ "tests/projects/workspace/packages/*"
+ ],
"peerDependencies": {
- "vite": "^3.0.0 || ^4.0.0 || ^5.0.0"
+ "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0"
},
"peerDependenciesMeta": {
"vite": {
"optional": true
}
}
+ },
+ "node_modules/webpack-virtual-modules": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz",
+ "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/ws": {
+ "version": "8.21.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz",
+ "integrity": "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": ">=5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/zimmerframe": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/zimmerframe/-/zimmerframe-1.1.4.tgz",
+ "integrity": "sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==",
+ "dev": true,
+ "license": "MIT"
}
}
}
diff --git a/package.json b/package.json
index b6dd47c..191794c 100644
--- a/package.json
+++ b/package.json
@@ -1,20 +1,23 @@
{
"name": "gwada-sirius",
- "version": "1.5.0",
+ "version": "2.0.0",
+ "type": "module",
"scripts": {
- "dev": "vite",
- "build": "vite build",
- "preview": "vite preview",
- "deploy": "npm run build && gh-pages -d dist"
+ "messages": "paraglide-js compile --project ./project.inlang --outdir ./src/paraglide",
+ "dev": "npm run messages && eleventy --serve",
+ "build": "npm run messages && eleventy",
+ "preview": "npx serve _site",
+ "deploy": "npm run build && gh-pages -d _site"
},
"devDependencies": {
- "@sveltejs/vite-plugin-svelte": "^3.0.0",
+ "@11ty/eleventy": "^3.1.6",
+ "@11ty/eleventy-plugin-vite": "^8.0.0",
+ "@fontsource-variable/fraunces": "^5.2.9",
+ "@fontsource/atkinson-hyperlegible": "^5.2.8",
+ "@inlang/paraglide-js": "^2.20.2",
+ "@sveltejs/vite-plugin-svelte": "^7.1.4",
"gh-pages": "^6.1.1",
- "svelte": "^4.2.7",
- "vite": "^5.0.8"
- },
- "type": "module",
- "dependencies": {
- "animejs": "^3.2.1"
+ "svelte": "^5.56.4",
+ "vite": "^8.1.3"
}
}
diff --git a/project.inlang/settings.json b/project.inlang/settings.json
new file mode 100644
index 0000000..d23faee
--- /dev/null
+++ b/project.inlang/settings.json
@@ -0,0 +1,11 @@
+{
+ "$schema": "https://inlang.com/schema/project-settings",
+ "baseLocale": "fr",
+ "locales": ["fr", "en", "ht"],
+ "modules": [
+ "https://cdn.jsdelivr.net/npm/@inlang/plugin-message-format@latest/dist/index.js"
+ ],
+ "plugin.inlang.messageFormat": {
+ "pathPattern": "./messages/{locale}.json"
+ }
+}
diff --git a/public/favicon.svg b/public/favicon.svg
new file mode 100644
index 0000000..d5b9f7b
--- /dev/null
+++ b/public/favicon.svg
@@ -0,0 +1,5 @@
+
diff --git a/public/manifest.webmanifest b/public/manifest.webmanifest
new file mode 100644
index 0000000..84d701b
--- /dev/null
+++ b/public/manifest.webmanifest
@@ -0,0 +1,12 @@
+{
+ "name": "Sirius en Guadeloupe â Wep Ronpet",
+ "short_name": "Sirius Gwada",
+ "description": "Lever héliaque de Sirius en Guadeloupe : astronomie, culture et observation.",
+ "start_url": "/",
+ "display": "standalone",
+ "background_color": "#141a33",
+ "theme_color": "#141a33",
+ "icons": [
+ { "src": "/favicon.svg", "sizes": "any", "type": "image/svg+xml" }
+ ]
+}
diff --git a/public/og.umd.js b/public/og.umd.js
deleted file mode 100644
index e69de29..0000000
diff --git a/public/sw.js b/public/sw.js
new file mode 100644
index 0000000..d715034
--- /dev/null
+++ b/public/sw.js
@@ -0,0 +1,36 @@
+// Service worker minimal : résilience réseau (3G/4G irrégulier) et usage
+// hors-ligne des pages déjà visitées. Stratégie stale-while-revalidate.
+const CACHE_NAME = "gwada-sirius-v1";
+
+self.addEventListener("install", (event) => {
+ self.skipWaiting();
+});
+
+self.addEventListener("activate", (event) => {
+ event.waitUntil(
+ caches.keys().then((keys) =>
+ Promise.all(keys.filter((key) => key !== CACHE_NAME).map((key) => caches.delete(key)))
+ )
+ );
+ self.clients.claim();
+});
+
+self.addEventListener("fetch", (event) => {
+ if (event.request.method !== "GET") return;
+ const url = new URL(event.request.url);
+ if (url.origin !== self.location.origin) return;
+
+ event.respondWith(
+ caches.open(CACHE_NAME).then(async (cache) => {
+ const cached = await cache.match(event.request);
+ const network = fetch(event.request)
+ .then((response) => {
+ if (response.ok) cache.put(event.request, response.clone());
+ return response;
+ })
+ .catch(() => cached);
+
+ return cached || network;
+ })
+ );
+});
diff --git a/src/App.svelte b/src/App.svelte
deleted file mode 100644
index 5d30adf..0000000
--- a/src/App.svelte
+++ /dev/null
@@ -1,75 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/_data/nav.js b/src/_data/nav.js
new file mode 100644
index 0000000..f51ebbc
--- /dev/null
+++ b/src/_data/nav.js
@@ -0,0 +1,7 @@
+export default [
+ { key: "nav_home", path: "/" },
+ { key: "nav_science", path: "/sirius-science/" },
+ { key: "nav_culture", path: "/culture-savoirs/" },
+ { key: "nav_observer", path: "/observer/" },
+ { key: "nav_associations", path: "/associations/" },
+];
diff --git a/src/_data/nextRising.js b/src/_data/nextRising.js
new file mode 100644
index 0000000..062e596
--- /dev/null
+++ b/src/_data/nextRising.js
@@ -0,0 +1,22 @@
+import sites from "./sites.js";
+
+// Prochain lever héliaque (calculé au build, à partir de Pointe des Chùteaux
+// comme site de rĂ©fĂ©rence â les 7 sites ne divergent que de quelques minutes).
+export default function () {
+ const reference = sites[0];
+ const today = new Date();
+ const years = Object.keys(reference.predictions)
+ .map(Number)
+ .sort((a, b) => a - b);
+
+ for (const year of years) {
+ const p = reference.predictions[year];
+ const when = new Date(`${p.date}T${p.time}:00`);
+ if (when >= today) {
+ return { ...p, year };
+ }
+ }
+
+ const lastYear = years[years.length - 1];
+ return { ...reference.predictions[lastYear], year: lastYear };
+}
diff --git a/src/_data/sites.js b/src/_data/sites.js
new file mode 100644
index 0000000..81de775
--- /dev/null
+++ b/src/_data/sites.js
@@ -0,0 +1,152 @@
+// Sept sites d'observation du lever héliaque de Sirius en Guadeloupe.
+//
+// Dates interpolées à partir des tables d'Arcus Visionis de Jean Meeus, recoupées
+// avec les calculs de Jeffrey L. Hunt (whenthecurveslineup.com) : à 16°N, la
+// heliacal rising tombe autour du 22 juillet (~24 juillet Ă 20°N, ~17 juillet Ă
+// 10°N). Les petits écarts entre sites reflÚtent la longitude et l'altitude de
+// l'horizon Est. Ce sont des estimations de modĂšle â la date rĂ©ellement observĂ©e
+// dépend toujours de la météo et de la clarté de l'horizon.
+export default [
+ {
+ id: "pointe-des-chateaux",
+ name: "Pointe des ChĂąteaux",
+ lat: 16.2476,
+ lon: -61.1771,
+ alt: 30,
+ description_fr:
+ "Point de vue élevé avec panorama dégagé vers l'Est sur l'Atlantique.",
+ description_en:
+ "Elevated viewpoint with a clear panorama east over the Atlantic.",
+ predictions: {
+ 2025: { date: "2025-07-22", time: "05:12" },
+ 2026: { date: "2026-07-22", time: "05:12" },
+ 2027: { date: "2027-07-22", time: "05:13" },
+ 2028: { date: "2028-07-21", time: "05:13" },
+ 2029: { date: "2029-07-22", time: "05:14" },
+ 2030: { date: "2030-07-22", time: "05:14" },
+ 2031: { date: "2031-07-22", time: "05:15" },
+ 2032: { date: "2032-07-21", time: "05:15" },
+ },
+ },
+ {
+ id: "grande-vigie",
+ name: "Pointe de la Grande Vigie",
+ lat: 16.5098,
+ lon: -61.4666,
+ alt: 81,
+ description_fr:
+ "Point le plus septentrional de la Guadeloupe, horizon marin parfait.",
+ description_en:
+ "Guadeloupe's northernmost point, with a perfect sea horizon.",
+ predictions: {
+ 2025: { date: "2025-07-22", time: "05:11" },
+ 2026: { date: "2026-07-22", time: "05:12" },
+ 2027: { date: "2027-07-22", time: "05:12" },
+ 2028: { date: "2028-07-21", time: "05:12" },
+ 2029: { date: "2029-07-22", time: "05:13" },
+ 2030: { date: "2030-07-22", time: "05:13" },
+ 2031: { date: "2031-07-22", time: "05:14" },
+ 2032: { date: "2032-07-21", time: "05:14" },
+ },
+ },
+ {
+ id: "duzer",
+ name: "Duzer (Sainte-Rose)",
+ lat: 16.3361,
+ lon: -61.743,
+ alt: 20,
+ description_fr:
+ "Site nécessitant un point dégagé vers l'Est sur les mornes.",
+ description_en: "Requires a clear vantage point east over the hills.",
+ predictions: {
+ 2025: { date: "2025-07-22", time: "05:13" },
+ 2026: { date: "2026-07-22", time: "05:14" },
+ 2027: { date: "2027-07-22", time: "05:14" },
+ 2028: { date: "2028-07-21", time: "05:14" },
+ 2029: { date: "2029-07-22", time: "05:15" },
+ 2030: { date: "2030-07-22", time: "05:15" },
+ 2031: { date: "2031-07-22", time: "05:16" },
+ 2032: { date: "2032-07-21", time: "05:16" },
+ },
+ },
+ {
+ id: "saint-felix",
+ name: "Saint-Félix (Le Gosier)",
+ lat: 16.2005,
+ lon: -61.4605,
+ alt: 5,
+ description_fr: "Plage avec observation au niveau de la mer.",
+ description_en: "Beach with sea-level observation.",
+ predictions: {
+ 2025: { date: "2025-07-22", time: "05:13" },
+ 2026: { date: "2026-07-22", time: "05:13" },
+ 2027: { date: "2027-07-22", time: "05:14" },
+ 2028: { date: "2028-07-21", time: "05:14" },
+ 2029: { date: "2029-07-22", time: "05:15" },
+ 2030: { date: "2030-07-22", time: "05:15" },
+ 2031: { date: "2031-07-22", time: "05:16" },
+ 2032: { date: "2032-07-21", time: "05:16" },
+ },
+ },
+ {
+ id: "grande-pointe",
+ name: "Grande Pointe (Trois-RiviĂšres)",
+ lat: 15.9696,
+ lon: -61.6308,
+ alt: 42,
+ description_fr:
+ "Site cÎtier avec une altitude intéressante pour l'observation.",
+ description_en: "Coastal site with a useful elevation for observation.",
+ predictions: {
+ 2025: { date: "2025-07-22", time: "05:13" },
+ 2026: { date: "2026-07-22", time: "05:14" },
+ 2027: { date: "2027-07-22", time: "05:14" },
+ 2028: { date: "2028-07-21", time: "05:15" },
+ 2029: { date: "2029-07-22", time: "05:15" },
+ 2030: { date: "2030-07-22", time: "05:16" },
+ 2031: { date: "2031-07-22", time: "05:16" },
+ 2032: { date: "2032-07-21", time: "05:17" },
+ },
+ },
+ {
+ id: "petit-perou",
+ name: "Petit-Pérou",
+ lat: 16.0517,
+ lon: -61.5567,
+ alt: 10,
+ description_fr:
+ "Site des roches gravées, observation depuis la cÎte.",
+ description_en: "Site of the engraved rocks, observed from the coast.",
+ predictions: {
+ 2025: { date: "2025-07-22", time: "05:14" },
+ 2026: { date: "2026-07-22", time: "05:14" },
+ 2027: { date: "2027-07-22", time: "05:15" },
+ 2028: { date: "2028-07-21", time: "05:15" },
+ 2029: { date: "2029-07-22", time: "05:16" },
+ 2030: { date: "2030-07-22", time: "05:16" },
+ 2031: { date: "2031-07-22", time: "05:17" },
+ 2032: { date: "2032-07-21", time: "05:17" },
+ },
+ },
+ {
+ id: "vieux-fort",
+ name: "Pointe du Vieux-Fort",
+ lat: 15.9483,
+ lon: -61.7072,
+ alt: 20,
+ description_fr:
+ "Point le plus méridional de Basse-Terre, vue sur le canal des Saintes.",
+ description_en:
+ "Basse-Terre's southernmost point, overlooking the Saintes channel.",
+ predictions: {
+ 2025: { date: "2025-07-22", time: "05:14" },
+ 2026: { date: "2026-07-22", time: "05:14" },
+ 2027: { date: "2027-07-22", time: "05:15" },
+ 2028: { date: "2028-07-21", time: "05:15" },
+ 2029: { date: "2029-07-22", time: "05:16" },
+ 2030: { date: "2030-07-22", time: "05:16" },
+ 2031: { date: "2031-07-22", time: "05:17" },
+ 2032: { date: "2032-07-21", time: "05:17" },
+ },
+ },
+];
diff --git a/src/_includes/layouts/base.njk b/src/_includes/layouts/base.njk
new file mode 100644
index 0000000..eddf549
--- /dev/null
+++ b/src/_includes/layouts/base.njk
@@ -0,0 +1,36 @@
+
+
+
+
+
+ {{ pageTitle }} â {{ "meta_title" | t(locale) }}
+
+
+
+
+ {% for loc in locales %}
+
+ {% endfor %}
+
+
+
+
+
+
+ {{ "skip_to_content" | t(locale) }}
+
+ {% include "partials/nav.njk" %}
+
+
+ {{ content | safe }}
+
+
+ {% include "partials/footer.njk" %}
+
+
+
+
diff --git a/src/_includes/partials/footer.njk b/src/_includes/partials/footer.njk
new file mode 100644
index 0000000..e1c9a55
--- /dev/null
+++ b/src/_includes/partials/footer.njk
@@ -0,0 +1,49 @@
+
diff --git a/src/_includes/partials/nav.njk b/src/_includes/partials/nav.njk
new file mode 100644
index 0000000..9a3bd0a
--- /dev/null
+++ b/src/_includes/partials/nav.njk
@@ -0,0 +1,36 @@
+
diff --git a/src/app.css b/src/app.css
deleted file mode 100644
index d407186..0000000
--- a/src/app.css
+++ /dev/null
@@ -1,217 +0,0 @@
-/* Variables CSS pour le thÚme panafricain/caribéen */
-:root {
- /* Couleurs principales inspirées du panafricanisme et des Caraïbes */
- --color-primary: #FFD700; /* Or - Soleil, Sirius */
- --color-secondary: #DC143C; /* Rouge profond */
- --color-tertiary: #228B22; /* Vert forĂȘt */
- --color-dark: #1a1a2e; /* Bleu nuit profond */
- --color-light: #f5f5dc; /* Beige clair */
- --color-accent: #FF6B35; /* Orange corail caribéen */
-
- /* Dégradés */
- --gradient-dawn: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%);
- --gradient-sunrise: linear-gradient(135deg, #FFD700 0%, #FFA500 50%, #FF6B35 100%);
- --gradient-caribbean: linear-gradient(135deg, #00CED1 0%, #20B2AA 50%, #48D1CC 100%);
-
- /* Typographie */
- --font-display: 'Bebas Neue', sans-serif;
- --font-heading: 'Playfair Display', serif;
- --font-body: 'Inter', sans-serif;
-
- /* Espacements */
- --spacing-xs: 0.5rem;
- --spacing-sm: 1rem;
- --spacing-md: 2rem;
- --spacing-lg: 3rem;
- --spacing-xl: 4rem;
-
- /* Animations */
- --transition-base: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
- --transition-slow: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
-}
-
-/* Reset et base */
-* {
- margin: 0;
- padding: 0;
- box-sizing: border-box;
-}
-
-html {
- scroll-behavior: smooth;
-}
-
-body {
- font-family: var(--font-body);
- background-color: var(--color-dark);
- color: var(--color-light);
- overflow-x: hidden;
- line-height: 1.6;
-}
-
-/* Patterns géométriques africains en CSS */
-.pattern-kente {
- background-image:
- repeating-linear-gradient(45deg, transparent, transparent 10px, rgba(255, 215, 0, 0.1) 10px, rgba(255, 215, 0, 0.1) 20px),
- repeating-linear-gradient(-45deg, transparent, transparent 10px, rgba(220, 20, 60, 0.1) 10px, rgba(220, 20, 60, 0.1) 20px);
-}
-
-.pattern-bogolan {
- background-image:
- radial-gradient(circle at 20% 50%, transparent 30%, rgba(255, 215, 0, 0.05) 30%, rgba(255, 215, 0, 0.05) 32%, transparent 32%),
- radial-gradient(circle at 60% 50%, transparent 30%, rgba(255, 215, 0, 0.05) 30%, rgba(255, 215, 0, 0.05) 32%, transparent 32%),
- radial-gradient(circle at 40% 80%, transparent 30%, rgba(255, 215, 0, 0.05) 30%, rgba(255, 215, 0, 0.05) 32%, transparent 32%);
- background-size: 50px 50px;
-}
-
-.pattern-adinkra {
- background-image:
- repeating-conic-gradient(from 45deg at 50% 50%, transparent 0deg, rgba(255, 215, 0, 0.1) 90deg, transparent 90deg, transparent 180deg),
- repeating-conic-gradient(from 0deg at 50% 50%, transparent 0deg, rgba(34, 139, 34, 0.1) 90deg, transparent 90deg, transparent 180deg);
- background-size: 40px 40px;
-}
-
-/* Utilités */
-.container {
- max-width: 1200px;
- margin: 0 auto;
- padding: 0 var(--spacing-sm);
-}
-
-/* Typographie */
-h1, h2, h3, h4, h5, h6 {
- font-family: var(--font-heading);
- font-weight: 700;
- line-height: 1.2;
- margin-bottom: var(--spacing-sm);
-}
-
-h1 {
- font-size: clamp(2.5rem, 8vw, 4rem);
- background: var(--gradient-sunrise);
- -webkit-background-clip: text;
- -webkit-text-fill-color: transparent;
- background-clip: text;
-}
-
-h2 {
- font-size: clamp(2rem, 6vw, 3rem);
- color: var(--color-primary);
-}
-
-h3 {
- font-size: clamp(1.5rem, 4vw, 2rem);
-}
-
-/* Boutons */
-.btn {
- display: inline-block;
- padding: var(--spacing-sm) var(--spacing-md);
- background: var(--gradient-sunrise);
- color: var(--color-dark);
- text-decoration: none;
- border: none;
- border-radius: 50px;
- font-weight: 600;
- font-family: var(--font-body);
- cursor: pointer;
- transition: var(--transition-base);
- position: relative;
- overflow: hidden;
-}
-
-.btn:hover {
- transform: translateY(-2px);
- box-shadow: 0 10px 30px rgba(255, 215, 0, 0.3);
-}
-
-.btn::before {
- content: '';
- position: absolute;
- top: 50%;
- left: 50%;
- width: 0;
- height: 0;
- background: rgba(255, 255, 255, 0.3);
- border-radius: 50%;
- transform: translate(-50%, -50%);
- transition: width 0.6s, height 0.6s;
-}
-
-.btn:active::before {
- width: 300px;
- height: 300px;
-}
-
-/* Cards */
-.card {
- background: rgba(255, 255, 255, 0.05);
- backdrop-filter: blur(10px);
- border: 1px solid rgba(255, 215, 0, 0.2);
- border-radius: 20px;
- padding: var(--spacing-md);
- transition: var(--transition-base);
-}
-
-.card:hover {
- transform: translateY(-5px);
- border-color: rgba(255, 215, 0, 0.5);
- box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3);
-}
-
-/* Animations */
-@keyframes float {
- 0%, 100% { transform: translateY(0); }
- 50% { transform: translateY(-20px); }
-}
-
-@keyframes glow {
- 0%, 100% { opacity: 0.5; }
- 50% { opacity: 1; }
-}
-
-@keyframes rotate {
- from { transform: rotate(0deg); }
- to { transform: rotate(360deg); }
-}
-
-.float {
- animation: float 6s ease-in-out infinite;
-}
-
-.glow {
- animation: glow 2s ease-in-out infinite;
-}
-
-/* Responsive */
-@media (max-width: 768px) {
- .container {
- padding: 0 var(--spacing-xs);
- }
-
- h1 {
- font-size: 2.5rem;
- }
-
- h2 {
- font-size: 2rem;
- }
-}
-
-/* Scrollbar personnalisée */
-::-webkit-scrollbar {
- width: 10px;
-}
-
-::-webkit-scrollbar-track {
- background: var(--color-dark);
-}
-
-::-webkit-scrollbar-thumb {
- background: var(--gradient-sunrise);
- border-radius: 5px;
-}
-
-::-webkit-scrollbar-thumb:hover {
- background: var(--color-primary);
-}
diff --git a/src/assets/fonts/atkinson-400.woff2 b/src/assets/fonts/atkinson-400.woff2
new file mode 100644
index 0000000..2e43c90
Binary files /dev/null and b/src/assets/fonts/atkinson-400.woff2 differ
diff --git a/src/assets/fonts/atkinson-700.woff2 b/src/assets/fonts/atkinson-700.woff2
new file mode 100644
index 0000000..bc31903
Binary files /dev/null and b/src/assets/fonts/atkinson-700.woff2 differ
diff --git a/src/assets/fonts/fraunces-variable.woff2 b/src/assets/fonts/fraunces-variable.woff2
new file mode 100644
index 0000000..32e1ccc
Binary files /dev/null and b/src/assets/fonts/fraunces-variable.woff2 differ
diff --git a/src/associations.njk b/src/associations.njk
new file mode 100644
index 0000000..4b5ab19
--- /dev/null
+++ b/src/associations.njk
@@ -0,0 +1,79 @@
+---
+pagination:
+ data: locales
+ size: 1
+ alias: locale
+permalink: "{% if locale == baseLocale %}/associations/index.html{% else %}/{{ locale }}/associations/index.html{% endif %}"
+layout: layouts/base.njk
+pageKey: associations
+slug: "associations/"
+eleventyComputed:
+ pageTitle: "{{ 'associations_title' | t(locale) }}"
+---
+
+
+
+
+
+
+
{{ "associations_events_title" | t(locale) }}
+
+
+
+
+
{{ "associations_community_title" | t(locale) }}
+
+
+
+
+
+
+
+
{{ "associations_video_title" | t(locale) }}
+
+
+
+
+
{{ "associations_note" | t(locale) }}
+
+
diff --git a/src/components/About.svelte b/src/components/About.svelte
deleted file mode 100644
index 5a49a9e..0000000
--- a/src/components/About.svelte
+++ /dev/null
@@ -1,185 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
- Wep Ronpet - "l'Ouverture de l'Année" en égyptien ancien -
- marquait le jour le plus sacré du calendrier égyptien. Ce jour correspondait
- au lever héliaque de Sirius, quand l'étoile réapparaissait à l'aube aprÚs
- 70 jours d'invisibilité.
-
-
- Le lever héliaque de Sirius n'est pas qu'un simple phénomÚne astronomique.
- C'est un rendez-vous millĂ©naire entre l'humanitĂ© et le cosmos, un moment oĂč
- science et spiritualité se rencontrent dans la lumiÚre de l'aube.
-
-
- En Guadeloupe, observer ce phénomÚne nous connecte directement aux racines
- africaines, oĂč Sirius Ă©tait vĂ©nĂ©rĂ©e comme l'annonciatrice de la vie et du renouveau.
-
-
-
-
- {#each features as feature, i}
-
-
{feature.icon}
-
{$t(feature.title)}
-
{$t(feature.description)}
-
- {/each}
-
-
-
-
-
-
diff --git a/src/components/Calculations.svelte b/src/components/Calculations.svelte
deleted file mode 100644
index 2b1c8f4..0000000
--- a/src/components/Calculations.svelte
+++ /dev/null
@@ -1,230 +0,0 @@
-
-
-
-
-
-
-
-
- {#each Object.entries(calculations) as [key, calc]}
-
- {/each}
-
-
-
-
- {#if selectedCalculation === 'heliacal'}
-
-
Calcul du Lever Héliaque de Sirius
-
-
-
-
Ătapes du Calcul pour la Guadeloupe
-
-
-
1
-
-
Coordonnées de la Guadeloupe
- Latitude: 16.25°N, Longitude: 61.58°O
-
-
-
-
-
2
-
-
Position de Sirius
- Ascension droite: 6h 45m 09s
- Déclinaison: -16° 42' 58"
-
-
-
-
{/if}
-
- {#if selectedCalculation === 'arcus'}
-
-
Arcus Visionis - L'Arc de Vision
-
-
-
- L'Arcus Visionis est l'angle minimal entre le Soleil et une étoile
- pour que celle-ci devienne visible.
-
-
-
- {/if}
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/components/Culture.svelte b/src/components/Culture.svelte
deleted file mode 100644
index dbbb3f3..0000000
--- a/src/components/Culture.svelte
+++ /dev/null
@@ -1,252 +0,0 @@
-
-
-
-
-
-
-
-
-
- {#each cultures as culture, i}
-
-
{culture.icon}
-
{culture.title}
-
{culture.content}
-
- {/each}
-
-
-
-
Chronologie du Savoir
-
-
-
3000 BCE
-
-
Ăgypte Ancienne
-
Premier calendrier basé sur Sirius
-
-
-
-
XIIIe siĂšcle
-
-
Migration Dogon
-
Préservation du savoir astronomique
-
-
-
-
XVe-XVIIe siĂšcle
-
-
Traversée Atlantique
-
Le savoir africain voyage vers les CaraĂŻbes
-
-
-
-
2025
-
-
Renaissance
-
Redécouverte et célébration en Guadeloupe
-
-
-
-
-
-
-
-
diff --git a/src/components/Dogon.svelte b/src/components/Dogon.svelte
deleted file mode 100644
index df13a4c..0000000
--- a/src/components/Dogon.svelte
+++ /dev/null
@@ -1,587 +0,0 @@
-
-
-
-
-
-
-
-
-
- {#each tabs as tab}
-
- {/each}
-
-
-
-
- {#if activeTab === 'cosmogonie'}
-
-
La Cosmogonie Dogon
-
-
-
- Les Dogons du Mali possÚdent une cosmogonie complexe centrée sur Sigu Tolo (Sirius),
- l'étoile la plus brillante du ciel. Leur savoir astronomique, transmis oralement depuis des millénaires,
- révÚle une compréhension sophistiquée du cosmos.
-
-
- Le Sigui, cérémonie célébrée tous les 60 ans, marque le renouvellement du monde
- et commémore la révélation de la parole aux hommes. Cette périodicité correspond étrangement
- à l'orbite de Sirius B autour de Sirius A (50 ans), ajustée par des considérations rituelles.
-
-
-
Le Nommo
-
- Ătre primordial amphibie venu de Sirius, le Nommo apporta la civilisation
- et les connaissances fondamentales aux ancĂȘtres des Dogons.
-
-
-
-
-
-
-
-
-
-
- {/if}
-
- {#if activeTab === 'sirius'}
-
-
Le SystĂšme de Sirius selon les Dogons
-
-
-
Sigu Tolo (Sirius A)
-
L'étoile principale, source de lumiÚre et de vie
-
- - Associée à la féminité et à la fécondité
- - Guide des saisons et des récoltes
- - Centre du systĂšme stellaire
-
-
-
-
-
Po Tolo (Sirius B)
-
L'Ă©toile compagne invisible Ă l'Ćil nu
-
- - Décrite comme "lourde" et "blanche"
- - Orbite de 50 ans autour de Sirius A
- - Découverte par les astronomes occidentaux en 1862
-
-
-
-
-
Emme Ya Tolo (Sirius C ?)
-
TroisiÚme étoile hypothétique du systÚme
-
- - Quatre fois plus légÚre que Po Tolo
- - Orbite plus large
- - Non confirmée par l'astronomie moderne
-
-
-
-
-
-
Le MystĂšre de la Connaissance
-
- Comment les Dogons connaissaient-ils l'existence de Sirius B,
- invisible Ă l'Ćil nu et dĂ©couverte en Occident seulement en 1862 ?
-
-
-
-
Transmission Ancienne
-
Héritage d'une civilisation antérieure avancée
-
-
-
Contact Extraterrestre
-
Les Nommos venus de Sirius
-
-
-
Observation Minutieuse
-
Déduction à partir des perturbations de Sirius A
-
-
-
-
- {/if}
-
- {#if activeTab === 'astronomie'}
-
-
L'Astronomie Dogon
-
-
-
-
đ GĂ©omĂ©trie SacrĂ©e
-
- Les Dogons utilisent des figures géométriques complexes pour
- représenter les mouvements célestes et les cycles cosmiques.
-
-
-
-
-
đ Calendrier Lunaire
-
- Un systÚme calendaire sophistiqué basé sur les phases lunaires
- et la position de Sirius pour l'agriculture.
-
-
-
-
-
đȘ Connaissance PlanĂ©taire
-
- Description des anneaux de Saturne et des lunes de Jupiter,
- invisibles sans télescope.
-
-
-
-
-
đ Structure de l'Univers
-
- Concept d'univers infini avec des mondes multiples,
- similaire aux théories modernes.
-
-
-
-
-
-
Calcul de la Période Sigui
-
Période orbitale Po Tolo : 50 ans
-Ajustement rituel : Ă 1.2
-Période Sigui : 60 ans
-
-Correspondance avec Sirius B :
-- Orbite réelle : 50.1 ans
-- Précision : 99.8%
-
-
-
- {/if}
-
- {#if activeTab === 'heritage'}
-
-
Héritage et Influence
-
-
-
-
Antiquité
-
-
Origines Ăgyptiennes
-
Liens possibles avec les prĂȘtres de l'Ăgypte ancienne qui vĂ©nĂ©raient Sothis (Sirius)
-
-
-
-
-
XIIIe siĂšcle
-
-
Migration vers le Mali
-
Installation dans les falaises de Bandiagara, préservation des traditions
-
-
-
-
-
1931-1956
-
-
Marcel Griaule
-
Ătude ethnographique rĂ©vĂ©lant les connaissances astronomiques dogons
-
-
-
-
-
Aujourd'hui
-
-
Patrimoine Mondial
-
Les Dogons inspirent scientifiques et chercheurs du monde entier
-
-
-
-
-
-
Influence sur la CaraĂŻbe
-
- Les traditions astronomiques africaines, incluant celles des Dogons,
- ont traversé l'Atlantique avec la diaspora, enrichissant les pratiques
- spirituelles et calendaires des Antilles.
-
-
- - đđč HaĂŻti : Vaudou et astronomie sacrĂ©e
- - đŹđ” Guadeloupe : Traditions Gwoka et cycles cosmiques
- - đČđ¶ Martinique : BĂšlĂš et rythmes stellaires
- - đŻđČ JamaĂŻque : Rastafari et conscience cosmique
-
-
-
-
- {/if}
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/components/Footer.svelte b/src/components/Footer.svelte
deleted file mode 100644
index 6600565..0000000
--- a/src/components/Footer.svelte
+++ /dev/null
@@ -1,178 +0,0 @@
-
-
-
-
-
diff --git a/src/components/Globe.svelte b/src/components/Globe.svelte
deleted file mode 100644
index 8642cb9..0000000
--- a/src/components/Globe.svelte
+++ /dev/null
@@ -1,454 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
đ±ïž Glisser pour tourner | đ Molette pour zoomer
-
-
-
-
Le PhénomÚne Global
-
- Le lever héliaque de Sirius n'est pas simultané sur Terre.
- Il progresse comme une vague dorée, commençant dans l'océan Indien
- (La Réunion en juin) pour traverser l'Afrique, les Caraïbes,
- puis remonter vers l'Europe (Paris en août).
-
-
- Cette progression suit la géométrie céleste : plus on va vers le nord,
- plus le phĂ©nomĂšne se produit tard. La Guadeloupe se trouve au cĆur
- de cette vague en juillet, bénéficiant de conditions idéales.
-
-
-
- 27 Juin
- La Réunion
-
-
- 22-23 Juillet
- Guadeloupe & CaraĂŻbes
-
-
- 12 Août
- Paris
-
-
-
-
-
-
-
-
diff --git a/src/components/GlobeGeoJSON.svelte b/src/components/GlobeGeoJSON.svelte
deleted file mode 100644
index aec9698..0000000
--- a/src/components/GlobeGeoJSON.svelte
+++ /dev/null
@@ -1,740 +0,0 @@
-
-
-
-
-
-
-
-
-
-
đ±ïž Glisser pour tourner | đ Molette pour zoomer
-
-
-
-
-
Le PhénomÚne de la Vague
-
- Le lever héliaque de Sirius ne se produit pas simultanément sur toute la Terre.
- Tel une vague cosmique, il progresse d'Est en Ouest, touchant d'abord La Réunion
- fin juin, puis traversant l'Afrique, pour finalement atteindre les CaraĂŻbes en juillet.
-
-
- Cette animation montre la progression de cette "vague planétaire" qui suit
- la rotation terrestre et la position de Sirius dans le ciel. Chaque lieu
- expérimente ce moment sacré à une date précise, créant un calendrier
- cosmique naturel qui a guidé les civilisations pendant des millénaires.
-
-
-
- 27 Juin
- La Réunion
-
-
- 16-19 Juillet
- Kinshasa, Douala, Yaoundé
-
-
- 20-24 Juillet
- Abidjan, Accra, Antilles, Cayenne
-
-
- 25 Juillet
- Bamako, Dakar
-
-
- 3-15 Août
- Le Caire, Paris
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
{$t('associations_events_title')}
-
-
-
-
-
-
-
-
{$t('associations_video_title')}
-
-
-
-
-
-
-
-
-
diff --git a/src/components/GlobeOpenGlobus.svelte.bak b/src/components/GlobeOpenGlobus.svelte.bak
deleted file mode 100644
index 4f77766..0000000
--- a/src/components/GlobeOpenGlobus.svelte.bak
+++ /dev/null
@@ -1,217 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
OpenGlobus
-
Avantages :
-
- - â
Textures satellite réalistes
- - â
Performance WebGL optimisée
- - â
Zoom et navigation fluides
- - â
Support natif des marqueurs
-
-
Inconvénients :
-
- - â Plus lourd (~500KB)
- - â NĂ©cessite connexion internet pour les tuiles
- - â Personnalisation plus complexe
-
-
-
-
-
-
-
-
diff --git a/src/components/GlobeThreeJS.svelte b/src/components/GlobeThreeJS.svelte
deleted file mode 100644
index 0672e40..0000000
--- a/src/components/GlobeThreeJS.svelte
+++ /dev/null
@@ -1,271 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
Three.js
-
Avantages :
-
- - â
Rendu 3D réaliste
- - â
Textures haute qualité
- - â
Effets atmosphériques
- - â
TrÚs bien documenté
-
-
Inconvénients :
-
- - â Plus lourd (~150KB)
- - â NĂ©cessite WebGL
- - â Plus complexe Ă personnaliser
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/components/Hero.svelte b/src/components/Hero.svelte
deleted file mode 100644
index b128d3b..0000000
--- a/src/components/Hero.svelte
+++ /dev/null
@@ -1,544 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
- {$t('hero_title1')}
- {$t('hero_title2')}
-
-
- {$t('hero_subtitle')}
-
-
- {$t('hero_description')}
-
-
- {$t('hero_date')}{$t('hero_date_value')}
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/components/LanguageSelector.svelte b/src/components/LanguageSelector.svelte
deleted file mode 100644
index 424e864..0000000
--- a/src/components/LanguageSelector.svelte
+++ /dev/null
@@ -1,150 +0,0 @@
-
-
-
-
-
-
-
- {#if isOpen}
-
- {#each availableLanguages as lang}
-
- {/each}
-
- {/if}
-
-
-
\ No newline at end of file
diff --git a/src/components/Loader.svelte b/src/components/Loader.svelte
deleted file mode 100644
index 0e9173d..0000000
--- a/src/components/Loader.svelte
+++ /dev/null
@@ -1,141 +0,0 @@
-
-
-{#if loading}
-
-
-
â
-
- S
- i
- r
- i
- u
- s
-
-
-
{progress}%
-
-
-{/if}
-
-
\ No newline at end of file
diff --git a/src/components/Navigation.svelte b/src/components/Navigation.svelte
deleted file mode 100644
index 03a7717..0000000
--- a/src/components/Navigation.svelte
+++ /dev/null
@@ -1,270 +0,0 @@
-
-
-
-
-
diff --git a/src/components/ObservationMap.svelte b/src/components/ObservationMap.svelte
deleted file mode 100644
index 9a2ad72..0000000
--- a/src/components/ObservationMap.svelte
+++ /dev/null
@@ -1,661 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Sites d'Observation
- {#each sites as site}
-
selectSite(site)}
- >
-
-
{site.description}
-
- {#if selectedSite?.id === site.id}
-
-
-
Caractéristiques :
-
- {#each site.features as feature}
- - {feature}
- {/each}
-
-
-
-
đ Meilleur crĂ©neau :
-
{site.bestTime}
-
-
-
đ CoordonnĂ©es GPS :
-
{site.lat}°N, {Math.abs(site.lng)}°O
-
-
- {/if}
-
- {/each}
-
-
-
-
-
-
Conseils pour l'Observation
-
-
-
đ
-
Phase Lunaire
-
Privilégiez les nuits sans Lune ou avec un fin croissant
-
-
-
âïž
-
Météo
-
Vérifiez l'absence de nuages à l'Est, surtout prÚs de l'horizon
-
-
-
â°
-
Horaire
-
Arrivez 30 minutes avant pour habituer vos yeux à l'obscurité
-
-
-
đŠ
-
Ăquipement
-
Lampe rouge, jumelles optionnelles, vĂȘtements chauds
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/components/Observatory.svelte b/src/components/Observatory.svelte
deleted file mode 100644
index a860f8c..0000000
--- a/src/components/Observatory.svelte
+++ /dev/null
@@ -1,435 +0,0 @@
-
-
-
-
-
-
-
-
-
-
Chronologie de l'Observation
-
-
-
- {#each observationPhases as phase, i}
-
-
{phase.icon}
-
{phase.time}
-
-
{phase.title}
-
{phase.description}
-
-
- {/each}
-
-
-
-
-
-
Ăquipement RecommandĂ©
-
- {#each equipment as item, i}
-
- {/each}
-
-
-
-
-
-
Conseils Pratiques
-
-
-
đ€ïž
-
Météo Idéale
-
Ciel dégagé à l'Est, pas de nuages bas, humidité modérée
-
-
-
đ
-
Phase Lunaire
-
Nouvelle lune ou croissant fin pour un ciel plus sombre
-
-
-
đ±
-
Applications Utiles
-
Stellarium, SkySafari, Star Walk pour repérer les constellations
-
-
-
đ„
-
En Groupe
-
Partagez ce moment unique avec famille et amis
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/components/Predictions.svelte b/src/components/Predictions.svelte
deleted file mode 100644
index f144502..0000000
--- a/src/components/Predictions.svelte
+++ /dev/null
@@ -1,430 +0,0 @@
-
-
-
-
-
-
-
-
-
{$t('predictions_select_location')}
-
- {#each locations as location}
-
- {/each}
-
-
-
-
- {#if calculationInProgress}
-
-
â
-
Calcul en cours...
-
- {/if}
-
- {#if results && !calculationInProgress}
-
-
{$t('predictions_results_for')} {results.location}
-
-
-
-
đ
-
{$t('predictions_heliacal_rising')}
-
{results.heliacalDate}
-
-
-
-
â°
-
{$t('predictions_best_observation')}
-
{results.bestTime}
-
-
-
-
â±ïž
-
{$t('predictions_visibility_duration')}
-
{results.duration}
-
-
-
-
đ§
-
{$t('predictions_azimuth')}
-
{results.azimuth}
-
-
-
-
đ
-
{$t('predictions_max_altitude')}
-
{results.altitude}
-
-
-
-
âš
-
{$t('predictions_magnitude')}
-
{results.magnitude}
-
-
-
-
-
đĄ Conseils d'observation
-
- - Arrivez 30 minutes avant pour habituer vos yeux
- - Cherchez vers l'Est-Sud-Est (ESE)
- - Sirius apparaßtra comme l'étoile la plus brillante
- - Conditions idéales : ciel dégagé, sans Lune
-
-
-
- {/if}
-
-
-
-
-
-
diff --git a/src/components/Science.svelte b/src/components/Science.svelte
deleted file mode 100644
index 4a2bd6d..0000000
--- a/src/components/Science.svelte
+++ /dev/null
@@ -1,375 +0,0 @@
-
-
-
-
-
-
-
-
- {#each tabs as tab}
-
- {/each}
-
-
-
- {#if activeTab === 'mechanics'}
-
-
Le Ballet Cosmique
-
- Le lever héliaque est le fruit d'une chorégraphie céleste précise.
- Pendant environ 70 jours, Sirius reste invisible, cachée par l'éclat du Soleil.
- Son retour Ă l'aube marque un moment unique oĂč l'Ă©toile se lĂšve juste avant
- le Soleil, visible quelques instants dans les lueurs du crépuscule matinal.
-
-
-
-
- âïž
-
-
-
-
- đ
-
-
-
- â
-
-
-
-
-
- La Terre, dans son mouvement orbital annuel, modifie notre perspective
- sur les étoiles. Quand le Soleil se trouve entre nous et Sirius,
- l'étoile devient invisible. C'est seulement quand l'angle devient
- favorable que Sirius réapparaßt.
-
-
- {/if}
-
- {#if activeTab === 'arcus'}
-
-
L'Arc de Visibilité
-
- L'Arcus Visionis est l'angle critique : le Soleil doit ĂȘtre Ă environ
- 9-10° sous l'horizon pour que Sirius devienne visible. C'est un équilibre
- délicat entre la brillance de l'étoile et la luminosité du ciel.
-
-
-
-
- Horizon
-
-
-
- â Sirius
-
-
- âïž Soleil
-
-
-
-
- Pour Sirius, avec sa magnitude exceptionnelle de -1.46, cet angle
- est relativement faible comparé à d'autres étoiles moins brillantes.
- C'est pourquoi elle est l'une des premiĂšres Ă ĂȘtre visible Ă l'aube.
-
-
- {/if}
-
- {#if activeTab === 'factors'}
-
-
Les Variables en Jeu
-
-
-
-
đ
-
Magnitude
-
- Sirius brille Ă -1.46, la rendant visible mĂȘme dans des conditions
- difficiles. Plus une étoile est brillante, plus tÎt elle perce
- les lueurs de l'aube.
-
-
-
-
-
đșïž
-
Latitude
-
- à 16°N en Guadeloupe, les astres se lÚvent presque verticalement.
- Cette géométrie tropicale influence la durée du crépuscule et
- la visibilité.
-
-
-
-
-
đš
-
AtmosphĂšre
-
- L'humidité caribéenne et les brumes de sable peuvent retarder
- la visibilité de plusieurs jours. Un ciel sec et clair est idéal.
-
-
-
-
- {/if}
-
-
-
-
-
-
diff --git a/src/culture-savoirs.njk b/src/culture-savoirs.njk
new file mode 100644
index 0000000..eb5a750
--- /dev/null
+++ b/src/culture-savoirs.njk
@@ -0,0 +1,192 @@
+---
+pagination:
+ data: locales
+ size: 1
+ alias: locale
+permalink: "{% if locale == baseLocale %}/culture-savoirs/index.html{% else %}/{{ locale }}/culture-savoirs/index.html{% endif %}"
+layout: layouts/base.njk
+pageKey: culture
+slug: "culture-savoirs/"
+eleventyComputed:
+ pageTitle: "{{ 'culture_title' | t(locale) }}"
+---
+
+
+
+
+
+
+
đș
+
{{ "culture_egypt_title" | t(locale) }}
+
{{ "culture_egypt_desc" | t(locale) }}
+
+
+
đ
+
{{ "culture_dogon_title" | t(locale) }}
+
{{ "culture_dogon_desc" | t(locale) }}
+
+
+
â”
+
{{ "culture_caribbean_title" | t(locale) }}
+
{{ "culture_caribbean_desc" | t(locale) }}
+
+
+
+
{{ "culture_timeline_title" | t(locale) }}
+
+
+
{{ "culture_timeline_1_date" | t(locale) }}
+
{{ "culture_timeline_1_title" | t(locale) }}
+
{{ "culture_timeline_1_desc" | t(locale) }}
+
+
+
{{ "culture_timeline_2_date" | t(locale) }}
+
{{ "culture_timeline_2_title" | t(locale) }}
+
{{ "culture_timeline_2_desc" | t(locale) }}
+
+
+
{{ "culture_timeline_3_date" | t(locale) }}
+
{{ "culture_timeline_3_title" | t(locale) }}
+
{{ "culture_timeline_3_desc" | t(locale) }}
+
+
+
{{ "culture_timeline_4_date" | t(locale) }}
+
{{ "culture_timeline_4_title" | t(locale) }}
+
{{ "culture_timeline_4_desc" | t(locale) }}
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/data/predictions.js b/src/data/predictions.js
deleted file mode 100644
index 1d53560..0000000
--- a/src/data/predictions.js
+++ /dev/null
@@ -1,90 +0,0 @@
-// Données des prédictions du lever héliaque
-export const predictionsData = {
- "Pointe des ChĂąteaux": {
- coords: { lat: 16.2476, lon: -61.1771, alt: 30 },
- description: "Point de vue élevé avec panorama dégagé vers l'Est sur l'Atlantique",
- predictions: {
- "2025": { date: "22 juillet", time: "05:12" },
- "2026": { date: "22 juillet", time: "05:12" },
- "2027": { date: "22 juillet", time: "05:13" },
- "2028": { date: "21 juillet", time: "05:13" },
- "2029": { date: "22 juillet", time: "05:14" }
- }
- },
- "Pointe de la Grande Vigie": {
- coords: { lat: 16.5098, lon: -61.4666, alt: 81 },
- description: "Point le plus septentrional de la Guadeloupe, horizon marin parfait",
- predictions: {
- "2025": { date: "22 juillet", time: "05:11" },
- "2026": { date: "22 juillet", time: "05:12" },
- "2027": { date: "22 juillet", time: "05:12" },
- "2028": { date: "21 juillet", time: "05:12" },
- "2029": { date: "22 juillet", time: "05:13" }
- }
- },
- "Duzer (Sainte-Rose)": {
- coords: { lat: 16.3361, lon: -61.7430, alt: 20 },
- description: "Site nécessitant un point dégagé vers l'Est sur les mornes",
- predictions: {
- "2025": { date: "22 juillet", time: "05:13" },
- "2026": { date: "22 juillet", time: "05:14" },
- "2027": { date: "22 juillet", time: "05:14" },
- "2028": { date: "21 juillet", time: "05:14" },
- "2029": { date: "22 juillet", time: "05:15" }
- }
- },
- "Saint-Félix (Le Gosier)": {
- coords: { lat: 16.2005, lon: -61.4605, alt: 5 },
- description: "Plage avec observation au niveau de la mer",
- predictions: {
- "2025": { date: "22 juillet", time: "05:13" },
- "2026": { date: "22 juillet", time: "05:13" },
- "2027": { date: "22 juillet", time: "05:14" },
- "2028": { date: "21 juillet", time: "05:14" },
- "2029": { date: "22 juillet", time: "05:15" }
- }
- },
- "Grande Pointe (Trois-RiviĂšres)": {
- coords: { lat: 15.9696, lon: -61.6308, alt: 42 },
- description: "Site cÎtier avec altitude intéressante pour l'observation",
- predictions: {
- "2025": { date: "22 juillet", time: "05:13" },
- "2026": { date: "22 juillet", time: "05:14" },
- "2027": { date: "22 juillet", time: "05:14" },
- "2028": { date: "21 juillet", time: "05:15" },
- "2029": { date: "22 juillet", time: "05:15" }
- }
- },
- "Petit-Pérou": {
- coords: { lat: 16.0517, lon: -61.5567, alt: 10 },
- description: "Site des roches gravées, observation depuis la cÎte",
- predictions: {
- "2025": { date: "22 juillet", time: "05:14" },
- "2026": { date: "22 juillet", time: "05:14" },
- "2027": { date: "22 juillet", time: "05:15" },
- "2028": { date: "21 juillet", time: "05:15" },
- "2029": { date: "22 juillet", time: "05:16" }
- }
- },
- "Pointe du Vieux-Fort": {
- coords: { lat: 15.9483, lon: -61.7072, alt: 20 },
- description: "Point le plus méridional de Basse-Terre, vue sur le canal des Saintes",
- predictions: {
- "2025": { date: "22 juillet", time: "05:14" },
- "2026": { date: "22 juillet", time: "05:14" },
- "2027": { date: "22 juillet", time: "05:15" },
- "2028": { date: "21 juillet", time: "05:15" },
- "2029": { date: "22 juillet", time: "05:16" }
- }
- }
-};
-
-export const years = ["2025", "2026", "2027", "2028", "2029"];
-
-export function calculateObservationWindow(dateStr) {
- const day = parseInt(dateStr.split(' ')[0]);
- const month = dateStr.split(' ')[1];
- const startDay = day - 2;
- const endDay = day + 2;
- return `${startDay} au ${endDay} ${month}`;
-}
diff --git a/src/data/world.js b/src/data/world.js
deleted file mode 100644
index e249920..0000000
--- a/src/data/world.js
+++ /dev/null
@@ -1,85 +0,0 @@
-// Données simplifiées des continents en GeoJSON
-// Source: Natural Earth (simplified)
-export const worldData = {
- "type": "FeatureCollection",
- "features": [
- {
- "type": "Feature",
- "properties": { "name": "Africa" },
- "geometry": {
- "type": "Polygon",
- "coordinates": [[
- [-17.5, 35], [-5, 36], [10, 37], [35, 30], [42, 15],
- [51, 12], [51, -2], [41, -12], [35, -25], [28, -33],
- [20, -35], [18, -35], [12, -18], [10, -5], [8, 5],
- [-5, 5], [-17, 15], [-17.5, 35]
- ]]
- }
- },
- {
- "type": "Feature",
- "properties": { "name": "Europe" },
- "geometry": {
- "type": "Polygon",
- "coordinates": [[
- [-10, 36], [-5, 43], [0, 50], [10, 54], [20, 59],
- [30, 60], [40, 55], [30, 45], [20, 40], [10, 45],
- [0, 40], [-10, 36]
- ]]
- }
- },
- {
- "type": "Feature",
- "properties": { "name": "Asia" },
- "geometry": {
- "type": "Polygon",
- "coordinates": [[
- [26, 40], [40, 45], [60, 50], [80, 55], [100, 60],
- [120, 60], [140, 50], [145, 40], [135, 30], [120, 20],
- [100, 10], [80, 15], [70, 25], [60, 30], [45, 35],
- [26, 40]
- ]]
- }
- },
- {
- "type": "Feature",
- "properties": { "name": "North America" },
- "geometry": {
- "type": "Polygon",
- "coordinates": [[
- [-170, 65], [-165, 68], [-150, 70], [-130, 70], [-100, 70],
- [-80, 68], [-65, 60], [-55, 50], [-65, 45], [-75, 40],
- [-80, 35], [-85, 30], [-90, 25], [-95, 20], [-105, 20],
- [-110, 25], [-115, 30], [-120, 35], [-125, 40], [-130, 45],
- [-135, 50], [-140, 55], [-150, 58], [-160, 60], [-170, 65]
- ]]
- }
- },
- {
- "type": "Feature",
- "properties": { "name": "South America" },
- "geometry": {
- "type": "Polygon",
- "coordinates": [[
- [-35, -5], [-38, -15], [-40, -20], [-48, -25], [-58, -35],
- [-65, -45], [-70, -55], [-68, -55], [-73, -45], [-72, -35],
- [-70, -25], [-75, -15], [-78, -5], [-80, 0], [-77, 5],
- [-75, 10], [-70, 12], [-60, 8], [-50, 5], [-35, -5]
- ]]
- }
- },
- {
- "type": "Feature",
- "properties": { "name": "Australia" },
- "geometry": {
- "type": "Polygon",
- "coordinates": [[
- [113, -22], [130, -12], [135, -12], [140, -18], [145, -20],
- [150, -25], [153, -30], [150, -35], [145, -38], [140, -38],
- [135, -35], [130, -32], [125, -32], [120, -35], [115, -35],
- [113, -30], [113, -22]
- ]]
- }
- }
- ]
-};
diff --git a/src/index.njk b/src/index.njk
new file mode 100644
index 0000000..339b132
--- /dev/null
+++ b/src/index.njk
@@ -0,0 +1,71 @@
+---
+pagination:
+ data: locales
+ size: 1
+ alias: locale
+permalink: "{% if locale == baseLocale %}/index.html{% else %}/{{ locale }}/index.html{% endif %}"
+layout: layouts/base.njk
+pageKey: home
+slug: ""
+eleventyComputed:
+ pageTitle: "{{ 'hero_title1' | t(locale) }} {{ 'hero_title2' | t(locale) }}"
+---
+
+
+
+
+
{{ "hero_eyebrow" | t(locale) }}
+
+ {{ "hero_title1" | t(locale) }}
+ {{ "hero_title2" | t(locale) }}
+
+
{{ "hero_subtitle" | t(locale) }}
+
{{ "hero_description" | t(locale) }}
+
+ {{ "hero_date_label" | t(locale) }}
+ {{ nextRising.date | formatDate(locale) }} · {{ nextRising.time }}
+
+
+
+
+
+
+
+
+
+
+
{{ "home_intro_p1" | t(locale) | safe }}
+
{{ "home_intro_p2" | t(locale) }}
+
{{ "home_intro_p3" | t(locale) }}
+
+
+
+
+
{{ "feature_brightest_title" | t(locale) }}
+
{{ "feature_brightest_desc" | t(locale) }}
+
+
+
{{ "feature_rising_title" | t(locale) }}
+
{{ "feature_rising_desc" | t(locale) }}
+
+
+
{{ "feature_heritage_title" | t(locale) }}
+
{{ "feature_heritage_desc" | t(locale) }}
+
+
+
+
diff --git a/src/islands/globe/SiriusGlobe.svelte b/src/islands/globe/SiriusGlobe.svelte
new file mode 100644
index 0000000..a0e282d
--- /dev/null
+++ b/src/islands/globe/SiriusGlobe.svelte
@@ -0,0 +1,107 @@
+
+
+
+
+
+ {#if activeCity}
+ {activeCity.name} â {activeCity.date}
+ {:else}
+
+ {/if}
+
+
+
+
diff --git a/src/islands/globe/mount.js b/src/islands/globe/mount.js
new file mode 100644
index 0000000..089c619
--- /dev/null
+++ b/src/islands/globe/mount.js
@@ -0,0 +1,24 @@
+const container = document.querySelector('[data-island="globe"]');
+
+if (container && "IntersectionObserver" in window) {
+ const observer = new IntersectionObserver(
+ (entries) => {
+ for (const entry of entries) {
+ if (!entry.isIntersecting) continue;
+ observer.disconnect();
+
+ Promise.all([
+ import("svelte"),
+ import("./SiriusGlobe.svelte"),
+ ]).then(([{ mount }, { default: SiriusGlobe }]) => {
+ const target = container.querySelector(".island-app");
+ mount(SiriusGlobe, { target });
+ container.classList.add("is-enhanced");
+ });
+ }
+ },
+ { rootMargin: "200px" }
+ );
+
+ observer.observe(container);
+}
diff --git a/src/islands/globe/world.js b/src/islands/globe/world.js
new file mode 100644
index 0000000..6e39810
--- /dev/null
+++ b/src/islands/globe/world.js
@@ -0,0 +1,77 @@
+// Continents simplifiĂ©s (issus de Natural Earth, tracĂ© approximatif) â
+// utilisés uniquement comme repÚre visuel derriÚre la vague du lever héliaque.
+export const worldData = {
+ type: "FeatureCollection",
+ features: [
+ {
+ type: "Feature",
+ properties: { name: "Africa" },
+ geometry: {
+ type: "Polygon",
+ coordinates: [[
+ [-17.5, 35], [-5, 36], [10, 37], [35, 30], [42, 15],
+ [51, 12], [51, -2], [41, -12], [35, -25], [28, -33],
+ [20, -35], [18, -35], [12, -18], [10, -5], [8, 5],
+ [-5, 5], [-17, 15], [-17.5, 35],
+ ]],
+ },
+ },
+ {
+ type: "Feature",
+ properties: { name: "Europe" },
+ geometry: {
+ type: "Polygon",
+ coordinates: [[
+ [-10, 36], [-5, 43], [0, 50], [10, 54], [20, 59],
+ [30, 60], [40, 55], [30, 45], [20, 40], [10, 45],
+ [0, 40], [-10, 36],
+ ]],
+ },
+ },
+ {
+ type: "Feature",
+ properties: { name: "North America" },
+ geometry: {
+ type: "Polygon",
+ coordinates: [[
+ [-170, 65], [-165, 68], [-150, 70], [-130, 70], [-100, 70],
+ [-80, 68], [-65, 60], [-55, 50], [-65, 45], [-75, 40],
+ [-80, 35], [-85, 30], [-90, 25], [-95, 20], [-105, 20],
+ [-110, 25], [-115, 30], [-120, 35], [-125, 40], [-130, 45],
+ [-135, 50], [-140, 55], [-150, 58], [-160, 60], [-170, 65],
+ ]],
+ },
+ },
+ {
+ type: "Feature",
+ properties: { name: "South America" },
+ geometry: {
+ type: "Polygon",
+ coordinates: [[
+ [-35, -5], [-38, -15], [-40, -20], [-48, -25], [-58, -35],
+ [-65, -45], [-70, -55], [-68, -55], [-73, -45], [-72, -35],
+ [-70, -25], [-75, -15], [-78, -5], [-80, 0], [-77, 5],
+ [-75, 10], [-70, 12], [-60, 8], [-50, 5], [-35, -5],
+ ]],
+ },
+ },
+ ],
+};
+
+// Progression du lever héliaque à travers la diaspora africaine et caribéenne
+// (fin juin à mi-août), du plus oriental au plus occidental.
+export const waveCities = [
+ { name: "La Réunion", lat: -21.1151, lon: 55.5364, date: "27 juin" },
+ { name: "Kinshasa", lat: -4.4419, lon: 15.2663, date: "16 juillet" },
+ { name: "Douala", lat: 4.0511, lon: 9.7679, date: "18 juillet" },
+ { name: "Yaoundé", lat: 3.848, lon: 11.5021, date: "19 juillet" },
+ { name: "Abidjan", lat: 5.36, lon: -4.0083, date: "20 juillet" },
+ { name: "Accra", lat: 5.6037, lon: -0.187, date: "21 juillet" },
+ { name: "Guadeloupe", lat: 16.265, lon: -61.551, date: "22 juillet" },
+ { name: "Martinique", lat: 14.6415, lon: -61.0242, date: "23 juillet" },
+ { name: "Dakar", lat: 14.7167, lon: -17.4677, date: "23 juillet" },
+ { name: "Cayenne", lat: 4.9346, lon: -52.3281, date: "24 juillet" },
+ { name: "Bamako", lat: 12.6392, lon: -8.0029, date: "25 juillet" },
+ { name: "Le Caire", lat: 30.0444, lon: 31.2357, date: "3 août" },
+ { name: "Paris", lat: 48.8566, lon: 2.3522, date: "15 août" },
+];
diff --git a/src/islands/map/ObservationMap.svelte b/src/islands/map/ObservationMap.svelte
new file mode 100644
index 0000000..35255f5
--- /dev/null
+++ b/src/islands/map/ObservationMap.svelte
@@ -0,0 +1,117 @@
+
+
+
+
+
+ {#if active}
+
+
{active.name}
+
{active[`description_${locale}`] ?? active.description_fr}
+
{active.lat}°N, {active.lon}°O â {active.alt} m
+
+ {/if}
+
+
+
diff --git a/src/islands/map/mount.js b/src/islands/map/mount.js
new file mode 100644
index 0000000..e9746fe
--- /dev/null
+++ b/src/islands/map/mount.js
@@ -0,0 +1,31 @@
+const container = document.querySelector('[data-island="map"]');
+
+if (container && "IntersectionObserver" in window) {
+ const observer = new IntersectionObserver(
+ (entries) => {
+ for (const entry of entries) {
+ if (!entry.isIntersecting) continue;
+ observer.disconnect();
+
+ Promise.all([
+ import("svelte"),
+ import("./ObservationMap.svelte"),
+ ]).then(([{ mount }, { default: ObservationMap }]) => {
+ const target = container.querySelector(".island-app");
+ const sitesData = JSON.parse(document.getElementById("sites-data").textContent);
+ const locale = document.documentElement.lang;
+
+ mount(ObservationMap, {
+ target,
+ props: { sites: sitesData, locale },
+ });
+
+ container.classList.add("is-enhanced");
+ });
+ }
+ },
+ { rootMargin: "200px" }
+ );
+
+ observer.observe(container);
+}
diff --git a/src/islands/predictions/PredictionsCalculator.svelte b/src/islands/predictions/PredictionsCalculator.svelte
new file mode 100644
index 0000000..9325444
--- /dev/null
+++ b/src/islands/predictions/PredictionsCalculator.svelte
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+ {#if prediction}
+
+
{labels.heliacal}
+
{formatDate(prediction.date)} · {prediction.time}
+
{labels.window}
+
{windowLabel(prediction.date)}
+
+ {/if}
+
+
+
diff --git a/src/islands/predictions/mount.js b/src/islands/predictions/mount.js
new file mode 100644
index 0000000..ce54831
--- /dev/null
+++ b/src/islands/predictions/mount.js
@@ -0,0 +1,24 @@
+import { mount } from "svelte";
+import PredictionsCalculator from "./PredictionsCalculator.svelte";
+
+const container = document.querySelector('[data-island="predictions"]');
+if (container) {
+ const target = container.querySelector(".island-app");
+ const sitesData = JSON.parse(document.getElementById("sites-data").textContent);
+
+ mount(PredictionsCalculator, {
+ target,
+ props: {
+ sites: sitesData,
+ year: Number(target.dataset.year),
+ locale: target.dataset.locale,
+ labels: {
+ select: target.dataset.selectLabel,
+ heliacal: target.dataset.heliacalLabel,
+ window: target.dataset.windowLabel,
+ },
+ },
+ });
+
+ container.classList.add("is-enhanced");
+}
diff --git a/src/lib/anime.js b/src/lib/anime.js
deleted file mode 100644
index 69e9338..0000000
--- a/src/lib/anime.js
+++ /dev/null
@@ -1,4 +0,0 @@
-// Import anime.js v3 for Vite
-import anime from 'animejs/lib/anime.es.js';
-
-export default anime;
\ No newline at end of file
diff --git a/src/lib/i18n.js b/src/lib/i18n.js
deleted file mode 100644
index 09d53dc..0000000
--- a/src/lib/i18n.js
+++ /dev/null
@@ -1,286 +0,0 @@
-import { writable, derived } from 'svelte/store';
-
-// Store pour la langue actuelle
-export const currentLanguage = writable('fr');
-
-// Traductions
-const translations = {
- fr: {
- // Navigation
- nav_home: 'Accueil',
- nav_about: 'Ă Propos',
- nav_predictions: 'Prédictions',
- nav_science: 'Science',
- nav_culture: 'Culture',
- nav_observatory: 'Observatoire',
- nav_associations: 'Associations',
-
- // Hero
- hero_title1: 'Sirius',
- hero_title2: 'en Guadeloupe',
- hero_subtitle: 'Wep Ronpet - L\'Ouverture de l\'Année Cosmique',
- hero_description: 'Le rendez-vous millénaire entre Ciel, Science et Culture',
- hero_date: 'Lever héliaque : ',
- hero_date_value: '22 Juillet 2025',
- hero_cta_predictions: 'Découvrir les Prédictions',
- hero_cta_learn: 'En Savoir Plus',
-
- // About
- about_title: 'Le Lever Héliaque de Sirius',
- about_subtitle: 'Un phénomÚne astronomique millénaire',
- about_intro: 'Le lever héliaque de Sirius est un événement céleste qui a façonné les civilisations depuis des millénaires.',
- // Features
- feature_astronomy_title: 'Astronomie',
- feature_astronomy_desc: 'Sirius, l\'étoile la plus brillante, guide de navigation céleste',
- feature_culture_title: 'Culture',
- feature_culture_desc: 'De l\'Ăgypte aux Dogons, un hĂ©ritage universel',
- feature_spirituality_title: 'Spiritualité',
- feature_spirituality_desc: 'Renaissance, renouveau et connexion cosmique',
-
- // Predictions
- predictions_title: 'Prédictions 2025',
- predictions_subtitle: 'Calculez la date exacte pour votre lieu d\'observation',
- predictions_select_location: 'Sélectionnez votre lieu',
- predictions_results_for: 'Résultats pour',
- predictions_heliacal_rising: 'Lever héliaque',
- predictions_best_observation: 'Meilleure observation',
- predictions_visibility_duration: 'Durée de visibilité',
- predictions_azimuth: 'Azimut au lever',
- predictions_max_altitude: 'Altitude maximale',
- predictions_magnitude: 'Magnitude apparente',
-
- // Science
- science_title: 'La Science du Lever Héliaque',
- science_subtitle: 'Comprendre le phénomÚne astronomique',
-
- // Culture
- culture_title: 'Héritage Culturel',
- culture_subtitle: 'Sirius Ă travers les civilisations',
- culture_timeline_title: 'Chronologie du Savoir',
-
- // Observatory
- observatory_title: 'Guide d\'Observation',
- observatory_subtitle: 'Tout pour observer Sirius en Guadeloupe',
-
- // Associations
- associations_title: 'Associations qui fĂȘtent le Wep Ronpet',
- associations_subtitle: 'Découvrez les événements et communautés qui célÚbrent le Nouvel An Kamit',
- associations_events_title: 'ĂvĂ©nements Wep Ronpet 2025',
- associations_community_title: 'Communauté & Ressources',
- associations_video_title: 'Découvrir le Wep Ronpet',
- associations_event1_title: 'Nouvel An Kamite',
- associations_event1_organizer: 'Afrocentricity International & Famille Muntu âą GRATUIT - de 16 ans',
- associations_event1_desc: 'Temps sacrĂ© de passage vers une nouvelle rotation cosmique, vĂ©cu en harmonie avec les lois de l\'univers. Renouons avec nos racines spirituelles, honorons nos ancĂȘtres, et rĂ©alignons nos vies sur les principes de MaĂąt. CĂ©rĂ©monie et rituels, gastronomie kamite, marchĂ© artisanal.',
- associations_event2_title: 'Nouvel An Kamit 6262',
- associations_event2_organizer: 'Mouvement Politique Spirituel MUN âą Le Lamentin, Martinique',
- associations_event2_desc: 'Célébration avec la Nouvelle Lune au KAY NZINGHA. Cérémonie, rituels, conférences, dßner kamit, soirée dansante pour la puissance et la confiance du pays. De 15h à minuit.',
- associations_link1_title: '14Ăšme Membre',
- associations_link1_desc: 'Site web - ĂvĂ©nements',
- associations_link2_title: 'Mouvement Politique Spirituel MUN',
- associations_link2_desc: 'Page Facebook officielle',
-
- // Footer
- footer_copyright: 'Projet rĂ©alisĂ© avec â€ïž par',
- footer_and: 'et'
- },
-
- en: {
- // Navigation
- nav_home: 'Home',
- nav_about: 'About',
- nav_predictions: 'Predictions',
- nav_science: 'Science',
- nav_culture: 'Culture',
- nav_observatory: 'Observatory',
- nav_associations: 'Associations',
-
- // Hero
- hero_title1: 'Sirius',
- hero_title2: 'in Guadeloupe',
- hero_subtitle: 'Wep Ronpet - The Opening of the Cosmic Year',
- hero_description: 'The millennial meeting between Sky, Science and Culture',
- hero_date: 'Heliacal rising: ',
- hero_date_value: 'July 22, 2025',
- hero_cta_predictions: 'Discover Predictions',
- hero_cta_learn: 'Learn More',
-
- // About about_title: 'The Heliacal Rising of Sirius',
- about_subtitle: 'A millennial astronomical phenomenon',
- about_intro: 'The heliacal rising of Sirius is a celestial event that has shaped civilizations for millennia.',
-
- // Features
- feature_astronomy_title: 'Astronomy',
- feature_astronomy_desc: 'Sirius, the brightest star, celestial navigation guide',
- feature_culture_title: 'Culture',
- feature_culture_desc: 'From Egypt to the Dogon, a universal heritage',
- feature_spirituality_title: 'Spirituality',
- feature_spirituality_desc: 'Renaissance, renewal and cosmic connection',
-
- // Predictions
- predictions_title: 'Predictions 2025',
- predictions_subtitle: 'Calculate the exact date for your observation location',
- predictions_select_location: 'Select your location',
- predictions_results_for: 'Results for',
- predictions_heliacal_rising: 'Heliacal rising',
- predictions_best_observation: 'Best observation',
- predictions_visibility_duration: 'Visibility duration',
- predictions_azimuth: 'Azimuth at rising',
- predictions_max_altitude: 'Maximum altitude',
- predictions_magnitude: 'Apparent magnitude',
-
- // Science
- science_title: 'The Science of Heliacal Rising',
- science_subtitle: 'Understanding the astronomical phenomenon',
-
- // Culture
- culture_title: 'Cultural Heritage',
- culture_subtitle: 'Sirius through civilizations',
- culture_timeline_title: 'Timeline of Knowledge',
-
- // Observatory
- observatory_title: 'Observation Guide',
- observatory_subtitle: 'Everything to observe Sirius in Guadeloupe',
-
- // Associations
- associations_title: 'Associations celebrating Wep Ronpet',
- associations_subtitle: 'Discover events and communities celebrating the Kamit New Year',
- associations_events_title: 'Wep Ronpet 2025 Events',
- associations_community_title: 'Community & Resources',
- associations_video_title: 'Discover Wep Ronpet',
- associations_event1_title: 'Kamite New Year',
- associations_event1_organizer: 'Afrocentricity International & Famille Muntu âą FREE under 16',
- associations_event1_desc: 'Sacred time of passage to a new cosmic rotation, lived in harmony with the laws of the universe. Let us reconnect with our spiritual roots, honor our ancestors, and realign our lives with the principles of Maat. Ceremony and rituals, Kamite gastronomy, artisan market.',
- associations_event2_title: 'Kamit New Year 6262',
- associations_event2_organizer: 'Mouvement Politique Spirituel MUN âą Le Lamentin, Martinique',
- associations_event2_desc: 'Celebration with the New Moon at KAY NZINGHA. Ceremony, rituals, conferences, Kamit dinner, dance evening for the power and confidence of the country. From 3pm to midnight.',
- associations_link1_title: '14th Member',
- associations_link1_desc: 'Website - Events',
- associations_link2_title: 'Mouvement Politique Spirituel MUN',
- associations_link2_desc: 'Official Facebook page',
-
- // Footer
- footer_copyright: 'Project made with â€ïž by',
- footer_and: 'and'
- },
-
- ht: {
- // Navigation
- nav_home: 'AkĂšy',
- nav_about: 'KonsĂšnan',
- nav_predictions: 'Prediksyon',
- nav_science: 'Syans',
- nav_culture: 'Kilti',
- nav_observatory: 'ObsĂšvatwa',
- nav_associations: 'Asosyasyon',
-
- // Hero
- hero_title1: 'Sirius',
- hero_title2: 'nan Gwadloup',
- hero_subtitle: 'Wep Ronpet - OuvĂšti Ane Kosmik la',
- hero_description: 'Randevou milenĂš ant SyĂšl, Syans ak Kilti',
- hero_date: 'Leve elyak: ',
- hero_date_value: '22 JiyĂš 2025',
- hero_cta_predictions: 'Dekouvri Prediksyon yo', hero_cta_learn: 'Aprann Plis',
-
- // About
- about_title: 'Leve Elyak Sirius la',
- about_subtitle: 'Yon fenomĂšn astwonomik milenĂš',
- about_intro: 'Leve elyak Sirius se yon evĂšnman selĂšs ki fĂČme sivilizasyon yo depi plizyĂš milye ane.',
-
- // Features
- feature_astronomy_title: 'Astwonomi',
- feature_astronomy_desc: 'Sirius, zetwal ki pi klere a, gid navigasyon selĂšs',
- feature_culture_title: 'Kilti',
- feature_culture_desc: 'Depi Lejip rive Dogon yo, yon eritaj inivĂšsĂšl',
- feature_spirituality_title: 'Espiritwalite',
- feature_spirituality_desc: 'Renesans, renouvĂšlman ak koneksyon kosmik',
-
- // Predictions
- predictions_title: 'Prediksyon 2025',
- predictions_subtitle: 'Kalkile dat egzak pou kote w ap obsĂšve a',
- predictions_select_location: 'Chwazi kote ou ye a',
- predictions_results_for: 'Rezilta pou',
- predictions_heliacal_rising: 'Leve elyak',
- predictions_best_observation: 'Pi bon obsĂšvasyon',
- predictions_visibility_duration: 'Dire vizibilite',
- predictions_azimuth: 'Azimit nan leve',
- predictions_max_altitude: 'Altitid maksimĂČm',
- predictions_magnitude: 'Mayitid aparan',
-
- // Science
- science_title: 'Syans Leve Elyak la',
- science_subtitle: 'Konprann fenomĂšn astwonomik la',
-
- // Culture
- culture_title: 'Eritaj KiltirĂšl',
- culture_subtitle: 'Sirius atravĂš sivilizasyon yo',
- culture_timeline_title: 'Kwonoloji Konesans lan',
-
- // Observatory
- observatory_title: 'Gid ObsĂšvasyon',
- observatory_subtitle: 'Tout bagay pou obsĂšve Sirius nan Gwadloup',
-
- // Associations
- associations_title: 'Asosyasyon ki fĂšte Wep Ronpet',
- associations_subtitle: 'Dekouvri evĂšnman ak kominote ki selebre Nouvel An Kamit la',
- associations_events_title: 'EvĂšnman Wep Ronpet 2025',
- associations_community_title: 'Kominote & Resous',
- associations_video_title: 'Dekouvri Wep Ronpet',
- associations_event1_title: 'Nouvel An Kamite',
- associations_event1_organizer: 'Afrocentricity International & Famille Muntu âą GRATIS - nan 16 an',
- associations_event1_desc: 'Tan sakre pasaj nan yon nouvo wotasyon kosmik, yo viv nan amoni ak lwa inivĂš yo. Ann rekonekte ak rasin espirituyĂšl nou yo, onore zansĂšt nou yo, ak realinye lavi nou yo ak prensip MaĂąt yo. Seremoni ak rituyĂšl, gastromi kamite, mache atizan.',
- associations_event2_title: 'Nouvel An Kamit 6262',
- associations_event2_organizer: 'Mouvement Politique Spirituel MUN âą Le Lamentin, Matinik',
- associations_event2_desc: 'Selebrasyon ak Nouvo Lalin nan nan KAY NZINGHA. Seremoni, rituyĂšl, konferans, dine kamit, sware danse pou pouvwa ak konfyans peyi a. Depi 3Ăš nan midi.',
- associations_link1_title: '14yĂšm Manm',
- associations_link1_desc: 'Sit entĂšnĂšt - EvĂšnman',
- associations_link2_title: 'Mouvement Politique Spirituel MUN',
- associations_link2_desc: 'Paj Facebook ofisyĂšl',
-
- // Footer
- footer_copyright: 'PwojĂš realize avĂšk â€ïž pa',
- footer_and: 'ak'
- }
-};
-
-// Store dérivé pour obtenir les traductions de la langue actuelle
-export const t = derived(
- currentLanguage,
- $currentLanguage => key => {
- return translations[$currentLanguage]?.[key] || translations['fr'][key] || key;
- }
-);
-
-// Fonction pour changer de langue
-export function setLanguage(lang) {
- if (translations[lang]) {
- currentLanguage.set(lang);
- if (typeof localStorage !== 'undefined') {
- localStorage.setItem('preferred-language', lang);
- }
- }
-}
-// Initialiser avec la langue sauvegardée ou détecter la langue du navigateur
-export function initLanguage() {
- if (typeof localStorage !== 'undefined') {
- const saved = localStorage.getItem('preferred-language');
- if (saved && translations[saved]) {
- currentLanguage.set(saved);
- return;
- }
- }
-
- if (typeof navigator !== 'undefined') {
- const browserLang = navigator.language.slice(0, 2);
- if (translations[browserLang]) {
- currentLanguage.set(browserLang);
- }
- }
-}
-
-// Liste des langues disponibles
-export const availableLanguages = [
- { code: 'fr', name: 'Français', flag: 'đ«đ·' },
- { code: 'en', name: 'English', flag: 'đŹđ§' },
- { code: 'ht', name: 'KreyĂČl Ayisyen', flag: 'đđč' }
-];
\ No newline at end of file
diff --git a/src/main.js b/src/main.js
deleted file mode 100644
index 8a909a1..0000000
--- a/src/main.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import './app.css'
-import App from './App.svelte'
-
-const app = new App({
- target: document.getElementById('app'),
-})
-
-export default app
diff --git a/src/observer.njk b/src/observer.njk
new file mode 100644
index 0000000..921ea16
--- /dev/null
+++ b/src/observer.njk
@@ -0,0 +1,180 @@
+---
+pagination:
+ data: locales
+ size: 1
+ alias: locale
+permalink: "{% if locale == baseLocale %}/observer/index.html{% else %}/{{ locale }}/observer/index.html{% endif %}"
+layout: layouts/base.njk
+pageKey: observer
+slug: "observer/"
+eleventyComputed:
+ pageTitle: "{{ 'observer_title' | t(locale) }}"
+---
+
+
+
+
+
+
+
+
{{ "observer_calculator_title" | t(locale) }}
+
{{ "observer_calculator_subtitle" | t(locale) }}
+
+
+
+
+
+ {{ "observer_calculator_title" | t(locale) }}
+
+
+ | {{ "observer_calculator_table_site" | t(locale) }} |
+ {{ "observer_calculator_table_date" | t(locale) }} |
+ {{ "observer_calculator_table_time" | t(locale) }} |
+
+
+
+ {% for site in sites %}
+
+ |
+ {{ site.name }}
+
+ {{ site["description_" + locale] or site.description_fr }}
+
+ |
+ {{ site.predictions[nextRising.year].date | formatDate(locale) }} |
+ {{ site.predictions[nextRising.year].time }} |
+
+ {% endfor %}
+
+
+
+
+
+
+
{{ "observer_map_title" | t(locale) }}
+
{{ "observer_map_subtitle" | t(locale) }}
+
+
+
+
+ {% for site in sites %}
+ -
+
{{ site.name }}
+ {{ site["description_" + locale] or site.description_fr }}
+ {{ site.lat }}°N, {{ site.lon }}°O â {{ site.alt }} m
+
+ {% endfor %}
+
+
+
+
{{ "observer_timeline_title" | t(locale) }}
+
+
+
đ
+
{{ "observer_phase1_time" | t(locale) }}
+
{{ "observer_phase1_title" | t(locale) }}
+
{{ "observer_phase1_desc" | t(locale) }}
+
+
+
đ
+
{{ "observer_phase2_time" | t(locale) }}
+
{{ "observer_phase2_title" | t(locale) }}
+
{{ "observer_phase2_desc" | t(locale) }}
+
+
+
â
+
{{ "observer_phase3_time" | t(locale) }}
+
{{ "observer_phase3_title" | t(locale) }}
+
{{ "observer_phase3_desc" | t(locale) }}
+
+
+
âš
+
{{ "observer_phase4_time" | t(locale) }}
+
{{ "observer_phase4_title" | t(locale) }}
+
{{ "observer_phase4_desc" | t(locale) }}
+
+
+
+
{{ "observer_equipment_title" | t(locale) }}
+
+
+
+
{{ "observer_equipment_lamp_desc" | t(locale) }}
+
+
+
+
{{ "observer_equipment_compass_desc" | t(locale) }}
+
+
+
+
{{ "observer_equipment_clothes_desc" | t(locale) }}
+
+
+
{{ "observer_equipment_binoculars_name" | t(locale) }}
+
{{ "observer_equipment_binoculars_desc" | t(locale) }}
+
+
+
{{ "observer_equipment_notebook_name" | t(locale) }}
+
{{ "observer_equipment_notebook_desc" | t(locale) }}
+
+
+
+
{{ "observer_tips_title" | t(locale) }}
+
+
+
đ€ïž
+
{{ "observer_tip_weather_title" | t(locale) }}
+
{{ "observer_tip_weather_desc" | t(locale) }}
+
+
+
đ
+
{{ "observer_tip_moon_title" | t(locale) }}
+
{{ "observer_tip_moon_desc" | t(locale) }}
+
+
+
đ±
+
{{ "observer_tip_apps_title" | t(locale) }}
+
{{ "observer_tip_apps_desc" | t(locale) }}
+
+
+
đ„
+
{{ "observer_tip_group_title" | t(locale) }}
+
{{ "observer_tip_group_desc" | t(locale) }}
+
+
+
+
+
+
+
+
+
{{ "globe_p2" | t(locale) }}
+
+
{{ "globe_controls_hint" | t(locale) }}
+
+
+
+
+
+
diff --git a/src/sirius-science.njk b/src/sirius-science.njk
new file mode 100644
index 0000000..b2a261b
--- /dev/null
+++ b/src/sirius-science.njk
@@ -0,0 +1,114 @@
+---
+pagination:
+ data: locales
+ size: 1
+ alias: locale
+permalink: "{% if locale == baseLocale %}/sirius-science/index.html{% else %}/{{ locale }}/sirius-science/index.html{% endif %}"
+layout: layouts/base.njk
+pageKey: science
+slug: "sirius-science/"
+eleventyComputed:
+ pageTitle: "{{ 'science_title' | t(locale) }}"
+---
+
+
+
+
+
+
+
diff --git a/src/styles/app.css b/src/styles/app.css
new file mode 100644
index 0000000..38c1250
--- /dev/null
+++ b/src/styles/app.css
@@ -0,0 +1,18 @@
+@layer reset, tokens, base, layouts, components, utilities;
+
+@import "./reset.css" layer(reset);
+@import "./tokens.css" layer(tokens);
+@import "./themes/oki.css" layer(tokens);
+@import "./base.css" layer(base);
+@import "./layouts.css" layer(layouts);
+@import "./patterns.css" layer(components);
+@import "./components/nav.css" layer(components);
+@import "./components/footer.css" layer(components);
+@import "./components/buttons.css" layer(components);
+@import "./components/hero.css" layer(components);
+@import "./components/cards.css" layer(components);
+@import "./components/tabs.css" layer(components);
+@import "./components/timeline.css" layer(components);
+@import "./components/diagrams.css" layer(components);
+@import "./components/associations.css" layer(components);
+@import "./components/islands.css" layer(components);
diff --git a/src/styles/base.css b/src/styles/base.css
new file mode 100644
index 0000000..5105623
--- /dev/null
+++ b/src/styles/base.css
@@ -0,0 +1,87 @@
+@font-face {
+ font-family: "Fraunces Variable";
+ src: url("/assets/fonts/fraunces-variable.woff2") format("woff2-variations");
+ font-weight: 300 900;
+ font-style: normal;
+ font-display: swap;
+}
+
+@font-face {
+ font-family: "Atkinson Hyperlegible";
+ src: url("/assets/fonts/atkinson-400.woff2") format("woff2");
+ font-weight: 400;
+ font-style: normal;
+ font-display: swap;
+}
+
+@font-face {
+ font-family: "Atkinson Hyperlegible";
+ src: url("/assets/fonts/atkinson-700.woff2") format("woff2");
+ font-weight: 700;
+ font-style: normal;
+ font-display: swap;
+}
+
+html {
+ font-size: 100%;
+}
+
+body {
+ background: var(--surface);
+ color: var(--ink);
+ font-family: var(--font-body);
+ font-size: var(--text-1);
+ line-height: var(--leading-normal);
+}
+
+h1, h2, h3, h4 {
+ font-family: var(--font-display);
+ line-height: var(--leading-tight);
+ text-wrap: balance;
+}
+
+h1 { font-size: var(--text-6); }
+h2 { font-size: var(--text-5); }
+h3 { font-size: var(--text-3); }
+h4 { font-size: var(--text-2); }
+
+p {
+ text-wrap: pretty;
+}
+
+a {
+ text-underline-offset: 0.2em;
+}
+
+:focus-visible {
+ outline: 3px solid var(--focus-ring);
+ outline-offset: 3px;
+ border-radius: var(--radius-sm);
+}
+
+.skip-link {
+ position: absolute;
+ top: var(--space-2);
+ left: var(--space-2);
+ z-index: 100;
+ padding: var(--space-2) var(--space-3);
+ background: var(--surface-raised);
+ color: var(--ink);
+ border-radius: var(--radius-sm);
+ box-shadow: var(--shadow-md);
+ transform: translateY(-150%);
+ transition: transform var(--duration-fast) var(--ease-out);
+}
+
+.skip-link:focus-visible {
+ transform: translateY(0);
+}
+
+.visually-hidden {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ overflow: hidden;
+ clip: rect(0 0 0 0);
+ white-space: nowrap;
+}
diff --git a/src/styles/components/associations.css b/src/styles/components/associations.css
new file mode 100644
index 0000000..ff8e979
--- /dev/null
+++ b/src/styles/components/associations.css
@@ -0,0 +1,60 @@
+.event-link,
+.community-link {
+ display: flex;
+ gap: var(--space-3);
+ align-items: flex-start;
+ padding-block: var(--space-3);
+ border-bottom: 1px solid var(--border);
+ text-decoration: none;
+ color: var(--ink);
+}
+
+.event-link:last-child,
+.community-link:last-child {
+ border-bottom: none;
+}
+
+.event-icon,
+.community-icon {
+ font-size: var(--text-3);
+ flex-shrink: 0;
+}
+
+.event-info,
+.community-info {
+ display: flex;
+ flex-direction: column;
+ gap: 0.15rem;
+}
+
+.event-title,
+.community-title {
+ font-weight: 700;
+ color: var(--gold);
+}
+
+.event-platform {
+ font-size: var(--text-0);
+ color: var(--ink-soft);
+}
+
+.video-frame {
+ position: relative;
+ aspect-ratio: 16 / 9;
+ border-radius: var(--radius-md);
+ overflow: hidden;
+}
+
+.video-frame iframe {
+ position: absolute;
+ inset: 0;
+ width: 100%;
+ height: 100%;
+ border: 0;
+}
+
+.associations-note {
+ font-size: var(--text-0);
+ color: var(--ink-soft);
+ margin-top: var(--space-4);
+}
diff --git a/src/styles/components/buttons.css b/src/styles/components/buttons.css
new file mode 100644
index 0000000..e375bc8
--- /dev/null
+++ b/src/styles/components/buttons.css
@@ -0,0 +1,27 @@
+.btn {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ min-height: var(--tap-target);
+ padding-inline: var(--space-4);
+ border-radius: var(--radius-pill);
+ font-weight: 700;
+ text-decoration: none;
+ transition: transform var(--duration-fast) var(--ease-out),
+ background var(--duration-fast) var(--ease-out);
+}
+
+.btn:hover {
+ transform: translateY(-2px);
+}
+
+.btn-primary {
+ background: var(--gold-surface);
+ color: oklch(20% 0.03 265);
+}
+
+.btn-outline {
+ background: transparent;
+ border: 2px solid var(--gold);
+ color: var(--gold);
+}
diff --git a/src/styles/components/cards.css b/src/styles/components/cards.css
new file mode 100644
index 0000000..7404f7e
--- /dev/null
+++ b/src/styles/components/cards.css
@@ -0,0 +1,34 @@
+.feature-card,
+.info-card {
+ text-align: center;
+}
+
+.feature-card h3,
+.info-card h3 {
+ color: var(--gold);
+ margin-bottom: var(--space-2);
+}
+
+.info-card.essential {
+ border-color: var(--gold);
+ background: light-dark(oklch(96% 0.04 85), oklch(24% 0.04 85));
+}
+
+.info-card-header {
+ display: flex;
+ justify-content: space-between;
+ align-items: baseline;
+ gap: var(--space-2);
+ margin-bottom: var(--space-1);
+}
+
+.badge {
+ display: inline-flex;
+ align-items: center;
+ padding-inline: var(--space-2);
+ border-radius: var(--radius-pill);
+ background: var(--gold-surface);
+ color: oklch(20% 0.03 265);
+ font-size: var(--text-0);
+ font-weight: 700;
+}
diff --git a/src/styles/components/diagrams.css b/src/styles/components/diagrams.css
new file mode 100644
index 0000000..4f97e8e
--- /dev/null
+++ b/src/styles/components/diagrams.css
@@ -0,0 +1,80 @@
+.diagram-orbit {
+ position: relative;
+ height: 16rem;
+ margin-block: var(--space-4);
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+.diagram-orbit .ring {
+ position: absolute;
+ width: 12rem;
+ height: 12rem;
+ border: 2px dashed var(--border);
+ border-radius: 50%;
+}
+
+.diagram-orbit .body {
+ position: absolute;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ gap: var(--space-1);
+ font-size: var(--text-4);
+}
+
+.diagram-orbit .body span {
+ font-size: var(--text-0);
+ font-weight: 700;
+ color: var(--gold);
+}
+
+.diagram-orbit .sun { top: 50%; left: 50%; transform: translate(-50%, -50%); }
+.diagram-orbit .earth { top: 15%; left: 15%; }
+.diagram-orbit .sirius { top: 15%; right: 15%; }
+
+.diagram-arcus {
+ position: relative;
+ height: 12rem;
+ margin-block: var(--space-4);
+ border-bottom: 2px solid var(--gold);
+}
+
+.diagram-arcus .horizon-label {
+ position: absolute;
+ bottom: -1.6rem;
+ left: 50%;
+ transform: translateX(-50%);
+ color: var(--gold);
+ font-weight: 700;
+}
+
+.diagram-arcus .angle {
+ position: absolute;
+ bottom: 0;
+ left: 30%;
+ width: 4rem;
+ height: 4rem;
+ border: 2px solid var(--caribbean-teal);
+ border-bottom: none;
+ border-left: none;
+ border-radius: 0 100% 0 0;
+}
+
+.diagram-arcus .angle-label {
+ position: absolute;
+ bottom: 4.2rem;
+ left: calc(30% + 4.2rem);
+ color: var(--caribbean-teal);
+ font-weight: 700;
+}
+
+.diagram-arcus .sirius-mark,
+.diagram-arcus .sun-mark {
+ position: absolute;
+ bottom: var(--space-2);
+}
+
+.diagram-arcus .sirius-mark { left: 25%; }
+.diagram-arcus .sun-mark { right: 25%; bottom: -0.6rem; }
diff --git a/src/styles/components/footer.css b/src/styles/components/footer.css
new file mode 100644
index 0000000..59b2c93
--- /dev/null
+++ b/src/styles/components/footer.css
@@ -0,0 +1,80 @@
+.site-footer {
+ background: var(--surface-sunk);
+ border-top: 1px solid var(--border);
+ padding-block: var(--space-6) var(--space-4);
+ margin-top: var(--space-7);
+}
+
+.footer-grid {
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
+ gap: var(--space-5);
+ margin-bottom: var(--space-5);
+}
+
+.footer-section h2 {
+ font-size: var(--text-2);
+ margin-bottom: var(--space-2);
+}
+
+.footer-section h3 {
+ font-size: var(--text-1);
+ color: var(--gold);
+ margin-bottom: var(--space-2);
+}
+
+.footer-section ul {
+ display: flex;
+ flex-direction: column;
+ gap: var(--space-1);
+}
+
+.footer-section a {
+ text-decoration: none;
+ color: var(--ink-soft);
+}
+
+.footer-section a:hover {
+ color: var(--gold);
+}
+
+.countdown-item {
+ display: inline-flex;
+ flex-direction: column;
+ background: var(--surface-raised);
+ border: 1px solid var(--border);
+ border-radius: var(--radius-md);
+ padding: var(--space-3);
+}
+
+.countdown-value {
+ font-family: var(--font-display);
+ font-size: var(--text-2);
+ color: var(--gold);
+}
+
+.countdown-label {
+ color: var(--ink-soft);
+ font-size: var(--text-0);
+}
+
+.footer-bottom {
+ text-align: center;
+ border-top: 1px solid var(--border);
+ padding-top: var(--space-4);
+}
+
+.footer-bottom .pattern-strip {
+ margin-inline: auto;
+}
+
+.footer-credits a {
+ color: var(--gold);
+ text-decoration: none;
+}
+
+.footer-quote {
+ margin-top: var(--space-2);
+ font-style: italic;
+ color: var(--ink-soft);
+}
diff --git a/src/styles/components/hero.css b/src/styles/components/hero.css
new file mode 100644
index 0000000..5dd249b
--- /dev/null
+++ b/src/styles/components/hero.css
@@ -0,0 +1,107 @@
+.hero {
+ position: relative;
+ overflow: hidden;
+ padding-block: var(--space-7) var(--space-6);
+ background: light-dark(
+ linear-gradient(180deg, oklch(96% 0.02 85), oklch(92% 0.03 60)),
+ linear-gradient(180deg, oklch(14% 0.03 265), oklch(10% 0.02 265))
+ );
+}
+
+.hero-content {
+ position: relative;
+ z-index: 1;
+}
+
+.hero-title {
+ display: flex;
+ flex-direction: column;
+ gap: 0.1em;
+}
+
+.hero-title .accent {
+ color: var(--gold);
+}
+
+.hero-subtitle {
+ font-family: var(--font-display);
+ font-size: var(--text-3);
+ color: var(--gold);
+ margin-top: var(--space-2);
+}
+
+.hero-description {
+ font-size: var(--text-2);
+ color: var(--ink-soft);
+ margin-top: var(--space-2);
+}
+
+.hero-date {
+ margin-top: var(--space-4);
+ font-size: var(--text-1);
+}
+
+.hero-date strong {
+ display: block;
+ font-family: var(--font-display);
+ font-size: var(--text-3);
+ color: var(--gold);
+}
+
+.hero-cta {
+ justify-content: center;
+ margin-top: var(--space-5);
+}
+
+/* SystĂšme solaire dĂ©coratif, en CSS pure â masquĂ© aux lecteurs d'Ă©cran */
+.hero-orbits {
+ position: absolute;
+ inset: 0;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ opacity: 0.5;
+ pointer-events: none;
+}
+
+.hero-orbits .sun {
+ position: absolute;
+ width: 1rem;
+ height: 1rem;
+ border-radius: 50%;
+ background: var(--gold-surface);
+ box-shadow: 0 0 40px 10px var(--gold-surface);
+}
+
+.hero-orbits .orbit {
+ position: absolute;
+ border: 1px solid light-dark(oklch(50% 0.05 85 / 30%), oklch(80% 0.05 85 / 20%));
+ border-radius: 50%;
+ animation: orbit-spin linear infinite;
+}
+
+.hero-orbits .orbit span {
+ position: absolute;
+ top: -3px;
+ left: 50%;
+ width: 6px;
+ height: 6px;
+ border-radius: 50%;
+ background: var(--caribbean-teal);
+ transform: translateX(-50%);
+}
+
+.hero-orbits .orbit.sirius span {
+ width: 9px;
+ height: 9px;
+ background: var(--gold-surface);
+ box-shadow: 0 0 12px var(--gold-surface);
+}
+
+@keyframes orbit-spin {
+ to { transform: rotate(360deg); }
+}
+
+@media (max-width: 47.99em) {
+ .hero-orbits { opacity: 0.25; }
+}
diff --git a/src/styles/components/islands.css b/src/styles/components/islands.css
new file mode 100644
index 0000000..b8d5be5
--- /dev/null
+++ b/src/styles/components/islands.css
@@ -0,0 +1,17 @@
+/* Ălots Svelte : le contenu statique (.island-fallback) est toujours prĂ©sent
+ dans le HTML ; s'il s'hydrate, le script de montage ajoute la classe
+ .is-enhanced sur le conteneur [data-island], qui masque alors le repli. */
+.island-app:empty {
+ display: none;
+}
+
+[data-island].is-enhanced .island-fallback {
+ display: none;
+}
+
+.island-canvas {
+ width: 100%;
+ height: 22rem;
+ border-radius: var(--radius-md);
+ background: var(--surface-sunk);
+}
diff --git a/src/styles/components/nav.css b/src/styles/components/nav.css
new file mode 100644
index 0000000..a612d79
--- /dev/null
+++ b/src/styles/components/nav.css
@@ -0,0 +1,149 @@
+.nav {
+ position: sticky;
+ top: 0;
+ z-index: 50;
+ background: light-dark(oklch(96% 0.015 85 / 90%), oklch(16% 0.03 265 / 88%));
+ backdrop-filter: blur(10px);
+ border-bottom: 1px solid var(--border);
+}
+
+.nav-inner {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ gap: var(--space-3);
+ min-height: var(--tap-target);
+ padding-block: var(--space-2);
+}
+
+.nav-brand {
+ font-family: var(--font-display);
+ font-weight: 600;
+ font-size: var(--text-2);
+ color: var(--ink);
+ text-decoration: none;
+ white-space: nowrap;
+}
+
+.nav-brand span {
+ color: var(--gold);
+}
+
+.nav-disclosure {
+ display: contents;
+}
+
+.nav-toggle {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: var(--tap-target);
+ height: var(--tap-target);
+ border-radius: var(--radius-sm);
+ cursor: pointer;
+ list-style: none;
+}
+
+.nav-toggle::-webkit-details-marker {
+ display: none;
+}
+
+.nav-toggle-icon,
+.nav-toggle-icon::before,
+.nav-toggle-icon::after {
+ display: block;
+ width: 22px;
+ height: 2px;
+ background: var(--ink);
+ border-radius: var(--radius-pill);
+ position: relative;
+ transition: transform var(--duration-fast) var(--ease-out);
+}
+
+.nav-toggle-icon::before,
+.nav-toggle-icon::after {
+ content: "";
+ position: absolute;
+}
+
+.nav-toggle-icon::before { top: -7px; }
+.nav-toggle-icon::after { top: 7px; }
+
+.nav-disclosure[open] .nav-toggle-icon {
+ background: transparent;
+}
+
+.nav-disclosure[open] .nav-toggle-icon::before {
+ transform: translateY(7px) rotate(45deg);
+}
+
+.nav-disclosure[open] .nav-toggle-icon::after {
+ transform: translateY(-7px) rotate(-45deg);
+}
+
+.nav-menu {
+ display: flex;
+ flex-direction: column;
+ gap: 0;
+ position: absolute;
+ inset-inline: 0;
+ top: 100%;
+ background: var(--surface);
+ border-bottom: 1px solid var(--border);
+ padding: var(--space-2) var(--space-4) var(--space-4);
+}
+
+.nav-menu a {
+ display: flex;
+ align-items: center;
+ min-height: var(--tap-target);
+ text-decoration: none;
+ color: var(--ink);
+ border-bottom: 1px solid var(--border);
+ font-weight: 600;
+}
+
+.nav-menu a[aria-current="page"] {
+ color: var(--gold);
+}
+
+.nav-lang {
+ display: flex;
+ gap: var(--space-2);
+ font-size: var(--text-0);
+}
+
+.nav-lang a {
+ display: inline-flex;
+ align-items: center;
+ min-height: var(--tap-target);
+ padding-inline: var(--space-2);
+ border-radius: var(--radius-pill);
+ text-decoration: none;
+ color: var(--ink-soft);
+ font-weight: 600;
+}
+
+.nav-lang a.active {
+ background: var(--surface-sunk);
+ color: var(--gold);
+}
+
+@media (min-width: 60em) {
+ .nav-toggle { display: none; }
+
+ .nav-menu {
+ position: static;
+ flex-direction: row;
+ gap: var(--space-4);
+ border-bottom: none;
+ padding: 0;
+ background: transparent;
+ }
+
+ .nav-menu a {
+ min-height: auto;
+ border-bottom: none;
+ padding-block: var(--space-1);
+ }
+}
diff --git a/src/styles/components/tabs.css b/src/styles/components/tabs.css
new file mode 100644
index 0000000..8a25024
--- /dev/null
+++ b/src/styles/components/tabs.css
@@ -0,0 +1,69 @@
+/* Onglets 100% CSS (radio + label), sans JavaScript.
+ Structure attendue, tous enfants directs de fieldset.tabs, dans cet ordre :
+ input.tab-input (un par onglet, id unique)
+ .tab-list > label[for=...] (un par onglet)
+ .tab-panels > [data-panel="..."] (un par onglet)
+ Chaque input:checked révÚle le panneau dont data-panel correspond à son id
+ et met en avant le label associĂ© â dĂ©clarĂ© une fois par page appelante
+ via un attribut [data-tab-id] passé en contexte (voir pages). */
+
+.tabs {
+ border: none;
+ padding: 0;
+}
+
+.tab-input {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ overflow: hidden;
+ clip: rect(0 0 0 0);
+}
+
+.tab-list {
+ display: flex;
+ flex-wrap: wrap;
+ gap: var(--space-2);
+ margin-bottom: var(--space-5);
+}
+
+.tab-label {
+ display: inline-flex;
+ align-items: center;
+ min-height: var(--tap-target);
+ padding-inline: var(--space-3);
+ border-radius: var(--radius-pill);
+ border: 2px solid var(--border);
+ cursor: pointer;
+ font-weight: 700;
+ text-align: center;
+}
+
+.tab-panel {
+ display: none;
+}
+
+/* Sélection par position (1er input coché -> 1er panneau/label), générique :
+ fonctionne quels que soient les id choisis, tant que l'ordre DOM est
+ input*, puis .tab-list, puis .tab-panels. */
+.tab-input:nth-of-type(1):checked ~ .tab-panels .tab-panel:nth-of-type(1),
+.tab-input:nth-of-type(2):checked ~ .tab-panels .tab-panel:nth-of-type(2),
+.tab-input:nth-of-type(3):checked ~ .tab-panels .tab-panel:nth-of-type(3),
+.tab-input:nth-of-type(4):checked ~ .tab-panels .tab-panel:nth-of-type(4) {
+ display: block;
+}
+
+.tab-input:nth-of-type(1):checked ~ .tab-list .tab-label:nth-of-type(1),
+.tab-input:nth-of-type(2):checked ~ .tab-list .tab-label:nth-of-type(2),
+.tab-input:nth-of-type(3):checked ~ .tab-list .tab-label:nth-of-type(3),
+.tab-input:nth-of-type(4):checked ~ .tab-list .tab-label:nth-of-type(4) {
+ background: var(--gold-surface);
+ border-color: var(--gold-surface);
+ color: oklch(20% 0.03 265);
+}
+
+@media (max-width: 47.99em) {
+ .tab-list {
+ justify-content: center;
+ }
+}
diff --git a/src/styles/components/timeline.css b/src/styles/components/timeline.css
new file mode 100644
index 0000000..4e417cd
--- /dev/null
+++ b/src/styles/components/timeline.css
@@ -0,0 +1,68 @@
+/* Timeline verticale (Culture, Dogon, héritage diaspora) */
+.timeline-v {
+ position: relative;
+ max-width: var(--measure);
+ margin-inline: auto;
+ padding-left: var(--space-5);
+}
+
+.timeline-v::before {
+ content: "";
+ position: absolute;
+ left: 0.4rem;
+ top: 0.4rem;
+ bottom: 0.4rem;
+ width: 2px;
+ background: var(--gold-surface);
+ opacity: 0.4;
+}
+
+.timeline-v-item {
+ position: relative;
+ padding-bottom: var(--space-4);
+}
+
+.timeline-v-item::before {
+ content: "";
+ position: absolute;
+ left: -1.65rem;
+ top: 0.3rem;
+ width: 0.8rem;
+ height: 0.8rem;
+ border-radius: 50%;
+ background: var(--gold-surface);
+}
+
+.timeline-v-date {
+ font-weight: 700;
+ color: var(--gold);
+}
+
+/* Timeline horizontale à 4 étapes (Observer) */
+.timeline-h {
+ display: grid;
+ grid-template-columns: repeat(4, 1fr);
+ gap: var(--space-3);
+ counter-reset: step;
+}
+
+.timeline-h-step {
+ text-align: center;
+ padding-top: var(--space-3);
+ border-top: 4px solid var(--gold-surface);
+}
+
+.timeline-h-icon {
+ font-size: var(--text-4);
+}
+
+.timeline-h-time {
+ font-weight: 700;
+ color: var(--gold);
+}
+
+@media (max-width: 47.99em) {
+ .timeline-h {
+ grid-template-columns: 1fr;
+ }
+}
diff --git a/src/styles/layouts.css b/src/styles/layouts.css
new file mode 100644
index 0000000..61c5137
--- /dev/null
+++ b/src/styles/layouts.css
@@ -0,0 +1,86 @@
+/* Primitives de composition â inspirĂ©es de Every Layout (every-layout.dev) */
+
+.container {
+ width: 100%;
+ max-width: 75rem;
+ margin-inline: auto;
+ padding-inline: var(--space-4);
+}
+
+.prose {
+ max-width: var(--measure);
+ margin-inline: auto;
+}
+
+.stack {
+ display: flex;
+ flex-direction: column;
+}
+
+.stack > * + * {
+ margin-block-start: var(--stack-space, var(--space-4));
+}
+
+.cluster {
+ display: flex;
+ flex-wrap: wrap;
+ align-items: center;
+ gap: var(--cluster-space, var(--space-3));
+}
+
+.center {
+ max-width: var(--center-measure, 65ch);
+ margin-inline: auto;
+ text-align: center;
+}
+
+.sidebar {
+ display: flex;
+ flex-wrap: wrap;
+ gap: var(--space-4);
+}
+
+.sidebar > :last-child {
+ flex-basis: 0;
+ flex-grow: 999;
+ min-width: 60%;
+}
+
+.grid-auto {
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--grid-min, 16rem)), 1fr));
+ gap: var(--space-4);
+}
+
+.section {
+ padding-block: var(--space-7);
+ container-type: inline-size;
+}
+
+.section-header {
+ margin-bottom: var(--space-6);
+}
+
+.section-eyebrow {
+ display: inline-block;
+ font-family: var(--font-body);
+ font-weight: 700;
+ font-size: var(--text-0);
+ letter-spacing: 0.12em;
+ text-transform: uppercase;
+ color: var(--gold);
+ margin-bottom: var(--space-2);
+}
+
+.section-subtitle {
+ color: var(--ink-soft);
+ font-size: var(--text-2);
+ margin-top: var(--space-2);
+}
+
+.card {
+ background: var(--surface-raised);
+ border: 1px solid var(--border);
+ border-radius: var(--radius-md);
+ padding: var(--space-4);
+}
diff --git a/src/styles/patterns.css b/src/styles/patterns.css
new file mode 100644
index 0000000..48a4902
--- /dev/null
+++ b/src/styles/patterns.css
@@ -0,0 +1,33 @@
+/* Motifs panafricains â utilisĂ©s en accents ponctuels (un par section, effet
+ Von Restorff), jamais en texture de fond généralisée. */
+
+.pattern-strip {
+ display: block;
+ height: 0.5rem;
+ width: 100%;
+ max-width: 8rem;
+ border-radius: var(--radius-pill);
+ margin-block: var(--space-3);
+}
+
+.pattern-strip.kente {
+ background: repeating-linear-gradient(
+ 45deg,
+ var(--gold-surface) 0 10px,
+ var(--kente-red) 10px 20px
+ );
+}
+
+.pattern-strip.bogolan {
+ background-image: radial-gradient(circle, var(--gold-surface) 30%, transparent 31%);
+ background-size: 12px 12px;
+ background-color: var(--bogolan-green);
+}
+
+.pattern-strip.adinkra {
+ background: repeating-conic-gradient(
+ var(--gold-surface) 0deg 90deg,
+ var(--caribbean-teal) 90deg 180deg
+ );
+ background-size: 14px 14px;
+}
diff --git a/src/styles/reset.css b/src/styles/reset.css
new file mode 100644
index 0000000..3ce9c2f
--- /dev/null
+++ b/src/styles/reset.css
@@ -0,0 +1,47 @@
+*, *::before, *::after {
+ box-sizing: border-box;
+}
+
+* {
+ margin: 0;
+}
+
+html {
+ -webkit-text-size-adjust: 100%;
+ hanging-punctuation: first last;
+}
+
+body {
+ min-height: 100svh;
+}
+
+img, picture, svg, canvas {
+ display: block;
+ max-width: 100%;
+}
+
+input, button, textarea, select {
+ font: inherit;
+ color: inherit;
+}
+
+button {
+ background: none;
+ border: none;
+ cursor: pointer;
+}
+
+a {
+ color: inherit;
+}
+
+ul[class], ol[class] {
+ list-style: none;
+ padding: 0;
+}
+
+@media (prefers-reduced-motion: no-preference) {
+ html {
+ scroll-behavior: smooth;
+ }
+}
diff --git a/src/styles/themes/oki.css b/src/styles/themes/oki.css
new file mode 100644
index 0000000..b565570
--- /dev/null
+++ b/src/styles/themes/oki.css
@@ -0,0 +1,6 @@
+/* ThĂšme OKI â identitĂ© par dĂ©faut de Gwada-Sirius.
+ Un fichier de thÚme ne redéfinit que des tokens (jamais de sélecteurs de
+ composants), pour rester échangeable avec d'autres identités visuelles OKI. */
+[data-theme="oki"] {
+ --brand-name: "Sirius Gwada";
+}
diff --git a/src/styles/tokens.css b/src/styles/tokens.css
new file mode 100644
index 0000000..35471f6
--- /dev/null
+++ b/src/styles/tokens.css
@@ -0,0 +1,74 @@
+:root {
+ color-scheme: light dark;
+
+ /* === Couleur â oklch, contraste d'abord (mĂ©thode modus-vivendi) ===
+ Deux thÚmes conceptuellement liés au sujet : Aube (clair) / Nuit (sombre). */
+ --ink: light-dark(oklch(23% 0.03 265), oklch(95% 0.015 85));
+ --ink-soft: light-dark(oklch(38% 0.03 265), oklch(80% 0.02 85));
+ --surface: light-dark(oklch(96% 0.015 85), oklch(16% 0.03 265));
+ --surface-raised: light-dark(oklch(99% 0.008 85), oklch(21% 0.03 265));
+ --surface-sunk: light-dark(oklch(91% 0.02 85), oklch(12% 0.025 265));
+ --border: light-dark(oklch(85% 0.02 85), oklch(32% 0.035 265));
+
+ /* Or de Sirius : variante lisible (texte/liens) + variante décorative (glows) */
+ --gold: light-dark(oklch(45% 0.15 75), oklch(82% 0.15 87));
+ --gold-surface: oklch(80% 0.16 85);
+ --kente-red: light-dark(oklch(46% 0.18 25), oklch(70% 0.19 25));
+ --bogolan-green: light-dark(oklch(40% 0.09 145), oklch(68% 0.12 145));
+ --caribbean-teal: light-dark(oklch(43% 0.09 195), oklch(74% 0.11 195));
+
+ --focus-ring: var(--caribbean-teal);
+
+ /* === Typographie === */
+ --font-display: "Fraunces Variable", "Fraunces", ui-serif, Georgia, serif;
+ --font-body: "Atkinson Hyperlegible", ui-sans-serif, system-ui, sans-serif;
+
+ --text-0: clamp(0.8rem, 0.78rem + 0.1vw, 0.875rem);
+ --text-1: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
+ --text-2: clamp(1.125rem, 1.05rem + 0.4vw, 1.375rem);
+ --text-3: clamp(1.375rem, 1.2rem + 0.75vw, 1.75rem);
+ --text-4: clamp(1.75rem, 1.4rem + 1.5vw, 2.5rem);
+ --text-5: clamp(2.25rem, 1.7rem + 2.5vw, 3.5rem);
+ --text-6: clamp(2.75rem, 1.8rem + 4.5vw, 5.5rem);
+
+ --leading-tight: 1.15;
+ --leading-normal: 1.6;
+ --measure: 65ch;
+
+ /* === Espacement (échelle modulaire) === */
+ --space-1: 0.25rem;
+ --space-2: 0.5rem;
+ --space-3: 1rem;
+ --space-4: 1.5rem;
+ --space-5: 2.5rem;
+ --space-6: 4rem;
+ --space-7: 6rem;
+
+ /* === Formes, ombres, mouvement === */
+ --radius-sm: 0.5rem;
+ --radius-md: 1rem;
+ --radius-lg: 1.5rem;
+ --radius-pill: 999px;
+
+ --shadow-sm: 0 1px 3px light-dark(oklch(23% 0.03 265 / 12%), oklch(0% 0 0 / 30%));
+ --shadow-md: 0 8px 30px light-dark(oklch(23% 0.03 265 / 12%), oklch(0% 0 0 / 45%));
+
+ --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
+ --duration-fast: 200ms;
+ --duration-base: 400ms;
+ --duration-slow: 700ms;
+
+ /* Fitts : cible tactile minimale */
+ --tap-target: 48px;
+}
+
+@media (prefers-reduced-motion: reduce) {
+ *,
+ *::before,
+ *::after {
+ animation-duration: 0.01ms !important;
+ animation-iteration-count: 1 !important;
+ transition-duration: 0.01ms !important;
+ scroll-behavior: auto !important;
+ }
+}
diff --git a/start.sh b/start.sh
index 7eaee50..627bcc0 100755
--- a/start.sh
+++ b/start.sh
@@ -3,18 +3,17 @@
echo "đ Sirius en Guadeloupe - DĂ©marrage du projet"
echo "============================================="
-# Vérifier si node_modules existe
if [ ! -d "node_modules" ]; then
echo "đŠ Installation des dĂ©pendances..."
npm install
fi
echo "đ Lancement du serveur de dĂ©veloppement..."
-echo "đ± L'application sera accessible sur http://localhost:5173"
+echo "đ± L'application sera accessible sur http://localhost:8080"
echo ""
echo "Commandes disponibles:"
echo " - Ctrl+C : ArrĂȘter le serveur"
-echo " - npm run build : Créer une version de production"
+echo " - npm run build : Créer une version de production (11ty + Vite -> _site/)"
echo " - npm run preview : Prévisualiser la version de production"
echo ""
diff --git a/vite.config.js b/vite.config.js
deleted file mode 100644
index 6964168..0000000
--- a/vite.config.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import { defineConfig } from 'vite'
-import { svelte } from '@sveltejs/vite-plugin-svelte'
-
-export default defineConfig({
- plugins: [svelte()],
- base: './', // Utiliser des chemins relatifs
-})
\ No newline at end of file