16 Commits

Author SHA1 Message Date
Thomas Fransolet
d21d794420 Studio lot 8d : portrait du narrateur à côté du lecteur audio
Article et parcours (liste et carte). Corrige au passage l'audio rangé par identifiant de ressource, qui n'avait jamais de lecteur : useAudioResource le résout.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011VxSQeGQYUvPmSEoGdnidA
2026-09-15 22:18:22 +02:00
Thomas Fransolet
82cff83bb6 Studio lot 6 : mention « image générée par IA »
Miroir du Flutter, qui fait référence : la mention est posée dans ResourceViewer, partagé
par Article, Slider, Quiz et Parcours. La langue vient du contexte visiteur, le libellé du
dictionnaire d'interface existant.

Le type ResourceDTO déclare enfin `origin` : le backend l'envoyait déjà, le front ne le
lisait pas.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-15 17:34:05 +02:00
Thomas Fransolet
7ff72345b3 Page /download, nom d'app, scan QR conditionnel et suggestions GPS
/download/{instanceId}/{config}/{section} présente l'app mobile de
l'instance : nom, image principale, liens stores, dans la langue du
navigateur. Sans app mobile, redirection vers la visite web.

Le nom de l'application titre l'accueil et l'onglet, le bouton de scan
suit le réglage du manager, et le scanner lit le préfixe download.

Suggestion de contenu quand le visiteur entre dans la zone GPS d'une
section, sur activation explicite. Pas de notification système : un
navigateur ne suit pas la position en arrière-plan.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-10 11:42:24 +02:00
Thomas Fransolet
e2a1c97c00 Added demo villa (test 3d scene) + misc 2026-09-04 16:48:42 +02:00
Thomas Fransolet
cb7f045b0b J4 — mention d'information aux visiteurs dans l'assistant
§8.3 des CGU : la mention doit être accessible depuis l'assistant lui-même, là où
la collecte a lieu. Panneau dépliable dans l'en-tête, borné en hauteur et
défilant pour ne pas chasser le fil de conversation hors de l'écran.

Texte repris mot pour mot de DOCS/mention-information-visiteurs.md, comme la
version Dart de mymuseum-visitapp : les trois doivent rester alignés, et une
correction se fait dans le document d'abord.

FR/NL/EN avec repli sur l'anglais, alors que le reste de cette interface parle
six langues : traduire une mention de protection des données sans relecture
humaine serait pire que la servir en anglais.

npm run build vert.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-13 16:29:36 +02:00
Thomas Fransolet
572327a651 Lot E : cas PDF dans ResourceViewer
Sans ce cas, un PDF tombait dans le rendu image par défaut et s'affichait en
image cassée — le même défaut que celui corrigé pour la vidéo le 09/08.

Réutilise le PdfViewer existant et son proxy /api/pdf (le contournement CORS
était déjà écrit), importé en dynamic({ssr:false}) comme le fait PdfSection.

npm run build .

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-11 15:31:07 +02:00
Thomas Fransolet
473fc3acab Assistant IA + watermark d'essai + parcours guidés + fix du build
Assistant IA (débloque l'add-on sur le plan Essentiel, qui est web-only)
  components/assistant/ (AssistantBubble.tsx + assistant.css),
  lib/assistantSuggestions.ts + test. Suggestions dérivées du contenu réel de
  l'instance, zéro configuration côté client.

Onboarding
  TrialWatermark.tsx — bandeau « Aperçu » pendant l'essai.

Parcours & carte
  ParcoursSection.tsx (+108), LeafletMap.tsx, map.css, MapSection.tsx :
  centrage de carte et icônes corrigés (M1, M2, W2 — des champs que le client
  saisissait sans qu'ils aient le moindre effet).
  ResourceViewer.tsx : rendu des ressources d'étape.

API
  client.ts (+44) et types.ts (+41) alignés sur les nouveaux champs backend.

Fix du build
  lib/geo.ts — helper getGeoPointLatLng(). Les 7 erreurs venaient d'un unknown non
  narrowé. ⚠️ Ce type d'erreur est INVISIBLE en next dev : seul npm run build le voit.

npm run build .
Reste ouvert : W1 — LeafletMap a toujours un TileLayer en dur, un client qui choisit
« Google Hybrid » voit de l'OSM.
2026-08-09 22:15:01 +02:00
Thomas Fransolet
2af78bbe7a misc + remove description (section) 2026-07-17 15:23:57 +02:00
Thomas Fransolet
5fd6e60b7d misc + bento layout + SectionParcours (mostly done) 2026-07-14 17:11:32 +02:00
Thomas Fransolet
e3fbd06e71 Wip most of things, 95% done 2026-05-09 00:22:28 +02:00
Thomas Fransolet
67d8ce94d6 Fix layout + misc 2026-05-07 16:50:19 +02:00
Thomas Fransolet
57ee68e72b Wip working version 2026-05-07 15:28:48 +02:00
Thomas Fransolet
931f35c818 Wip (sections event, game, map +qr code) to be tested ! 2026-05-04 14:23:50 +02:00
Thomas Fransolet
474cd61244 Wip sections 2026-04-30 16:46:45 +02:00
Thomas Fransolet
1afa3fe51e init readme 2026-04-28 12:04:15 +02:00
d2a1c9992d Initial commit 2026-04-28 09:59:49 +00:00