@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.
@@ -0,0 +1,12 @@
1
+ import type { Composante } from "../data/yasuni_cause";
2
+ import type { Cause } from "../interfaces/ICauseModel";
3
+ /**
4
+ * Adapte le catalogue Composante[] (format yasuni_cause.ts) vers le format
5
+ * Cause attendu par validateCauseGraph et mapCauseToInternalModel.
6
+ * Les scores initiaux sont neutres (0.5 = 50 % de tension), les poids valent 1
7
+ * par satellite tant qu'aucune valeur n'est renseignée dans les données.
8
+ */
9
+ export declare function composantesToCause(composantes: Composante[], id?: string, name?: string): Cause;
10
+ /** La `Cause` du Yasuní, fraîchement construite à chaque appel (l'hôte peut
11
+ * la muter sans effet de bord). `id` par défaut : "yasuni". */
12
+ export declare function getYasuniCause(id?: string): Cause;
@@ -17,6 +17,18 @@ export interface YinYangFilmConfig {
17
17
  };
18
18
  /** Retire les <text> (titres) — inutiles à petite taille. Défaut : true. */
19
19
  stripText?: boolean;
20
+ /** Retire les pointes (spikes : une <line> + un dégradé par découpe d'ODD,
21
+ * dans chaque calque) — invisibles à la taille d'un marker et coûteuses
22
+ * (Yasuní : ≈ 40 % du poids du film). Ne reste que l'essentiel : lobes
23
+ * yin/yang avec leurs arcs d'ODD, et anneau des facettes. Défaut : true. */
24
+ stripSpikes?: boolean;
25
+ /** Rotation des lobes yin/yang (même cinématique que la rotation de la lib :
26
+ * orbite des deux lobes autour du centre, chacun tournant sur lui-même),
27
+ * cuite en CSS pur. Durée d'un tour en ms ; absent ou 0 = pas de rotation
28
+ * (défaut). Surchargeable sans recuire via la variable CSS
29
+ * `--yy-yinyang-rotation` sur le <svg> (ex. "12s"). Pas de rampe, pas de
30
+ * retour à la position de base : rotation continue, uniforme. */
31
+ yinYangRotationMs?: number;
20
32
  /** Met en avant le segment de bordure de la composante courante (comme un
21
33
  * clic sur la facette). Défaut : true. `false` = bordure neutre unique,
22
34
  * sans calque de bordure par composante (film plus léger). */
@@ -0,0 +1,32 @@
1
+ import type { Cause } from "./interfaces/ICauseModel";
2
+ /** Intervalle inclusif [min, max]. */
3
+ export type RandomRange = [min: number, max: number];
4
+ export interface RandomCauseOptions {
5
+ /** Identifiant de la Cause produite (ex. id de la mission). Défaut : dérivé
6
+ * de la graine, sinon "random-<n>". */
7
+ id?: string;
8
+ name?: string;
9
+ /** Graine : même graine ⇒ même Cause. Sans graine, tirage Math.random. */
10
+ seed?: string | number;
11
+ /** Nombre de composantes (arcs de facette). Défaut : [2, 7]. */
12
+ components?: RandomRange;
13
+ /** ODD par composante, tirés sans remise parmi les 17 (jamais deux fois le
14
+ * même ODD dans une Cause, donc jamais deux fois la même couleur).
15
+ * Défaut : [1, 3] — plafonné par les ODD restants. */
16
+ oddsPerComponent?: RandomRange;
17
+ /** Facettes (satellites) par ODD. Défaut : [1, 4]. */
18
+ cuttingsPerOdd?: RandomRange;
19
+ /** Score de chaque facette. Défaut : [0.15, 0.85]. */
20
+ score?: RandomRange;
21
+ /** Poids entier de chaque facette. Défaut : [1, 3]. */
22
+ weight?: RandomRange;
23
+ }
24
+ /**
25
+ * Construit une `Cause` aléatoire : 2 à 7 composantes (orientations yin/yang
26
+ * alternées), chacune avec des ODD distincts tirés parmi les 17 — la couleur
27
+ * de chaque arc est donc celle de l'ODD officiel — et un nombre aléatoire de
28
+ * facettes par ODD (scores et poids aléatoires).
29
+ *
30
+ * À passer telle quelle à `createYinYangFilmSvg`, `mountYinYang`, etc.
31
+ */
32
+ export declare function createRandomCause(options?: RandomCauseOptions): Cause;
@@ -0,0 +1 @@
1
+ export {};
@@ -46,3 +46,6 @@ export declare function createYinYangSvg(config: YinYangSvgConfig): SVGSVGElemen
46
46
  export declare function createYinYangSvgs(configs: YinYangSvgConfig[]): (SVGSVGElement | null)[];
47
47
  export { createYinYangFilmSvg, createYinYangFilmSvgAsync } from "./api-film";
48
48
  export type { YinYangFilmConfig, YinYangFilmAsyncOptions } from "./api-film";
49
+ export { createRandomCause } from "./api-random";
50
+ export type { RandomCauseOptions, RandomRange } from "./api-random";
51
+ export { getYasuniCause } from "./adapters/yasuniCauseAdapter";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@micheeeeel/yinyangapp",
3
- "version": "2.0.5",
3
+ "version": "2.1.1",
4
4
  "description": "A program to visualize human activity balance to reach Sustainable Development Objectives",
5
5
  "main": "dist/bundle.js",
6
6
  "types": "dist/types/main.d.ts",