@unisim/sdk 0.79.1 → 0.80.0

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.
@@ -5,17 +5,19 @@ export interface ProfileAvatarIconProps {
5
5
  /** Edge length in px. Defaults to 36 — the navbar trigger's inner circle. */
6
6
  size?: number;
7
7
  /**
8
- * Pin a specific figure instead of taking the per-load rotation. Useful for
9
- * screenshots, docs and visual tests that need a stable frame.
8
+ * Pin a specific figure instead of taking the rotation. Useful for
9
+ * screenshots, docs and visual tests that need a stable frame — and it stops
10
+ * the carousel dead, so a pinned avatar never moves.
10
11
  */
11
12
  variant?: ProfileAvatarVariant;
12
13
  style?: CSSProperties;
13
14
  className?: string;
14
15
  }
15
16
  /**
16
- * One of {@link PROFILE_AVATAR_VARIANTS}, rotating on each page load. Decorative
17
- * only — it carries no identity, so it renders `aria-hidden` and leaves the
18
- * labelling to whatever control wraps it.
17
+ * One of {@link PROFILE_AVATAR_VARIANTS}, advancing on each page load AND every
18
+ * few seconds while the page is open. Decorative only — it carries no identity,
19
+ * so it renders `aria-hidden` and leaves the labelling to whatever control
20
+ * wraps it.
19
21
  */
20
22
  export declare function ProfileAvatarIcon({ size, variant, style, className }: ProfileAvatarIconProps): import("react/jsx-runtime").JSX.Element;
21
23
  //# sourceMappingURL=ProfileAvatarIcon.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProfileAvatarIcon.d.ts","sourceRoot":"","sources":["../src/ProfileAvatarIcon.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA8B,KAAK,aAAa,EAAE,MAAM,OAAO,CAAA;AAgBtE,eAAO,MAAM,uBAAuB,iDAAkD,CAAA;AAEtF,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAA;AAoC3E,MAAM,WAAW,sBAAsB;IACrC,6EAA6E;IAC7E,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;OAGG;IACH,OAAO,CAAC,EAAE,oBAAoB,CAAA;IAC9B,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,IAAS,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,sBAAsB,2CA+CjG"}
