@micheeeeel/yinyangapp 2.0.5 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +31 -0
- package/dist/bundle.js +1 -1
- package/dist/types/adapters/yasuniCauseAdapter.d.ts +12 -0
- package/dist/types/api-film.d.ts +12 -0
- package/dist/types/api-random.d.ts +32 -0
- package/dist/types/api-random.test.d.ts +1 -0
- package/dist/types/api.d.ts +3 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -35,6 +35,8 @@ import {
|
|
|
35
35
|
createYinYangSvgs, // idem, en lot
|
|
36
36
|
mountYinYang, // diagramme vivant dans un conteneur de l'hôte → { controller, destroy }
|
|
37
37
|
mapCauseToInternalModel,
|
|
38
|
+
createRandomCause, // Cause aléatoire (2–7 composantes, ODD distincts) — graine optionnelle
|
|
39
|
+
getYasuniCause, // le Yasuní complet (7 composantes, 20 ODD) au format Cause
|
|
38
40
|
type Cause, type YinYangSvgConfig, type YinYangMountConfig,
|
|
39
41
|
} from "@micheeeeel/yinyangapp";
|
|
40
42
|
```
|
|
@@ -88,6 +90,19 @@ new mapboxgl.Marker({ element: film }).setLngLat([lng, lat]).addTo(map);
|
|
|
88
90
|
|
|
89
91
|
- `highlightActiveSegment: false` : bordure neutre unique (pas de mise en avant du
|
|
90
92
|
segment de la composante courante), film un peu plus léger.
|
|
93
|
+
- `stripSpikes` (défaut `true`) : les pointes (une `<line>` + un dégradé par découpe
|
|
94
|
+
d'ODD, dans chaque calque) sont retirées — invisibles à la taille d'un marker et
|
|
95
|
+
lourdes (Yasuní : 492 → 254 Ko, dégradés 484 → 25). Le film ne garde que
|
|
96
|
+
l'essentiel : lobes yin/yang avec leurs arcs d'ODD, yeux, anneau des facettes.
|
|
97
|
+
`stripSpikes: false` pour les conserver.
|
|
98
|
+
- `yinYangRotationMs` (défaut : pas de rotation) : rotation des lobes yin/yang cuite
|
|
99
|
+
en CSS pur — même cinématique que la rotation de la lib (orbite des deux lobes
|
|
100
|
+
autour du centre, rotation propre de chacun, demi-disque entraîné), continue et
|
|
101
|
+
uniforme, sans rampe ni retour à la position de base. Durée d'un tour en ms,
|
|
102
|
+
surchargeable sans recuire par la variable CSS `--yy-yinyang-rotation` sur le
|
|
103
|
+
`<svg>` (ex. `film.style.setProperty("--yy-yinyang-rotation", "12s")`), comme
|
|
104
|
+
`--yy-rotation` pour l'étincelle. Coût : un groupe orbital animé + un groupe de
|
|
105
|
+
rotation propre par lobe et par calque (film Yasuní ≈ +3 %).
|
|
91
106
|
- Cuire **une fois par lieu** (≈ 50 ms à `transitionFrames: 0`, ≈ 150 ms à 4) et
|
|
92
107
|
cloner : `film.cloneNode(true)`.
|
|
93
108
|
- Sur une page qui anime en continu (carte), préférer **`createYinYangFilmSvgAsync`**
|
|
@@ -104,6 +119,22 @@ const film = await createYinYangFilmSvgAsync({ data, size: 100, transitionFrames
|
|
|
104
119
|
- Survol / sélection : remplacer le film par `mountYinYang` (diagramme vivant),
|
|
105
120
|
puis revenir au film.
|
|
106
121
|
|
|
122
|
+
### Données : Yasuní complet ou Cause aléatoire
|
|
123
|
+
|
|
124
|
+
```ts
|
|
125
|
+
import { createRandomCause, getYasuniCause } from "@micheeeeel/yinyangapp";
|
|
126
|
+
|
|
127
|
+
const yasuni = getYasuniCause(); // identique à la page standalone
|
|
128
|
+
const pin = createRandomCause({ seed: mission.id, id: mission.id }); // stable par graine
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
`createRandomCause` tire 2 à 7 composantes (orientations alternées), 1 à 3 ODD
|
|
132
|
+
par composante — **distincts dans toute la Cause**, donc couleurs officielles
|
|
133
|
+
jamais répétées — et 1 à 4 facettes par ODD (score ∈ [0.15, 0.85], poids 1–3).
|
|
134
|
+
Toutes les plages sont surchargeables (`components`, `oddsPerComponent`,
|
|
135
|
+
`cuttingsPerOdd`, `score`, `weight`). Même `seed` ⇒ même Cause ; sans graine,
|
|
136
|
+
`Math.random`. Ne touche pas au DOM (utilisable en SSR).
|
|
137
|
+
|
|
107
138
|
Guide d'intégration détaillé (React + Mapbox, cache, survol) : [docs/integration-yvy-frontend.md](docs/integration-yvy-frontend.md).
|
|
108
139
|
|
|
109
140
|
## Développement
|