@micheeeeel/yinyangapp 3.1.0 → 3.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.
@@ -11,14 +11,15 @@ export interface IViewData {
11
11
  * `docs/integration-yvy-frontend.md`). Hérité par les satellites, qui
12
12
  * sont eux-mêmes des contrôleurs complets. Défaut : false. */
13
13
  presentation?: boolean;
14
- /** Poids de ce satellite relatif à la moyenne de sa fratrie (1 = moyenne),
15
- * déjà utilisé pour dériver minEdge dans YinYangController.createYinYangChildren.
14
+ /** Taille de ce satellite relative à la taille de base (1 = poids de
15
+ * référence, voir ChildrenBuilder.weightToSizeRatio ; resserrement de son
16
+ * anneau compris), déjà utilisée pour dériver minEdge.
16
17
  * Reporté ici tel quel pour que le satellite compense sa propre taille de
17
18
  * police (voir YinYangDrawer.renderChildStateLabel) sans redériver le
18
19
  * calcul. Absent pour les patterns qui ne sont pas des satellites. */
19
20
  weightRatio?: number;
20
21
  /** Poids brut (échelle absolue [WEIGHT_MIN, WEIGHT_MAX], voir causeMetrics.ts),
21
- * distinct de weightRatio qui est relatif à la fratrie : sert à savoir
22
+ * distinct de weightRatio (une taille) : sert à savoir
22
23
  * combien de graduations remplir dans la jauge de poids du satellite
23
24
  * (voir YinYangDrawer.renderChildWeightGauge). Absent pour les patterns
24
25
  * qui ne sont pas des satellites. */
@@ -28,6 +29,11 @@ export interface IViewData {
28
29
  * satellites-facettes : c'est celui de l'arc de leur facette
29
30
  * (facetWeightLabel — « 5,5 » en règle `mean`, « 61 » en règle `sum`). */
30
31
  weightLabel?: string;
32
+ /** Satellite SANS SCORE (signature d'obstacle, voir
33
+ * `obstacleSignatureToCause`) : il ne porte qu'un poids. Ni score ni
34
+ * lobes ne sont rendus — un disque neutre et la pastille de poids
35
+ * (`children/signatureLook.ts`). Absent : satellite ordinaire. */
36
+ scoreless?: boolean;
31
37
  /** Angle imposé (radians, repère SVG : 0 = 3 h, sens horaire) auquel ce
32
38
  * satellite se place autour de son parent, au lieu de la répartition
33
39
  * uniforme par index. Posé pour les satellites-facettes du sous-état
@@ -154,6 +154,16 @@ export interface IYinYangController {
154
154
  setOnIdleViewChange(callback: ((view: "arcs" | "facettes" | "tab") => void) | null): void;
155
155
  toggleIdleView(): Promise<void>;
156
156
  isIdleFacettesActive(): boolean;
157
+ /** Superpose (ou retire, `null`) à une signature d'obstacle la lecture
158
+ * d'un contact : diamètres sur W_f, chances Q_f, fantôme sur O_f
159
+ * (OBS-UI-01, voir `docs/integration-yvy-frontend.md`). */
160
+ setFacetModulation(modulation: {
161
+ weights: Record<string, number>;
162
+ scores: Record<string, number>;
163
+ } | null, options?: {
164
+ durationMs?: number;
165
+ ghostWaves?: boolean;
166
+ }): Promise<void>;
157
167
  /**
158
168
  * Sets font scale for action stack item labels.
159
169
  */
@@ -42,4 +42,6 @@ export interface YinYangInternalModel {
42
42
  name: string;
43
43
  description: string;
44
44
  };
45
+ /** Modèle SANS SCORE (signature d'obstacle) — voir `Cause.scoreless`. */
46
+ scoreless?: boolean;
45
47
  }
@@ -5,4 +5,5 @@ import "./styles/details-panel.css";
5
5
  import "./styles/search.css";
6
6
  import "./styles/delta-chips.css";
7
7
  import "./styles/action-image.css";
8
+ import "./styles/signature.css";
8
9
  export * from "./api";
@@ -6,3 +6,12 @@
6
6
  * passes. Renvoie les angles dans l'ordre d'entrée.
7
7
  */
8
8
  export declare function spreadAngles(angles: number[], radii: number[], distance: number, gap: number): number[];
9
+ /**
10
+ * Facteur (0, 1] à appliquer aux rayons `radii` pour que leurs disques
11
+ * tiennent, sans se chevaucher, sur le cercle de rayon `distance` (écart
12
+ * `gap` entre voisins, dans l'ordre des `angles`) — la condition sous
13
+ * laquelle `spreadAngles` peut les écarter. 1 quand tout tient déjà : un
14
+ * anneau n'est resserré que s'il est plein, et alors d'un bloc (les tailles
15
+ * relatives sont gardées).
16
+ */
17
+ export declare function ringFitScale(angles: number[], radii: number[], distance: number, gap: number): number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@micheeeeel/yinyangapp",
3
- "version": "3.1.0",
3
+ "version": "3.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",