Skip to content

Modules : icônes dans les cartes et l'affichage permanent - #52

Open
LucQuebec wants to merge 3 commits into
lfpoulain:betafrom
LucQuebec:proposition/icones-cartes
Open

LucQuebec wants to merge 3 commits into
lfpoulain:betafrom
LucQuebec:proposition/icones-cartes

Conversation

@LucQuebec

Copy link
Copy Markdown

Ferme #49.

Ce qui change

  • shared/addons.ts : liste fermée cardIcons (25 icônes Lucide, météo et alertes seulement), types CardIcon et CardItem ; icon? sur AddonPresentation, ModuleCard et AddonAmbientPresentation, et sur leurs lignes.
  • schemas/module-card.schema.json, schemas/ambient-presentation.schema.json : icon facultatif, restreint à la liste.
  • server/addons/runtime.ts : la carte reconstruite garde l'icône de la présentation.
  • web/components/card-icons.tsx : la table du miroir, en un seul endroit, typée Record<CardIcon, LucideIcon> : un nom ajouté à cardIcons sans son icône ne compile pas. Mirror.tsx et AmbientModules.tsx l'affichent ; styles.css : taille et alignement sur le texte. Card est exportée pour le test de rendu.
  • docs/modules/reference.md : section « Les icônes des cartes » (liste, règles, exemple, compatibilité avec la 0.3.0 et repli en émoji, tests) ; CHANGELOG.md.

Vos quatre points

  1. Liste fermée cardIcons dans #cornelius/addons, table du miroir en un seul fichier, liée à la liste par son type.
  2. Icônes décoratives : aria-hidden="true" sur chaque dessin, le texte se suffit, la voix ne les cite pas (règle écrite dans la référence).
  3. Test de compatibilité, sur le rendu réel de la carte du miroir et de l'affichage permanent : sans icône, le rendu d'avant (mêmes balises, aucun dessin) ; avec icône, le dessin retiré laisse exactement le rendu sans icône. Une icône hors liste rend la carte non conforme (malformed), au schéma comme dans un module.
  4. Météo et alertes seulement : soleil, lune, nuages, pluie, neige, verglas, orage, brouillard, vent, températures, lever et coucher du soleil, alerte.

Vérifié

  • npm test : 811 sur 811 sur beta ; npm run build ; tests du navigateur mirror.spec.ts et ambient.spec.ts : 18 réussis.
  • Les deux modules météo existants, Météo (Météo Concept) et Météo libre (Open-Meteo), sans icônes : sur leurs réponses enregistrées, carte du module, oral, rendu de la carte du miroir et affichage permanent identiques octet pour octet sur beta et avec cette PR. Les tests de cornelius-modules (175) passent avec ce cœur.
  • Essai réel sur un Cornelius 0.3.0 avec ce correctif : le module Météo Canada (Nouveau module : Météo Canada (Environnement Canada) cornelius-modules#18) affiche ses icônes dans les cartes et l'affichage permanent ; sur un cœur sans le correctif, il reprend ses émojis, sans erreur.

Luc, Jokobee™

LucQuebec added 3 commits November 12, 2026 08:44
Une carte de module et l'affichage permanent peuvent porter une icône sur
la valeur principale et devant chaque ligne (`icon`, facultatif), choisie
dans une liste fermée `cardIcons` (noms Lucide : météo et alertes). Le
miroir les dessine à la taille du texte. Décoratives : le texte et l'oral
ne changent pas. Schémas, recopie dans la carte, rendu, tests, référence
du contrat et CHANGELOG.
…fpoulain#49

Rendu réel de la carte du miroir et de l'affichage permanent : sans icône,
le rendu d'avant (mêmes balises, aucun dessin) ; avec icône, un dessin
aria-hidden qui, retiré, laisse exactement le rendu sans icône. Une icône
hors de cardIcons rend la carte du module non conforme (« malformed »).
Card est exportée pour ce test.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant