react-two.js 0.2.4 → 0.8.22

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.
@@ -1,448 +1,1219 @@
1
- import { jsx as g, Fragment as R } from "react/jsx-runtime";
2
- import w, { createContext as G, useContext as L, useRef as E, useEffect as l, useState as b, useImperativeHandle as y, useLayoutEffect as k, useMemo as I } from "react";
3
- import m from "two.js";
4
- const S = G({ two: null, parent: null, width: 0, height: 0 }), h = () => L(S), j = (r, o = []) => {
5
- const { two: i } = h(), s = E(r);
6
- l(() => {
7
- s.current = r;
8
- }, [r, ...o]), l(() => {
9
- if (!i)
1
+ import { jsx as A, Fragment as L } from "react/jsx-runtime";
2
+ import k, { createContext as M, useContext as D, useRef as z, useEffect as w, useState as F, useCallback as U, useMemo as _, useImperativeHandle as N, useLayoutEffect as Q } from "react";
3
+ import I from "two.js";
4
+ const X = M({
5
+ two: null,
6
+ parent: null,
7
+ width: 0,
8
+ height: 0,
9
+ registerEventShape: () => {
10
+ },
11
+ unregisterEventShape: () => {
12
+ }
13
+ }), q = () => D(X), se = (t, n = []) => {
14
+ const { two: s } = q(), d = z(t);
15
+ w(() => {
16
+ d.current = t;
17
+ }, [t, ...n]), w(() => {
18
+ if (!s)
10
19
  return;
11
- let c = 0;
12
- return i.bind("update", a), () => i.unbind("update", a);
13
- function a(n, t) {
14
- c += t / 1e3, s.current?.(c, t);
20
+ let f = 0;
21
+ return s.bind("update", l), () => s.unbind("update", l);
22
+ function l(a, m) {
23
+ f += m / 1e3, d.current?.(f, m);
15
24
  }
16
- }, [i, ...o]);
17
- }, H = (r) => {
18
- const { two: o, parent: i } = h(), s = E(null), [c, a] = b({
19
- two: o,
20
- parent: i,
21
- width: 0,
22
- height: 0
25
+ }, [s, ...n]);
26
+ }, J = [
27
+ "onClick",
28
+ "onContextMenu",
29
+ "onDoubleClick",
30
+ "onWheel",
31
+ "onPointerDown",
32
+ "onPointerUp",
33
+ "onPointerOver",
34
+ "onPointerOut",
35
+ "onPointerEnter",
36
+ "onPointerLeave",
37
+ "onPointerMove",
38
+ "onPointerCancel"
39
+ ];
40
+ function O(t, n, s) {
41
+ const d = n.getBoundingClientRect(), f = t.clientX - d.left - s.width / 2, l = t.clientY - d.top - s.height / 2;
42
+ return { x: f, y: l };
43
+ }
44
+ function B(t, n) {
45
+ const s = n.getBoundingClientRect(), d = t.clientX - s.left, f = t.clientY - s.top;
46
+ return { x: d, y: f };
47
+ }
48
+ function W(t, n, s, d) {
49
+ let f = !1;
50
+ return {
51
+ nativeEvent: t,
52
+ target: n,
53
+ currentTarget: s,
54
+ point: d,
55
+ stopPropagation: () => {
56
+ f = !0;
57
+ },
58
+ get stopped() {
59
+ return f;
60
+ }
61
+ };
62
+ }
63
+ function C(t, n, s) {
64
+ return "visible" in t && !t.visible ? !1 : typeof t.contains == "function" ? t.contains(n, s) : !1;
65
+ }
66
+ function $(t, n, s) {
67
+ const d = [];
68
+ for (const [f] of t)
69
+ C(f, n, s) && d.push(f);
70
+ return d;
71
+ }
72
+ function P(t, n) {
73
+ const s = [t], d = n.get(t);
74
+ if (d?.parent) {
75
+ let f = d.parent;
76
+ for (; f; )
77
+ s.push(f), f = n.get(f)?.parent;
78
+ }
79
+ return s;
80
+ }
81
+ function K(t) {
82
+ process.env.NODE_ENV !== "production" && k.Children.forEach(t, (n) => {
83
+ if (!k.isValidElement(n))
84
+ return;
85
+ const s = n.type;
86
+ if (typeof s == "string") {
87
+ console.warn(
88
+ `[react-two.js] <${s}> is not compatible with Canvas.
89
+ Only react-two.js components (Circle, Rectangle, Group, etc.) can be used inside <Canvas>.
90
+ Place DOM elements outside of the Canvas component.
91
+ See: https://github.com/jonobr1/react-two.js#usage`
92
+ );
93
+ return;
94
+ }
95
+ if (s === k.Fragment) {
96
+ K(n.props.children);
97
+ return;
98
+ }
99
+ typeof s == "function" && n.props.children && K(n.props.children);
23
100
  });
24
- l(n, [r]);
25
- function n() {
26
- let t = () => {
101
+ }
102
+ const fe = (t) => {
103
+ const { two: n, parent: s } = q(), d = z(null), f = z(/* @__PURE__ */ new Map()), l = z(/* @__PURE__ */ new Set()), a = z(null), [m, i] = F({
104
+ two: n,
105
+ parent: s,
106
+ width: 0,
107
+ height: 0,
108
+ registerEventShape: () => {
109
+ },
110
+ unregisterEventShape: () => {
111
+ }
112
+ }), o = U(
113
+ (e, u, c) => {
114
+ f.current.set(e, { shape: e, handlers: u, parent: c });
115
+ },
116
+ []
117
+ ), g = U((e) => {
118
+ f.current.delete(e), l.current.delete(e), a.current === e && (a.current = null);
119
+ }, []);
120
+ w(S, [t]);
121
+ function S() {
122
+ let e = () => {
27
123
  };
28
- if (!o) {
29
- let f = function() {
30
- const p = d.width !== v, P = !1;
31
- p && (v = d.width), (p || P) && a((T) => ({ ...T, width: v, height: C }));
124
+ if (!n) {
125
+ let c = function() {
126
+ const H = b.width !== j, h = !1;
127
+ H && (j = b.width), (H || h) && i((v) => ({ ...v, width: j, height: T }));
32
128
  };
33
- const u = { ...r };
34
- delete u.children;
35
- const d = new m(u).appendTo(s.current);
36
- let v = d.width, C = d.height;
37
- a({ two: d, parent: d.scene, width: v, height: C }), d.bind("update", f), t = () => {
38
- d.renderer.domElement.parentElement?.removeChild(
39
- d.renderer.domElement
40
- ), d.unbind("update", f);
41
- const p = m.Instances.indexOf(d);
42
- m.Instances.splice(p, 1), d.pause();
129
+ const E = { ...t };
130
+ delete E.children, delete E.onPointerMissed;
131
+ const b = new I(E).appendTo(d.current);
132
+ let j = b.width, T = b.height;
133
+ i((H) => ({
134
+ ...H,
135
+ two: b,
136
+ parent: b.scene,
137
+ width: j,
138
+ height: T,
139
+ registerEventShape: o,
140
+ unregisterEventShape: g
141
+ })), b.bind("update", c), e = () => {
142
+ b.renderer.domElement.parentElement?.removeChild(
143
+ b.renderer.domElement
144
+ ), b.unbind("update", c);
145
+ const H = I.Instances.indexOf(b);
146
+ I.Instances.splice(H, 1), b.pause();
43
147
  };
44
148
  }
45
- return t;
149
+ return e;
46
150
  }
47
- return /* @__PURE__ */ g(S.Provider, { value: c, children: /* @__PURE__ */ g("div", { ref: s, children: r.children }) });
48
- }, M = w.forwardRef(
49
- ({ x: r, y: o, ...i }, s) => {
50
- const { two: c, parent: a, width: n, height: t } = h(), [e, f] = b(null);
51
- return l(() => {
52
- if (c) {
53
- const u = new m.Group();
54
- return f(u), () => {
55
- f(null);
151
+ return w(() => {
152
+ process.env.NODE_ENV !== "production" && K(t.children);
153
+ }, [t.children]), w(() => {
154
+ if (!m.two) return;
155
+ const e = m.two.renderer.domElement, u = (r, y, p) => {
156
+ if (r.length === 0) return;
157
+ const R = r[0], G = O(p, e, m.two), V = P(R, f.current);
158
+ for (const Y of V) {
159
+ const Z = f.current.get(Y)?.handlers[y];
160
+ if (Z) {
161
+ const x = W(
162
+ p,
163
+ R,
164
+ Y,
165
+ G
166
+ );
167
+ if (Z(x), x.stopped)
168
+ break;
169
+ }
170
+ }
171
+ }, c = (r) => {
172
+ const y = B(r, e), p = $(f.current, y.x, y.y);
173
+ p.length > 0 && u(p, "onClick", r);
174
+ }, E = (r) => {
175
+ const y = B(r, e), p = $(f.current, y.x, y.y);
176
+ p.length > 0 && u(p, "onContextMenu", r);
177
+ }, b = (r) => {
178
+ const y = B(r, e), p = $(f.current, y.x, y.y);
179
+ p.length > 0 && u(p, "onDoubleClick", r);
180
+ }, j = (r) => {
181
+ const y = B(r, e), p = $(f.current, y.x, y.y);
182
+ p.length > 0 && u(p, "onWheel", r);
183
+ }, T = (r) => {
184
+ const y = B(r, e), p = $(f.current, y.x, y.y);
185
+ p.length > 0 && (u(p, "onPointerDown", r), r.target instanceof Element && r.target.hasPointerCapture?.(r.pointerId) && (a.current = p[0]));
186
+ }, H = (r) => {
187
+ if (a.current) {
188
+ const R = f.current.get(a.current);
189
+ if (R?.handlers.onPointerUp) {
190
+ const G = O(r, e, m.two), V = W(
191
+ r,
192
+ a.current,
193
+ a.current,
194
+ G
195
+ );
196
+ R.handlers.onPointerUp(V);
197
+ }
198
+ a.current = null;
199
+ return;
200
+ }
201
+ const y = B(r, e), p = $(f.current, y.x, y.y);
202
+ p.length > 0 ? u(p, "onPointerUp", r) : t.onPointerMissed && t.onPointerMissed(r);
203
+ }, h = (r) => {
204
+ const y = B(r, e), p = $(f.current, y.x, y.y), R = new Set(p);
205
+ p.length > 0 && u(p, "onPointerMove", r);
206
+ const G = l.current;
207
+ for (const V of R)
208
+ G.has(V) || (u([V], "onPointerEnter", r), u([V], "onPointerOver", r));
209
+ for (const V of G)
210
+ R.has(V) || (u([V], "onPointerLeave", r), u([V], "onPointerOut", r));
211
+ l.current = R;
212
+ }, v = (r) => {
213
+ const y = B(r, e), p = $(f.current, y.x, y.y);
214
+ p.length > 0 && u(p, "onPointerCancel", r), a.current = null;
215
+ };
216
+ return e.addEventListener("click", c), e.addEventListener("contextmenu", E), e.addEventListener("dblclick", b), e.addEventListener("wheel", j), e.addEventListener("pointerdown", T), e.addEventListener("pointerup", H), e.addEventListener("pointermove", h), e.addEventListener("pointercancel", v), () => {
217
+ e.removeEventListener("click", c), e.removeEventListener("contextmenu", E), e.removeEventListener("dblclick", b), e.removeEventListener("wheel", j), e.removeEventListener("pointerdown", T), e.removeEventListener("pointerup", H), e.removeEventListener("pointermove", h), e.removeEventListener("pointercancel", v);
218
+ };
219
+ }, [m.two, t.onPointerMissed, o, g]), /* @__PURE__ */ A(X.Provider, { value: m, children: /* @__PURE__ */ A("div", { ref: d, children: t.children }) });
220
+ }, ce = k.forwardRef(
221
+ ({ x: t, y: n, ...s }, d) => {
222
+ const {
223
+ two: f,
224
+ parent: l,
225
+ width: a,
226
+ height: m,
227
+ registerEventShape: i,
228
+ unregisterEventShape: o
229
+ } = q(), [g, S] = F(null), { eventHandlers: e, shapeProps: u } = _(() => {
230
+ const c = {}, E = {};
231
+ for (const b in s)
232
+ J.includes(b) ? c[b] = s[b] : E[b] = s[b];
233
+ return { eventHandlers: c, shapeProps: E };
234
+ }, [s]);
235
+ return w(() => {
236
+ if (f) {
237
+ const c = new I.Group();
238
+ return S(c), () => {
239
+ S(null);
240
+ };
241
+ }
242
+ }, [f]), w(() => {
243
+ const c = g;
244
+ if (l && c)
245
+ return l.add(c), () => {
246
+ l.remove(c);
56
247
  };
248
+ }, [g, l]), w(() => {
249
+ if (g) {
250
+ const c = g;
251
+ typeof t == "number" && (c.translation.x = t), typeof n == "number" && (c.translation.y = n);
252
+ const E = { ...u };
253
+ delete E.children;
254
+ for (const b in E)
255
+ b in c && (c[b] = E[b]);
57
256
  }
58
- }, [c]), l(() => {
59
- const u = e;
60
- if (a && u)
61
- return a.add(u), () => {
62
- a.remove(u);
257
+ }, [g, t, n, u]), w(() => {
258
+ if (g && Object.keys(e).length > 0)
259
+ return i(g, e, l ?? void 0), () => {
260
+ o(g);
63
261
  };
64
- }, [e, a]), l(() => {
65
- if (e) {
66
- const u = e;
67
- typeof r == "number" && (u.translation.x = r), typeof o == "number" && (u.translation.y = o);
68
- const d = { ...i };
69
- delete d.children;
70
- for (const v in d)
71
- v in u && (u[v] = d[v]);
262
+ }, [g, i, o, l, e]), N(d, () => g, [g]), /* @__PURE__ */ A(
263
+ X.Provider,
264
+ {
265
+ value: {
266
+ two: f,
267
+ parent: g,
268
+ width: a,
269
+ height: m,
270
+ registerEventShape: i,
271
+ unregisterEventShape: o
272
+ },
273
+ children: s.children
72
274
  }
73
- }, [e, r, o, i]), y(s, () => e, [e]), /* @__PURE__ */ g(S.Provider, { value: { two: c, parent: e, width: n, height: t }, children: i.children });
275
+ );
74
276
  }
75
- ), O = w.forwardRef(
76
- ({ manual: r, x: o, y: i, ...s }, c) => {
77
- const { two: a, parent: n } = h(), [t, e] = b(null);
78
- return l(() => {
79
- const f = new m.Path();
80
- return e(f), () => {
81
- e(null);
277
+ ), ie = k.forwardRef(
278
+ ({
279
+ manual: t,
280
+ x: n,
281
+ y: s,
282
+ // Event handlers
283
+ onClick: d,
284
+ onContextMenu: f,
285
+ onDoubleClick: l,
286
+ onWheel: a,
287
+ onPointerDown: m,
288
+ onPointerUp: i,
289
+ onPointerOver: o,
290
+ onPointerOut: g,
291
+ onPointerEnter: S,
292
+ onPointerLeave: e,
293
+ onPointerMove: u,
294
+ onPointerCancel: c,
295
+ // All other props are shape props
296
+ ...E
297
+ }, b) => {
298
+ const { two: j, parent: T, registerEventShape: H, unregisterEventShape: h } = q(), [v, r] = F(null), y = _(
299
+ () => ({
300
+ ...d && { onClick: d },
301
+ ...f && { onContextMenu: f },
302
+ ...l && { onDoubleClick: l },
303
+ ...a && { onWheel: a },
304
+ ...m && { onPointerDown: m },
305
+ ...i && { onPointerUp: i },
306
+ ...o && { onPointerOver: o },
307
+ ...g && { onPointerOut: g },
308
+ ...S && { onPointerEnter: S },
309
+ ...e && { onPointerLeave: e },
310
+ ...u && { onPointerMove: u },
311
+ ...c && { onPointerCancel: c }
312
+ }),
313
+ [
314
+ d,
315
+ f,
316
+ l,
317
+ a,
318
+ m,
319
+ i,
320
+ o,
321
+ g,
322
+ S,
323
+ e,
324
+ u,
325
+ c
326
+ ]
327
+ );
328
+ return w(() => {
329
+ const p = new I.Path();
330
+ return r(p), () => {
331
+ r(null);
82
332
  };
83
- }, [a]), l(() => {
84
- if (n && t)
85
- return n.add(t), () => {
86
- n.remove(t);
333
+ }, [j]), w(() => {
334
+ if (T && v)
335
+ return T.add(v), () => {
336
+ T.remove(v);
337
+ };
338
+ }, [T, v]), w(() => {
339
+ if (v && Object.keys(y).length > 0)
340
+ return H(v, y, T ?? void 0), () => {
341
+ h(v);
87
342
  };
88
- }, [n, t]), l(() => {
89
- if (t) {
90
- const f = t;
91
- typeof o == "number" && (f.translation.x = o), typeof i == "number" && (f.translation.y = i), typeof r < "u" && (f.automatic = !r);
92
- for (const u in s)
93
- u in f && (f[u] = s[u]);
343
+ }, [v, H, h, T, y]), w(() => {
344
+ if (v) {
345
+ const p = v;
346
+ typeof n == "number" && (p.translation.x = n), typeof s == "number" && (p.translation.y = s), typeof t < "u" && (p.automatic = !t);
347
+ for (const R in E)
348
+ R in p && (p[R] = E[R]);
94
349
  }
95
- }, [s, t, o, i, r]), y(c, () => t, [t]), /* @__PURE__ */ g(R, {});
350
+ }, [E, v, n, s, t]), N(b, () => v, [v]), /* @__PURE__ */ A(L, {});
96
351
  }
97
- ), _ = w.forwardRef(
98
- ({ x: r, y: o, ...i }, s) => {
99
- const { two: c, parent: a } = h(), [n, t] = b(null);
100
- return l(() => {
101
- const e = new m.Points();
102
- return t(e), () => {
103
- t(null);
352
+ ), ae = k.forwardRef(
353
+ ({ x: t, y: n, ...s }, d) => {
354
+ const { two: f, parent: l, registerEventShape: a, unregisterEventShape: m } = q(), [i, o] = F(null), { eventHandlers: g, shapeProps: S } = _(() => {
355
+ const e = {}, u = {};
356
+ for (const c in s)
357
+ J.includes(c) ? e[c] = s[c] : u[c] = s[c];
358
+ return { eventHandlers: e, shapeProps: u };
359
+ }, [s]);
360
+ return w(() => {
361
+ const e = new I.Points();
362
+ return o(e), () => {
363
+ o(null);
104
364
  };
105
- }, [c, r, o]), l(() => {
106
- if (a && n)
107
- return a.add(n), () => {
108
- a.remove(n);
365
+ }, [f, t, n]), w(() => {
366
+ if (l && i)
367
+ return l.add(i), () => {
368
+ l.remove(i);
109
369
  };
110
- }, [a, n]), l(() => {
111
- if (n) {
112
- const e = n;
113
- typeof r == "number" && (e.translation.x = r), typeof o == "number" && (e.translation.y = o);
114
- for (const f in i)
115
- f in e && (e[f] = i[f]);
370
+ }, [l, i]), w(() => {
371
+ if (i) {
372
+ const e = i;
373
+ typeof t == "number" && (e.translation.x = t), typeof n == "number" && (e.translation.y = n);
374
+ for (const u in S)
375
+ u in e && (e[u] = S[u]);
116
376
  }
117
- }, [i, n, r, o]), y(s, () => n, [n]), /* @__PURE__ */ g(R, {});
377
+ }, [S, i, t, n]), w(() => {
378
+ if (i && Object.keys(g).length > 0)
379
+ return a(i, g, l ?? void 0), () => {
380
+ m(i);
381
+ };
382
+ }, [i, a, m, l, g]), N(d, () => i, [i]), /* @__PURE__ */ A(L, {});
118
383
  }
119
- ), z = w.forwardRef(
120
- ({ x: r, y: o, ...i }, s) => {
121
- const { two: c, parent: a } = h(), [n, t] = b(null);
122
- return l(() => {
123
- const e = new m.Text();
124
- return t(e), () => {
125
- t(null);
384
+ ), ue = k.forwardRef(
385
+ ({
386
+ x: t,
387
+ y: n,
388
+ // Event handlers
389
+ onClick: s,
390
+ onContextMenu: d,
391
+ onDoubleClick: f,
392
+ onWheel: l,
393
+ onPointerDown: a,
394
+ onPointerUp: m,
395
+ onPointerOver: i,
396
+ onPointerOut: o,
397
+ onPointerEnter: g,
398
+ onPointerLeave: S,
399
+ onPointerMove: e,
400
+ onPointerCancel: u,
401
+ // All other props are shape props
402
+ ...c
403
+ }, E) => {
404
+ const { two: b, parent: j, registerEventShape: T, unregisterEventShape: H } = q(), [h, v] = F(null), r = _(
405
+ () => ({
406
+ ...s && { onClick: s },
407
+ ...d && { onContextMenu: d },
408
+ ...f && { onDoubleClick: f },
409
+ ...l && { onWheel: l },
410
+ ...a && { onPointerDown: a },
411
+ ...m && { onPointerUp: m },
412
+ ...i && { onPointerOver: i },
413
+ ...o && { onPointerOut: o },
414
+ ...g && { onPointerEnter: g },
415
+ ...S && { onPointerLeave: S },
416
+ ...e && { onPointerMove: e },
417
+ ...u && { onPointerCancel: u }
418
+ }),
419
+ [
420
+ s,
421
+ d,
422
+ f,
423
+ l,
424
+ a,
425
+ m,
426
+ i,
427
+ o,
428
+ g,
429
+ S,
430
+ e,
431
+ u
432
+ ]
433
+ );
434
+ return w(() => {
435
+ const y = new I.Text();
436
+ return v(y), () => {
437
+ v(null);
126
438
  };
127
- }, [c]), l(() => {
128
- if (a && n)
129
- return a.add(n), () => {
130
- a.remove(n);
439
+ }, [b]), w(() => {
440
+ if (j && h)
441
+ return j.add(h), () => {
442
+ j.remove(h);
131
443
  };
132
- }, [a, n]), l(() => {
133
- if (n) {
134
- const e = n;
135
- typeof r == "number" && (e.translation.x = r), typeof o == "number" && (e.translation.y = o);
136
- for (const f in i)
137
- f in e && (e[f] = i[f]);
444
+ }, [j, h]), w(() => {
445
+ if (h) {
446
+ const y = h;
447
+ typeof t == "number" && (y.translation.x = t), typeof n == "number" && (y.translation.y = n);
448
+ for (const p in c)
449
+ p in y && (y[p] = c[p]);
138
450
  }
139
- }, [i, n, r, o]), y(s, () => n, [n]), /* @__PURE__ */ g(R, {});
451
+ }, [c, h, t, n]), w(() => {
452
+ if (h && Object.keys(r).length > 0)
453
+ return T(h, r, j ?? void 0), () => {
454
+ H(h);
455
+ };
456
+ }, [h, T, H, j, r]), N(E, () => h, [h]), /* @__PURE__ */ A(L, {});
140
457
  }
141
- ), B = w.forwardRef(
142
- ({ x: r, y: o, resolution: i, ...s }, c) => {
143
- const { two: a, parent: n } = h(), [t, e] = b(null);
144
- return l(() => {
145
- const f = new m.ArcSegment(0, 0, 0, 0, 0, 0, i);
146
- return e(f), () => {
147
- e(null);
458
+ ), de = k.forwardRef(
459
+ ({
460
+ x: t,
461
+ y: n,
462
+ resolution: s,
463
+ // Event handlers
464
+ onClick: d,
465
+ onContextMenu: f,
466
+ onDoubleClick: l,
467
+ onWheel: a,
468
+ onPointerDown: m,
469
+ onPointerUp: i,
470
+ onPointerOver: o,
471
+ onPointerOut: g,
472
+ onPointerEnter: S,
473
+ onPointerLeave: e,
474
+ onPointerMove: u,
475
+ onPointerCancel: c,
476
+ // All other props are shape props
477
+ ...E
478
+ }, b) => {
479
+ const { two: j, parent: T, registerEventShape: H, unregisterEventShape: h } = q(), [v, r] = F(null), y = _(
480
+ () => ({
481
+ ...d && { onClick: d },
482
+ ...f && { onContextMenu: f },
483
+ ...l && { onDoubleClick: l },
484
+ ...a && { onWheel: a },
485
+ ...m && { onPointerDown: m },
486
+ ...i && { onPointerUp: i },
487
+ ...o && { onPointerOver: o },
488
+ ...g && { onPointerOut: g },
489
+ ...S && { onPointerEnter: S },
490
+ ...e && { onPointerLeave: e },
491
+ ...u && { onPointerMove: u },
492
+ ...c && { onPointerCancel: c }
493
+ }),
494
+ [
495
+ d,
496
+ f,
497
+ l,
498
+ a,
499
+ m,
500
+ i,
501
+ o,
502
+ g,
503
+ S,
504
+ e,
505
+ u,
506
+ c
507
+ ]
508
+ );
509
+ return w(() => {
510
+ const p = new I.ArcSegment(0, 0, 0, 0, 0, 0, s);
511
+ return r(p), () => {
512
+ r(null);
148
513
  };
149
- }, [i, a]), l(() => {
150
- if (n && t)
151
- return n.add(t), () => {
152
- n.remove(t);
514
+ }, [s, j]), w(() => {
515
+ if (T && v)
516
+ return T.add(v), () => {
517
+ T.remove(v);
153
518
  };
154
- }, [n, t]), l(() => {
155
- if (t) {
156
- const f = t;
157
- typeof r == "number" && (f.translation.x = r), typeof o == "number" && (f.translation.y = o);
158
- for (const u in s)
159
- u in f && (f[u] = s[u]);
519
+ }, [T, v]), w(() => {
520
+ if (v) {
521
+ const p = v;
522
+ typeof t == "number" && (p.translation.x = t), typeof n == "number" && (p.translation.y = n);
523
+ for (const R in E)
524
+ R in p && (p[R] = E[R]);
160
525
  }
161
- }, [s, t, r, o]), y(c, () => t, [t]), /* @__PURE__ */ g(R, {});
526
+ }, [E, v, t, n]), w(() => {
527
+ if (v && Object.keys(y).length > 0)
528
+ return H(v, y, T ?? void 0), () => {
529
+ h(v);
530
+ };
531
+ }, [v, H, h, T, y]), N(b, () => v, [v]), /* @__PURE__ */ A(L, {});
162
532
  }
163
- ), J = w.forwardRef(
164
- ({ x: r, y: o, resolution: i, ...s }, c) => {
165
- const { two: a, parent: n } = h(), [t, e] = b(null);
166
- return l(() => {
167
- const f = new m.Circle(0, 0, 0, i);
168
- return e(f), () => {
169
- e(null);
533
+ ), le = k.forwardRef(
534
+ ({
535
+ x: t,
536
+ y: n,
537
+ resolution: s,
538
+ // Event handlers
539
+ onClick: d,
540
+ onContextMenu: f,
541
+ onDoubleClick: l,
542
+ onWheel: a,
543
+ onPointerDown: m,
544
+ onPointerUp: i,
545
+ onPointerOver: o,
546
+ onPointerOut: g,
547
+ onPointerEnter: S,
548
+ onPointerLeave: e,
549
+ onPointerMove: u,
550
+ onPointerCancel: c,
551
+ // All other props are shape props
552
+ ...E
553
+ }, b) => {
554
+ const { two: j, parent: T, registerEventShape: H, unregisterEventShape: h } = q(), [v, r] = F(null), y = _(
555
+ () => ({
556
+ ...d && { onClick: d },
557
+ ...f && { onContextMenu: f },
558
+ ...l && { onDoubleClick: l },
559
+ ...a && { onWheel: a },
560
+ ...m && { onPointerDown: m },
561
+ ...i && { onPointerUp: i },
562
+ ...o && { onPointerOver: o },
563
+ ...g && { onPointerOut: g },
564
+ ...S && { onPointerEnter: S },
565
+ ...e && { onPointerLeave: e },
566
+ ...u && { onPointerMove: u },
567
+ ...c && { onPointerCancel: c }
568
+ }),
569
+ [
570
+ d,
571
+ f,
572
+ l,
573
+ a,
574
+ m,
575
+ i,
576
+ o,
577
+ g,
578
+ S,
579
+ e,
580
+ u,
581
+ c
582
+ ]
583
+ );
584
+ return w(() => {
585
+ const p = new I.Circle(0, 0, 0, s);
586
+ return r(p), () => {
587
+ r(null);
170
588
  };
171
- }, [i, a]), l(() => {
172
- if (t) {
173
- const f = t;
174
- typeof r == "number" && (f.translation.x = r), typeof o == "number" && (f.translation.y = o);
175
- for (const u in s)
176
- u in f && (f[u] = s[u]);
589
+ }, [s, j]), w(() => {
590
+ if (v) {
591
+ const p = v;
592
+ typeof t == "number" && (p.translation.x = t), typeof n == "number" && (p.translation.y = n);
593
+ for (const R in E)
594
+ R in p && (p[R] = E[R]);
177
595
  }
178
- }, [t, s, r, o]), l(() => {
179
- if (n && t)
180
- return n.add(t), () => {
181
- n.remove(t);
596
+ }, [v, E, t, n]), w(() => {
597
+ if (T && v)
598
+ return T.add(v), () => {
599
+ T.remove(v);
182
600
  };
183
- }, [n, t]), y(c, () => t, [t]), /* @__PURE__ */ g(R, {});
601
+ }, [T, v]), w(() => {
602
+ if (v && Object.keys(y).length > 0)
603
+ return H(v, y, T ?? void 0), () => {
604
+ h(v);
605
+ };
606
+ }, [v, H, h, T, y]), N(b, () => v, [v]), /* @__PURE__ */ A(L, {});
184
607
  }
185
- ), K = w.forwardRef(
186
- ({ x: r, y: o, resolution: i, ...s }, c) => {
187
- const { two: a, parent: n } = h(), [t, e] = b(null);
188
- return l(() => {
189
- const f = new m.Ellipse(0, 0, 0, 0, i);
190
- return e(f), () => {
191
- e(null);
608
+ ), ge = k.forwardRef(
609
+ ({ x: t, y: n, resolution: s, ...d }, f) => {
610
+ const { two: l, parent: a, registerEventShape: m, unregisterEventShape: i } = q(), [o, g] = F(null), { eventHandlers: S, shapeProps: e } = _(() => {
611
+ const u = {}, c = {};
612
+ for (const E in d)
613
+ J.includes(E) ? u[E] = d[E] : c[E] = d[E];
614
+ return { eventHandlers: u, shapeProps: c };
615
+ }, [d]);
616
+ return w(() => {
617
+ const u = new I.Ellipse(0, 0, 0, 0, s);
618
+ return g(u), () => {
619
+ g(null);
192
620
  };
193
- }, [i, a]), l(() => {
194
- if (n && t)
195
- return n.add(t), () => {
196
- n.remove(t);
621
+ }, [s, l]), w(() => {
622
+ if (a && o)
623
+ return a.add(o), () => {
624
+ a.remove(o);
197
625
  };
198
- }, [n, t]), l(() => {
199
- if (t) {
200
- const f = t;
201
- typeof r == "number" && (f.translation.x = r), typeof o == "number" && (f.translation.y = o);
202
- for (const u in s)
203
- u in f && (f[u] = s[u]);
626
+ }, [a, o]), w(() => {
627
+ if (o) {
628
+ const u = o;
629
+ typeof t == "number" && (u.translation.x = t), typeof n == "number" && (u.translation.y = n);
630
+ for (const c in e)
631
+ c in u && (u[c] = e[c]);
204
632
  }
205
- }, [t, r, o, s]), y(c, () => t, [t]), /* @__PURE__ */ g(R, {});
633
+ }, [o, t, n, e]), w(() => {
634
+ if (o && Object.keys(S).length > 0)
635
+ return m(o, S, a ?? void 0), () => {
636
+ i(o);
637
+ };
638
+ }, [o, m, i, a, S]), N(f, () => o, [o]), /* @__PURE__ */ A(L, {});
206
639
  }
207
- ), N = w.forwardRef(
208
- ({ mode: r, texture: o, x: i, y: s, ...c }, a) => {
209
- const { two: n, parent: t } = h(), [e, f] = b(null);
210
- return k(() => {
211
- const u = new m.Image();
212
- return f(u), () => {
213
- f(null);
640
+ ), he = k.forwardRef(
641
+ ({
642
+ mode: t,
643
+ texture: n,
644
+ x: s,
645
+ y: d,
646
+ // Event handlers
647
+ onClick: f,
648
+ onContextMenu: l,
649
+ onDoubleClick: a,
650
+ onWheel: m,
651
+ onPointerDown: i,
652
+ onPointerUp: o,
653
+ onPointerOver: g,
654
+ onPointerOut: S,
655
+ onPointerEnter: e,
656
+ onPointerLeave: u,
657
+ onPointerMove: c,
658
+ onPointerCancel: E,
659
+ // All other props are shape props
660
+ ...b
661
+ }, j) => {
662
+ const { two: T, parent: H, registerEventShape: h, unregisterEventShape: v } = q(), [r, y] = F(null), p = _(
663
+ () => ({
664
+ ...f && { onClick: f },
665
+ ...l && { onContextMenu: l },
666
+ ...a && { onDoubleClick: a },
667
+ ...m && { onWheel: m },
668
+ ...i && { onPointerDown: i },
669
+ ...o && { onPointerUp: o },
670
+ ...g && { onPointerOver: g },
671
+ ...S && { onPointerOut: S },
672
+ ...e && { onPointerEnter: e },
673
+ ...u && { onPointerLeave: u },
674
+ ...c && { onPointerMove: c },
675
+ ...E && { onPointerCancel: E }
676
+ }),
677
+ [
678
+ f,
679
+ l,
680
+ a,
681
+ m,
682
+ i,
683
+ o,
684
+ g,
685
+ S,
686
+ e,
687
+ u,
688
+ c,
689
+ E
690
+ ]
691
+ );
692
+ return Q(() => {
693
+ const R = new I.Image();
694
+ return y(R), () => {
695
+ y(null);
214
696
  };
215
- }, [n]), l(() => {
216
- if (t && e)
217
- return t.add(e), () => {
218
- t.remove(e);
697
+ }, [T]), w(() => {
698
+ if (H && r)
699
+ return H.add(r), () => {
700
+ H.remove(r);
219
701
  };
220
- }, [t, e]), l(() => {
221
- if (e) {
222
- const u = e;
223
- typeof r < "u" && (u.mode = r), typeof o < "u" && (u.texture = o), typeof i == "number" && (u.translation.x = i), typeof s == "number" && (u.translation.y = s);
224
- for (const d in c)
225
- d in u && (u[d] = c[d]);
702
+ }, [H, r]), w(() => {
703
+ if (r) {
704
+ const R = r;
705
+ typeof t < "u" && (R.mode = t), typeof n < "u" && (R.texture = n), typeof s == "number" && (R.translation.x = s), typeof d == "number" && (R.translation.y = d);
706
+ for (const G in b)
707
+ G in R && (R[G] = b[G]);
226
708
  }
227
- }, [e, c, r, o, i, s]), y(a, () => e, [e]), /* @__PURE__ */ g(R, {});
709
+ }, [r, b, t, n, s, d]), w(() => {
710
+ if (r && Object.keys(p).length > 0)
711
+ return h(r, p, H ?? void 0), () => {
712
+ v(r);
713
+ };
714
+ }, [r, h, v, H, p]), N(j, () => r, [r]), /* @__PURE__ */ A(L, {});
228
715
  }
229
- ), Q = w.forwardRef(
230
- ({ paths: r, x: o, y: i, autoPlay: s, ...c }, a) => {
231
- const { two: n, parent: t } = h(), [e, f] = b(null);
232
- return k(() => {
233
- const u = new m.ImageSequence(r);
234
- return f(u), () => {
235
- f(null);
716
+ ), pe = k.forwardRef(
717
+ ({ paths: t, x: n, y: s, autoPlay: d, ...f }, l) => {
718
+ const { two: a, parent: m, registerEventShape: i, unregisterEventShape: o } = q(), [g, S] = F(null), { eventHandlers: e, shapeProps: u } = _(() => {
719
+ const c = {}, E = {};
720
+ for (const b in f)
721
+ J.includes(b) ? c[b] = f[b] : E[b] = f[b];
722
+ return { eventHandlers: c, shapeProps: E };
723
+ }, [f]);
724
+ return Q(() => {
725
+ const c = new I.ImageSequence(t);
726
+ return S(c), () => {
727
+ S(null);
236
728
  };
237
- }, [n, r]), l(() => {
238
- if (t && e)
239
- return t.add(e), () => {
240
- t.remove(e);
729
+ }, [a, t]), w(() => {
730
+ if (m && g)
731
+ return m.add(g), () => {
732
+ m.remove(g);
241
733
  };
242
- }, [t, e]), l(() => {
243
- if (e) {
244
- const u = e;
245
- s ? u.play() : u.pause(), typeof o == "number" && (u.translation.x = o), typeof i == "number" && (u.translation.y = i);
246
- for (const d in c)
247
- d in u && (u[d] = c[d]);
734
+ }, [m, g]), w(() => {
735
+ if (g) {
736
+ const c = g;
737
+ d ? c.play() : c.pause(), typeof n == "number" && (c.translation.x = n), typeof s == "number" && (c.translation.y = s);
738
+ for (const E in u)
739
+ E in c && (c[E] = u[E]);
248
740
  }
249
- }, [c, e, r, o, i, s]), y(a, () => e, [e]), /* @__PURE__ */ g(R, {});
741
+ }, [u, g, t, n, s, d]), w(() => {
742
+ if (g && Object.keys(e).length > 0)
743
+ return i(g, e, m ?? void 0), () => {
744
+ o(g);
745
+ };
746
+ }, [g, i, o, m, e]), N(l, () => g, [g]), /* @__PURE__ */ A(L, {});
250
747
  }
251
- ), U = w.forwardRef(
252
- ({ x1: r, y1: o, x2: i, y2: s, ...c }, a) => {
253
- const { two: n, parent: t } = h(), [e, f] = b(null);
254
- return l(() => {
255
- const u = new m.Line();
256
- return f(u), () => {
257
- f(null);
748
+ ), me = k.forwardRef(
749
+ ({
750
+ x1: t,
751
+ y1: n,
752
+ x2: s,
753
+ y2: d,
754
+ // Event handlers
755
+ onClick: f,
756
+ onContextMenu: l,
757
+ onDoubleClick: a,
758
+ onWheel: m,
759
+ onPointerDown: i,
760
+ onPointerUp: o,
761
+ onPointerOver: g,
762
+ onPointerOut: S,
763
+ onPointerEnter: e,
764
+ onPointerLeave: u,
765
+ onPointerMove: c,
766
+ onPointerCancel: E,
767
+ // All other props are shape props
768
+ ...b
769
+ }, j) => {
770
+ const { two: T, parent: H, registerEventShape: h, unregisterEventShape: v } = q(), [r, y] = F(null), p = _(
771
+ () => ({
772
+ ...f && { onClick: f },
773
+ ...l && { onContextMenu: l },
774
+ ...a && { onDoubleClick: a },
775
+ ...m && { onWheel: m },
776
+ ...i && { onPointerDown: i },
777
+ ...o && { onPointerUp: o },
778
+ ...g && { onPointerOver: g },
779
+ ...S && { onPointerOut: S },
780
+ ...e && { onPointerEnter: e },
781
+ ...u && { onPointerLeave: u },
782
+ ...c && { onPointerMove: c },
783
+ ...E && { onPointerCancel: E }
784
+ }),
785
+ [
786
+ f,
787
+ l,
788
+ a,
789
+ m,
790
+ i,
791
+ o,
792
+ g,
793
+ S,
794
+ e,
795
+ u,
796
+ c,
797
+ E
798
+ ]
799
+ );
800
+ return w(() => {
801
+ const R = new I.Line();
802
+ return y(R), () => {
803
+ y(null);
258
804
  };
259
- }, [n]), l(() => {
260
- const u = e;
261
- if (t && u)
262
- return t.add(u), () => {
263
- t.remove(u);
805
+ }, [T]), w(() => {
806
+ const R = r;
807
+ if (H && R)
808
+ return H.add(R), () => {
809
+ H.remove(R);
264
810
  };
265
- }, [t, e]), l(() => {
266
- if (e) {
267
- const u = e;
268
- typeof r == "number" && (u.left.x = r), typeof o == "number" && (u.left.y = o), typeof i == "number" && (u.right.x = i), typeof s == "number" && (u.right.y = s);
269
- for (const d in c)
270
- d in u && (u[d] = c[d]);
811
+ }, [H, r]), w(() => {
812
+ if (r) {
813
+ const R = r;
814
+ typeof t == "number" && (R.left.x = t), typeof n == "number" && (R.left.y = n), typeof s == "number" && (R.right.x = s), typeof d == "number" && (R.right.y = d);
815
+ for (const G in b)
816
+ G in R && (R[G] = b[G]);
271
817
  }
272
- }, [c, e, r, o, i, s]), y(a, () => e, [e]), /* @__PURE__ */ g(R, {});
818
+ }, [b, r, t, n, s, d]), w(() => {
819
+ if (r && Object.keys(p).length > 0)
820
+ return h(r, p, H ?? void 0), () => {
821
+ v(r);
822
+ };
823
+ }, [r, h, v, H, p]), N(j, () => r, [r]), /* @__PURE__ */ A(L, {});
273
824
  }
274
- ), V = w.forwardRef(
275
- ({ x: r, y: o, ...i }, s) => {
276
- const { two: c, parent: a } = h(), [n, t] = b(null);
277
- return l(() => {
278
- const e = new m.Polygon();
279
- return t(e), () => {
280
- t(null);
825
+ ), ye = k.forwardRef(
826
+ ({ x: t, y: n, ...s }, d) => {
827
+ const { two: f, parent: l, registerEventShape: a, unregisterEventShape: m } = q(), [i, o] = F(null), { eventHandlers: g, shapeProps: S } = _(() => {
828
+ const e = {}, u = {};
829
+ for (const c in s)
830
+ J.includes(c) ? e[c] = s[c] : u[c] = s[c];
831
+ return { eventHandlers: e, shapeProps: u };
832
+ }, [s]);
833
+ return w(() => {
834
+ const e = new I.Polygon();
835
+ return o(e), () => {
836
+ o(null);
281
837
  };
282
- }, [c]), l(() => {
283
- if (a && n)
284
- return a.add(n), () => {
285
- a.remove(n);
838
+ }, [f]), w(() => {
839
+ if (l && i)
840
+ return l.add(i), () => {
841
+ l.remove(i);
286
842
  };
287
- }, [a, n]), l(() => {
288
- if (n) {
289
- const e = n;
290
- typeof r == "number" && (e.translation.x = r), typeof o == "number" && (e.translation.y = o);
291
- for (const f in i)
292
- f in e && (e[f] = i[f]);
843
+ }, [l, i]), w(() => {
844
+ if (i) {
845
+ const e = i;
846
+ typeof t == "number" && (e.translation.x = t), typeof n == "number" && (e.translation.y = n);
847
+ for (const u in S)
848
+ u in e && (e[u] = S[u]);
293
849
  }
294
- }, [i, n, r, o]), y(s, () => n, [n]), /* @__PURE__ */ g(R, {});
850
+ }, [S, i, t, n]), w(() => {
851
+ if (i && Object.keys(g).length > 0)
852
+ return a(i, g, l ?? void 0), () => {
853
+ m(i);
854
+ };
855
+ }, [i, a, m, l, g]), N(d, () => i, [i]), /* @__PURE__ */ A(L, {});
295
856
  }
296
- ), W = w.forwardRef(
297
- ({ x: r, y: o, ...i }, s) => {
298
- const { two: c, parent: a } = h(), [n, t] = b(null);
299
- return l(() => {
300
- const e = new m.Rectangle();
301
- return t(e), () => {
302
- t(null);
857
+ ), oe = k.forwardRef(
858
+ ({
859
+ x: t,
860
+ y: n,
861
+ // Event handlers
862
+ onClick: s,
863
+ onContextMenu: d,
864
+ onDoubleClick: f,
865
+ onWheel: l,
866
+ onPointerDown: a,
867
+ onPointerUp: m,
868
+ onPointerOver: i,
869
+ onPointerOut: o,
870
+ onPointerEnter: g,
871
+ onPointerLeave: S,
872
+ onPointerMove: e,
873
+ onPointerCancel: u,
874
+ // All other props are shape props
875
+ ...c
876
+ }, E) => {
877
+ const { two: b, parent: j, registerEventShape: T, unregisterEventShape: H } = q(), [h, v] = F(null), r = _(
878
+ () => ({
879
+ ...s && { onClick: s },
880
+ ...d && { onContextMenu: d },
881
+ ...f && { onDoubleClick: f },
882
+ ...l && { onWheel: l },
883
+ ...a && { onPointerDown: a },
884
+ ...m && { onPointerUp: m },
885
+ ...i && { onPointerOver: i },
886
+ ...o && { onPointerOut: o },
887
+ ...g && { onPointerEnter: g },
888
+ ...S && { onPointerLeave: S },
889
+ ...e && { onPointerMove: e },
890
+ ...u && { onPointerCancel: u }
891
+ }),
892
+ [
893
+ s,
894
+ d,
895
+ f,
896
+ l,
897
+ a,
898
+ m,
899
+ i,
900
+ o,
901
+ g,
902
+ S,
903
+ e,
904
+ u
905
+ ]
906
+ );
907
+ return w(() => {
908
+ const y = new I.Rectangle();
909
+ return v(y), () => {
910
+ v(null);
303
911
  };
304
- }, [c]), l(() => {
305
- if (a && n)
306
- return a.add(n), () => {
307
- a.remove(n);
912
+ }, [b]), w(() => {
913
+ if (j && h)
914
+ return j.add(h), () => {
915
+ j.remove(h);
308
916
  };
309
- }, [a, n]), l(() => {
310
- if (n) {
311
- const e = n;
312
- typeof r == "number" && (e.translation.x = r), typeof o == "number" && (e.translation.y = o);
313
- for (const f in i)
314
- f in e && (e[f] = i[f]);
917
+ }, [j, h]), w(() => {
918
+ if (h) {
919
+ const y = h;
920
+ typeof t == "number" && (y.translation.x = t), typeof n == "number" && (y.translation.y = n);
921
+ for (const p in c)
922
+ p in y && (y[p] = c[p]);
315
923
  }
316
- }, [i, n, r, o]), y(s, () => n, [n]), /* @__PURE__ */ g(R, {});
924
+ }, [c, h, t, n]), w(() => {
925
+ if (h && Object.keys(r).length > 0)
926
+ return T(h, r, j ?? void 0), () => {
927
+ H(h);
928
+ };
929
+ }, [h, T, H, j, r]), N(E, () => h, [h]), /* @__PURE__ */ A(L, {});
317
930
  }
318
- ), Z = w.forwardRef(
319
- ({ x: r, y: o, ...i }, s) => {
320
- const { two: c, parent: a } = h(), [n, t] = b(null);
321
- return l(() => {
322
- const e = new m.RoundedRectangle();
323
- return t(e), () => {
324
- t(null);
931
+ ), ve = k.forwardRef(
932
+ ({
933
+ x: t,
934
+ y: n,
935
+ // Event handlers
936
+ onClick: s,
937
+ onContextMenu: d,
938
+ onDoubleClick: f,
939
+ onWheel: l,
940
+ onPointerDown: a,
941
+ onPointerUp: m,
942
+ onPointerOver: i,
943
+ onPointerOut: o,
944
+ onPointerEnter: g,
945
+ onPointerLeave: S,
946
+ onPointerMove: e,
947
+ onPointerCancel: u,
948
+ // All other props are shape props
949
+ ...c
950
+ }, E) => {
951
+ const { two: b, parent: j, registerEventShape: T, unregisterEventShape: H } = q(), [h, v] = F(null), r = _(
952
+ () => ({
953
+ ...s && { onClick: s },
954
+ ...d && { onContextMenu: d },
955
+ ...f && { onDoubleClick: f },
956
+ ...l && { onWheel: l },
957
+ ...a && { onPointerDown: a },
958
+ ...m && { onPointerUp: m },
959
+ ...i && { onPointerOver: i },
960
+ ...o && { onPointerOut: o },
961
+ ...g && { onPointerEnter: g },
962
+ ...S && { onPointerLeave: S },
963
+ ...e && { onPointerMove: e },
964
+ ...u && { onPointerCancel: u }
965
+ }),
966
+ [
967
+ s,
968
+ d,
969
+ f,
970
+ l,
971
+ a,
972
+ m,
973
+ i,
974
+ o,
975
+ g,
976
+ S,
977
+ e,
978
+ u
979
+ ]
980
+ );
981
+ return w(() => {
982
+ const y = new I.RoundedRectangle();
983
+ return v(y), () => {
984
+ v(null);
325
985
  };
326
- }, [c]), l(() => {
327
- if (a && n)
328
- return a.add(n), () => {
329
- a.remove(n);
986
+ }, [b]), w(() => {
987
+ if (j && h)
988
+ return j.add(h), () => {
989
+ j.remove(h);
330
990
  };
331
- }, [a, n]), l(() => {
332
- if (n) {
333
- const e = n;
334
- typeof r == "number" && (e.translation.x = r), typeof o == "number" && (e.translation.y = o);
335
- for (const f in i)
336
- f in e && (e[f] = i[f]);
991
+ }, [j, h]), w(() => {
992
+ if (h) {
993
+ const y = h;
994
+ typeof t == "number" && (y.translation.x = t), typeof n == "number" && (y.translation.y = n);
995
+ for (const p in c)
996
+ p in y && (y[p] = c[p]);
337
997
  }
338
- }, [i, n, r, o]), y(s, () => n, [n]), /* @__PURE__ */ g(R, {});
998
+ }, [c, h, t, n]), w(() => {
999
+ if (h && Object.keys(r).length > 0)
1000
+ return T(h, r, j ?? void 0), () => {
1001
+ H(h);
1002
+ };
1003
+ }, [h, T, H, j, r]), N(E, () => h, [h]), /* @__PURE__ */ A(L, {});
339
1004
  }
340
- ), $ = w.forwardRef(
341
- ({ path: r, x: o, y: i, autoPlay: s, ...c }, a) => {
342
- const { two: n, parent: t } = h(), [e, f] = b(null);
343
- return k(() => {
344
- const u = new m.Sprite(r);
345
- return f(u), () => {
346
- f(null);
1005
+ ), we = k.forwardRef(
1006
+ ({
1007
+ path: t,
1008
+ x: n,
1009
+ y: s,
1010
+ autoPlay: d,
1011
+ // Event handlers
1012
+ onClick: f,
1013
+ onContextMenu: l,
1014
+ onDoubleClick: a,
1015
+ onWheel: m,
1016
+ onPointerDown: i,
1017
+ onPointerUp: o,
1018
+ onPointerOver: g,
1019
+ onPointerOut: S,
1020
+ onPointerEnter: e,
1021
+ onPointerLeave: u,
1022
+ onPointerMove: c,
1023
+ onPointerCancel: E,
1024
+ // All other props are shape props
1025
+ ...b
1026
+ }, j) => {
1027
+ const { two: T, parent: H, registerEventShape: h, unregisterEventShape: v } = q(), [r, y] = F(null), p = _(
1028
+ () => ({
1029
+ ...f && { onClick: f },
1030
+ ...l && { onContextMenu: l },
1031
+ ...a && { onDoubleClick: a },
1032
+ ...m && { onWheel: m },
1033
+ ...i && { onPointerDown: i },
1034
+ ...o && { onPointerUp: o },
1035
+ ...g && { onPointerOver: g },
1036
+ ...S && { onPointerOut: S },
1037
+ ...e && { onPointerEnter: e },
1038
+ ...u && { onPointerLeave: u },
1039
+ ...c && { onPointerMove: c },
1040
+ ...E && { onPointerCancel: E }
1041
+ }),
1042
+ [
1043
+ f,
1044
+ l,
1045
+ a,
1046
+ m,
1047
+ i,
1048
+ o,
1049
+ g,
1050
+ S,
1051
+ e,
1052
+ u,
1053
+ c,
1054
+ E
1055
+ ]
1056
+ );
1057
+ return Q(() => {
1058
+ const R = new I.Sprite(t);
1059
+ return y(R), () => {
1060
+ y(null);
347
1061
  };
348
- }, [r, n]), l(() => {
349
- if (t && e)
350
- return t.add(e), () => {
351
- t.remove(e);
1062
+ }, [t, T]), w(() => {
1063
+ if (H && r)
1064
+ return H.add(r), () => {
1065
+ H.remove(r);
352
1066
  };
353
- }, [t, e]), l(() => {
354
- if (e) {
355
- const u = e;
356
- typeof o == "number" && (u.translation.x = o), typeof i == "number" && (u.translation.y = i), s ? u.play() : u.pause();
357
- for (const d in c)
358
- d in u && (u[d] = c[d]);
1067
+ }, [H, r]), w(() => {
1068
+ if (r) {
1069
+ const R = r;
1070
+ typeof n == "number" && (R.translation.x = n), typeof s == "number" && (R.translation.y = s), d ? R.play() : R.pause();
1071
+ for (const G in b)
1072
+ G in R && (R[G] = b[G]);
359
1073
  }
360
- }, [c, e, o, i, s]), y(a, () => e, [e]), /* @__PURE__ */ g(R, {});
1074
+ }, [b, r, n, s, d]), w(() => {
1075
+ if (r && Object.keys(p).length > 0)
1076
+ return h(r, p, H ?? void 0), () => {
1077
+ v(r);
1078
+ };
1079
+ }, [r, h, v, H, p]), N(j, () => r, [r]), /* @__PURE__ */ A(L, {});
361
1080
  }
362
- ), D = w.forwardRef(
363
- ({ x: r, y: o, ...i }, s) => {
364
- const { two: c, parent: a } = h(), [n, t] = b(null);
365
- return l(() => {
366
- const e = new m.Star();
367
- return t(e), () => {
368
- t(null);
1081
+ ), Se = k.forwardRef(
1082
+ ({
1083
+ x: t,
1084
+ y: n,
1085
+ // Event handlers
1086
+ onClick: s,
1087
+ onContextMenu: d,
1088
+ onDoubleClick: f,
1089
+ onWheel: l,
1090
+ onPointerDown: a,
1091
+ onPointerUp: m,
1092
+ onPointerOver: i,
1093
+ onPointerOut: o,
1094
+ onPointerEnter: g,
1095
+ onPointerLeave: S,
1096
+ onPointerMove: e,
1097
+ onPointerCancel: u,
1098
+ // All other props are shape props
1099
+ ...c
1100
+ }, E) => {
1101
+ const { two: b, parent: j, registerEventShape: T, unregisterEventShape: H } = q(), [h, v] = F(null), r = _(
1102
+ () => ({
1103
+ ...s && { onClick: s },
1104
+ ...d && { onContextMenu: d },
1105
+ ...f && { onDoubleClick: f },
1106
+ ...l && { onWheel: l },
1107
+ ...a && { onPointerDown: a },
1108
+ ...m && { onPointerUp: m },
1109
+ ...i && { onPointerOver: i },
1110
+ ...o && { onPointerOut: o },
1111
+ ...g && { onPointerEnter: g },
1112
+ ...S && { onPointerLeave: S },
1113
+ ...e && { onPointerMove: e },
1114
+ ...u && { onPointerCancel: u }
1115
+ }),
1116
+ [
1117
+ s,
1118
+ d,
1119
+ f,
1120
+ l,
1121
+ a,
1122
+ m,
1123
+ i,
1124
+ o,
1125
+ g,
1126
+ S,
1127
+ e,
1128
+ u
1129
+ ]
1130
+ );
1131
+ return w(() => {
1132
+ const y = new I.Star();
1133
+ return v(y), () => {
1134
+ v(null);
369
1135
  };
370
- }, [c]), l(() => {
371
- if (a && n)
372
- return a.add(n), () => {
373
- a.remove(n);
1136
+ }, [b]), w(() => {
1137
+ if (j && h)
1138
+ return j.add(h), () => {
1139
+ j.remove(h);
374
1140
  };
375
- }, [a, n]), l(() => {
376
- if (n) {
377
- const e = n;
378
- typeof r == "number" && (e.translation.x = r), typeof o == "number" && (e.translation.y = o);
379
- for (const f in i)
380
- f in e && (e[f] = i[f]);
1141
+ }, [j, h]), w(() => {
1142
+ if (h) {
1143
+ const y = h;
1144
+ typeof t == "number" && (y.translation.x = t), typeof n == "number" && (y.translation.y = n);
1145
+ for (const p in c)
1146
+ p in y && (y[p] = c[p]);
381
1147
  }
382
- }, [i, n, r, o]), y(s, () => n, [n]), /* @__PURE__ */ g(R, {});
1148
+ }, [c, h, t, n]), w(() => {
1149
+ if (h && Object.keys(r).length > 0)
1150
+ return T(h, r, j ?? void 0), () => {
1151
+ H(h);
1152
+ };
1153
+ }, [h, T, H, j, r]), N(E, () => h, [h]), /* @__PURE__ */ A(L, {});
383
1154
  }
384
- ), X = w.forwardRef(
385
- ({ x1: r, y1: o, x2: i, y2: s, ...c }, a) => {
386
- const n = I(() => new m.LinearGradient(), []);
387
- return l(() => {
388
- if (n) {
389
- const t = n;
390
- typeof r == "number" && (t.left.x = r), typeof o == "number" && (t.left.y = o), typeof i == "number" && (t.right.x = i), typeof s == "number" && (t.right.y = s);
391
- for (const e in c)
392
- e in t && (t[e] = c[e]);
1155
+ ), Ee = k.forwardRef(
1156
+ ({ x1: t, y1: n, x2: s, y2: d, ...f }, l) => {
1157
+ const a = _(() => new I.LinearGradient(), []);
1158
+ return w(() => {
1159
+ if (a) {
1160
+ const m = a;
1161
+ typeof t == "number" && (m.left.x = t), typeof n == "number" && (m.left.y = n), typeof s == "number" && (m.right.x = s), typeof d == "number" && (m.right.y = d);
1162
+ for (const i in f)
1163
+ i in m && (m[i] = f[i]);
393
1164
  }
394
- }, [n, r, o, i, s, c]), y(a, () => n, [n]), null;
1165
+ }, [a, t, n, s, d, f]), N(l, () => a, [a]), null;
395
1166
  }
396
- ), Y = w.forwardRef(
397
- ({ x: r, y: o, focalX: i, focalY: s, ...c }, a) => {
398
- const n = I(() => new m.RadialGradient(), []);
399
- return l(() => {
400
- if (n) {
401
- const t = n;
402
- typeof r == "number" && (n.center.x = r), typeof o == "number" && (n.center.y = o), typeof i == "number" && (n.focal.x = i), typeof s == "number" && (n.focal.y = s);
403
- for (const e in c)
404
- e in t && (t[e] = c[e]);
1167
+ ), be = k.forwardRef(
1168
+ ({ x: t, y: n, focalX: s, focalY: d, ...f }, l) => {
1169
+ const a = _(() => new I.RadialGradient(), []);
1170
+ return w(() => {
1171
+ if (a) {
1172
+ const m = a;
1173
+ typeof t == "number" && (a.center.x = t), typeof n == "number" && (a.center.y = n), typeof s == "number" && (a.focal.x = s), typeof d == "number" && (a.focal.y = d);
1174
+ for (const i in f)
1175
+ i in m && (m[i] = f[i]);
405
1176
  }
406
- }, [c, n, r, o, i, s]), y(a, () => n, [n]), null;
1177
+ }, [f, a, t, n, s, d]), N(l, () => a, [a]), null;
407
1178
  }
408
- ), x = w.forwardRef(
409
- ({ source: r, ...o }, i) => {
410
- const [s, c] = b(null);
411
- return l(() => {
412
- const a = new m.Texture(r);
413
- return c(a), () => {
414
- c(null);
1179
+ ), Re = k.forwardRef(
1180
+ ({ source: t, ...n }, s) => {
1181
+ const [d, f] = F(null);
1182
+ return w(() => {
1183
+ const l = new I.Texture(t);
1184
+ return f(l), () => {
1185
+ f(null);
415
1186
  };
416
- }, [r]), l(() => {
417
- if (s) {
418
- const a = s;
419
- for (const n in o)
420
- n in a && (a[n] = o[n]);
1187
+ }, [t]), w(() => {
1188
+ if (d) {
1189
+ const l = d;
1190
+ for (const a in n)
1191
+ a in l && (l[a] = n[a]);
421
1192
  }
422
- }, [o, s]), y(i, () => s, [s]), null;
1193
+ }, [n, d]), N(s, () => d, [d]), null;
423
1194
  }
424
1195
  );
425
1196
  export {
426
- B as ArcSegment,
427
- H as Canvas,
428
- J as Circle,
429
- S as Context,
430
- K as Ellipse,
431
- M as Group,
432
- N as Image,
433
- Q as ImageSequence,
434
- U as Line,
435
- X as LinearGradient,
436
- O as Path,
437
- _ as Points,
438
- V as Polygon,
439
- Y as RadialGradient,
440
- W as Rectangle,
441
- Z as RoundedRectangle,
442
- $ as Sprite,
443
- D as Star,
444
- z as Text,
445
- x as Texture,
446
- j as useFrame,
447
- h as useTwo
1197
+ de as ArcSegment,
1198
+ fe as Canvas,
1199
+ le as Circle,
1200
+ X as Context,
1201
+ ge as Ellipse,
1202
+ ce as Group,
1203
+ he as Image,
1204
+ pe as ImageSequence,
1205
+ me as Line,
1206
+ Ee as LinearGradient,
1207
+ ie as Path,
1208
+ ae as Points,
1209
+ ye as Polygon,
1210
+ be as RadialGradient,
1211
+ oe as Rectangle,
1212
+ ve as RoundedRectangle,
1213
+ we as Sprite,
1214
+ Se as Star,
1215
+ ue as Text,
1216
+ Re as Texture,
1217
+ se as useFrame,
1218
+ q as useTwo
448
1219
  };