{
+ const reg = labelRegistryRef.current;
+ if (el) reg.set(i, el);
+ else reg.delete(i);
+ }}
+ data-priority={placementPriority}
+ style={{
+ // Baseline = label centered below the anchor (-50% x, +20 y).
+ // --lbl-ex / --lbl-ey are written each tick by the placement
+ // planner to push the label into a non-colliding slot.
+ transform: "translate(calc(-50% + var(--lbl-ex, 0px)), calc(20px + var(--lbl-ey, 0px)))",
+ transition: "transform 180ms ease-out",
+ display: "flex",
+ flexDirection: "column",
+ alignItems: "center",
+ gap: 3,
+ }}
+ >
);
})()}
+