1
+ {"version":3,"file":"ProfileAvatarIcon.d.ts","sourceRoot":"","sources":["../src/ProfileAvatarIcon.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA8B,KAAK,aAAa,EAAE,MAAM,OAAO,CAAA;AAgBtE,eAAO,MAAM,uBAAuB,iDAAkD,CAAA;AAEtF,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAA;AAqG3E,MAAM,WAAW,sBAAsB;IACrC,6EAA6E;IAC7E,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;OAIG;IACH,OAAO,CAAC,EAAE,oBAAoB,CAAA;IAC9B,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,IAAS,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,sBAAsB,2CA4DjG"}
@@ -23,15 +23,12 @@ const ROTATION_KEY = 'unisim.profileAvatar';
23
23
  * applied in an effect once the component is on the client.
24
24
  */
25
25
  const SSR_VARIANT = PROFILE_AVATAR_VARIANTS[0];
26
- /**
27
- * Resolved once per page load and cached at module scope, so every trigger on
28
- * the page (the desktop cluster and the mobile row both mount one) agrees, and
29
- * React 18's double-invoked effects in StrictMode don't skip a figure.
30
- */
31
- let rotated = null;
32
- function rotateVariant() {
33
- if (rotated)
34
- return rotated;
26
+ /** How long each figure is held before the next fades in. */
27
+ const AVATAR_ROTATE_MS = 5000;
28
+ /** Cross-fade duration. Kept well under the hold so the swap reads as a swap. */
29
+ const AVATAR_FADE_MS = 350;
30
+ /** Advance the stored counter one step and return the figure it lands on. */
31
+ function advanceVariant() {
35
32
  const count = PROFILE_AVATAR_VARIANTS.length;
36
33
  let index;
37
34
  try {
@@ -44,29 +41,132 @@ function rotateVariant() {
44
41
  // it just can't guarantee it differs from the previous load.
45
42
  index = Math.floor(Math.random() * count);
46
43
  }
47
- rotated = PROFILE_AVATAR_VARIANTS[index] ?? SSR_VARIANT;
44
+ return PROFILE_AVATAR_VARIANTS[index] ?? SSR_VARIANT;
45
+ }
46
+ // ──────────────────────────────────────────────────────────────────────────────
47
+ // Shared rotation
48
+ //
49
+ // ONE timer and one current figure for the whole page, not one per component.
50
+ // A page routinely mounts two triggers (the desktop cluster and the mobile row),
51
+ // and two independent timers would drift apart within a minute — you'd see two
52
+ // different figures in the same header. Subscribing them to a single tick keeps
53
+ // them identical, and means the cost doesn't scale with how many are mounted.
54
+ // ──────────────────────────────────────────────────────────────────────────────
55
+ /**
56
+ * Resolved once per page load, so every trigger agrees on the starting figure
57
+ * and React 18's double-invoked effects in StrictMode don't skip one.
58
+ */
59
+ let rotated = null;
60
+ function currentVariant() {
61
+ if (!rotated)
62
+ rotated = advanceVariant();
48
63
  return rotated;
49
64
  }
65
+ const listeners = new Set();
66
+ let ticker = null;
67
+ /** Teardown returned by each listener's last invocation, keyed by listener. */
68
+ const pending = new Map();
69
+ function tick() {
70
+ // A tab nobody is looking at should not be burning through the rotation —
71
+ // come back to it and the figure would have moved for no one. Matches the
72
+ // marketing site, which the artwork and the cadence both come from.
73
+ if (typeof document !== 'undefined' && document.visibilityState !== 'visible')
74
+ return;
75
+ rotated = advanceVariant();
76
+ for (const listener of listeners) {
77
+ pending.get(listener)?.();
78
+ const teardown = listener(rotated);
79
+ if (teardown)
80
+ pending.set(listener, teardown);
81
+ else
82
+ pending.delete(listener);
83
+ }
84
+ }
85
+ /**
86
+ * Register for the page-wide rotation. Returns an unsubscribe that also stops
87
+ * the timer once the last subscriber has gone, so an app that unmounts its
88
+ * navbar isn't left with an interval running forever.
89
+ *
90
+ * No-ops (beyond registering) when the visitor has asked for reduced motion:
91
+ * they still get a figure per page load, it just never moves.
92
+ */
93
+ function subscribeToRotation(listener) {
94
+ listeners.add(listener);
95
+ const reduced = typeof window !== 'undefined' &&
96
+ typeof window.matchMedia === 'function' &&
97
+ window.matchMedia('(prefers-reduced-motion: reduce)').matches;
98
+ if (!reduced && ticker === null)
99
+ ticker = setInterval(tick, AVATAR_ROTATE_MS);
100
+ return () => {
101
+ pending.get(listener)?.();
102
+ pending.delete(listener);
103
+ listeners.delete(listener);
104
+ if (listeners.size === 0 && ticker !== null) {
105
+ clearInterval(ticker);
106
+ ticker = null;
107
+ }
108
+ };
109
+ }
50
110
  /**
51
- * One of {@link PROFILE_AVATAR_VARIANTS}, rotating on each page load. Decorative
52
- * only — it carries no identity, so it renders `aria-hidden` and leaves the
53
- * labelling to whatever control wraps it.
111
+ * One of {@link PROFILE_AVATAR_VARIANTS}, advancing on each page load AND every
112
+ * few seconds while the page is open. Decorative only — it carries no identity,
113
+ * so it renders `aria-hidden` and leaves the labelling to whatever control
114
+ * wraps it.
54
115
  */
55
116
  export function ProfileAvatarIcon({ size = 36, variant, style, className }) {
56
- const [rolled, setRolled] = useState(SSR_VARIANT);
117
+ // Both start on the SSR figure so the server render and the first client
118
+ // render agree; the effect below takes over once we're on the client.
119
+ const [shown, setShown] = useState(SSR_VARIANT);
120
+ // The figure fading IN over `shown`. Null except during a swap.
121
+ const [incoming, setIncoming] = useState(null);
122
+ // Drives the incoming layer's opacity: mounted at 0, flipped to 1 a frame
123
+ // later so the browser has something to transition FROM.
124
+ const [lit, setLit] = useState(false);
57
125
  useEffect(() => {
58
126
  if (variant)
59
127
  return;
60
- setRolled(rotateVariant());
128
+ // First figure of the page load lands instantly — the header should settle,
129
+ // not animate on arrival. Only the every-few-seconds swaps cross-fade.
130
+ setShown(currentVariant());
131
+ return subscribeToRotation((next) => {
132
+ setIncoming(next);
133
+ setLit(false);
134
+ const raf = requestAnimationFrame(() => requestAnimationFrame(() => setLit(true)));
135
+ const done = setTimeout(() => {
136
+ setShown(next);
137
+ setIncoming(null);
138
+ setLit(false);
139
+ }, AVATAR_FADE_MS);
140
+ return () => {
141
+ cancelAnimationFrame(raf);
142
+ clearTimeout(done);
143
+ };
144
+ });
61
145
  }, [variant]);
62
146
  // useId() emits ':' in React 18, which is legal in an id but awkward inside a
63
147
  // url(#…) reference — strip it so the gradient and clip resolve everywhere.
64
148
  const uid = useId().replace(/[^a-zA-Z0-9_-]/g, '');
149
+ const base = variant ?? shown;
150
+ // No wrapper when nothing is fading: the common case stays a single <svg>,
151
+ // exactly the box every existing caller lays out around.
152
+ if (!incoming) {
153
+ return _jsx(AvatarDisc, { variant: base, size: size, uid: uid, className: className, style: style });
154
+ }
155
+ return (_jsxs("span", { className: className, style: { position: 'relative', display: 'block', width: size, height: size, ...style }, children: [_jsx(AvatarDisc, { variant: base, size: size, uid: `${uid}-a`, style: LAYER_STYLE }), _jsx(AvatarDisc, { variant: incoming, size: size, uid: `${uid}-b`, style: {
156
+ ...LAYER_STYLE,
157
+ opacity: lit ? 1 : 0,
158
+ transition: `opacity ${AVATAR_FADE_MS}ms ease`,
159
+ } })] }));
160
+ }
161
+ const LAYER_STYLE = { position: 'absolute', inset: 0 };
162
+ // The disc itself. Split out so a cross-fade can stack two of them; `uid` is
163
+ // passed in rather than taken from useId() because the two layers of one
164
+ // component must not share gradient/clip ids.
165
+ function AvatarDisc({ variant, size, uid, style, className, }) {
65
166
  const gradId = `unisim-pa-grad-${uid}`;
66
167
  const clipId = `unisim-pa-clip-${uid}`;
67
168
  const clip = `url(#${clipId})`;
68
- const active = variant ?? rolled;
69
- return (_jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512", width: size, height: size, "aria-hidden": true, focusable: "false", className: className, style: { display: 'block', borderRadius: '50%', ...style }, children: [_jsxs("defs", { children: [_jsxs("radialGradient", { id: gradId, cx: "35%", cy: "30%", r: "75%", children: [_jsx("stop", { offset: "0%", stopColor: "#FF9A45" }), _jsx("stop", { offset: "100%", stopColor: "#F2650A" })] }), _jsx("clipPath", { id: clipId, children: _jsx("circle", { cx: "256", cy: "256", r: "256" }) })] }), _jsx("circle", { cx: "256", cy: "256", r: "256", fill: `url(#${gradId})` }), _jsx("circle", { cx: "256", cy: "256", r: "248", fill: "none", stroke: "#111111", strokeOpacity: "0.10", strokeWidth: "4" }), active === 'child' && _jsx(ChildFigure, { clip: clip }), active === 'man' && _jsx(ManFigure, { clip: clip }), active === 'woman' && _jsx(WomanFigure, { clip: clip }), active === 'superhero' && _jsx(SuperheroFigure, { clip: clip }), _jsx("circle", { cx: "256", cy: "256", r: "255", fill: "none", stroke: "#111111", strokeWidth: "2" })] }));
169
+ return (_jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 512 512", width: size, height: size, "aria-hidden": true, focusable: "false", className: className, style: { display: 'block', borderRadius: '50%', ...style }, children: [_jsxs("defs", { children: [_jsxs("radialGradient", { id: gradId, cx: "35%", cy: "30%", r: "75%", children: [_jsx("stop", { offset: "0%", stopColor: "#FF9A45" }), _jsx("stop", { offset: "100%", stopColor: "#F2650A" })] }), _jsx("clipPath", { id: clipId, children: _jsx("circle", { cx: "256", cy: "256", r: "256" }) })] }), _jsx("circle", { cx: "256", cy: "256", r: "256", fill: `url(#${gradId})` }), _jsx("circle", { cx: "256", cy: "256", r: "248", fill: "none", stroke: "#111111", strokeOpacity: "0.10", strokeWidth: "4" }), variant === 'child' && _jsx(ChildFigure, { clip: clip }), variant === 'man' && _jsx(ManFigure, { clip: clip }), variant === 'woman' && _jsx(WomanFigure, { clip: clip }), variant === 'superhero' && _jsx(SuperheroFigure, { clip: clip }), _jsx("circle", { cx: "256", cy: "256", r: "255", fill: "none", stroke: "#111111", strokeWidth: "2" })] }));
70
170
  }
71
171
  // ──────────────────────────────────────────────────────────────────────────────
72
172
  // Figures
@@ -1 +1 @@
1
- {"version":3,"file":"ProfileAvatarIcon.js","sourceRoot":"","sources":["../src/ProfileAvatarIcon.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProfileAvatarIcon.js","sourceRoot":"","sources":["../src/ProfileAvatarIcon.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unisim/sdk",
3
- "version": "0.79.1",
3
+ "version": "0.80.0",
4
4
  "description": "Shared React SDK for the Universal Suite — auth, entitlements, usage telemetry, changelog, org admin.",
5
5
  "license": "MIT",
6
6
  "author": "Universal Simulation Ltd",