react-sync-board 1.3.0 → 1.4.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.
@@ -1,18 +1,20 @@
1
- import e, { memo as t, useCallback as n, useContext as r, useEffect as i, useMemo as a, useRef as o } from "react";
1
+ import e, { memo as t, useCallback as n, useContext as r } from "react";
2
+ import { Fragment as i, jsx as a, jsxs as o } from "react/jsx-runtime";
3
+ import { createStore as s } from "zustand";
4
+ import { useStoreWithEqualityFn as c } from "zustand/traditional";
5
+ import { shallow as l } from "zustand/shallow";
6
+ import { useDebouncedCallback as u, useDebouncedEffect as d, useEventListener as f, useResizeObserver as p } from "@react-hookz/web";
2
7
  //#region \0rolldown/runtime.js
3
- var s = Object.create, c = Object.defineProperty, l = Object.getOwnPropertyDescriptor, u = Object.getOwnPropertyNames, d = Object.getPrototypeOf, f = Object.prototype.hasOwnProperty, p = (e, t) => () => (t || (e((t = { exports: {} }).exports, t), e = null), t.exports), m = (e, t, n, r) => {
4
- if (t && typeof t == "object" || typeof t == "function") for (var i = u(t), a = 0, o = i.length, s; a < o; a++) s = i[a], !f.call(e, s) && s !== n && c(e, s, {
8
+ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescriptor, _ = Object.getOwnPropertyNames, v = Object.getPrototypeOf, y = Object.prototype.hasOwnProperty, b = (e, t) => () => (t || (e((t = { exports: {} }).exports, t), e = null), t.exports), x = (e, t, n, r) => {
9
+ if (t && typeof t == "object" || typeof t == "function") for (var i = _(t), a = 0, o = i.length, s; a < o; a++) s = i[a], !y.call(e, s) && s !== n && h(e, s, {
5
10
  get: ((e) => t[e]).bind(null, s),
6
- enumerable: !(r = l(t, s)) || r.enumerable
11
+ enumerable: !(r = g(t, s)) || r.enumerable
7
12
  });
8
13
  return e;
9
- }, h = (e, t, n) => (n = e == null ? {} : s(d(e)), m(t || !e || !e.__esModule || !f.call(e, "default") ? c(n, "default", {
14
+ }, S = (e, t, n) => (n = e == null ? {} : m(v(e)), x(t || !e || !e.__esModule || !y.call(e, "default") ? h(n, "default", {
10
15
  value: e,
11
16
  enumerable: !0
12
- }) : n, e)), g = /* @__PURE__ */ ((e) => typeof require < "u" ? require : typeof Proxy < "u" ? new Proxy(e, { get: (e, t) => (typeof require < "u" ? require : e)[t] }) : e)(function(e) {
13
- if (typeof require < "u") return require.apply(this, arguments);
14
- throw Error("Calling `require` for \"" + e + "\" in an environment that doesn't expose the `require` function. See https://rolldown.rs/in-depth/bundling-cjs#require-external-modules for more details.");
15
- }), _ = (e = 21) => crypto.getRandomValues(new Uint8Array(e)).reduce((e, t) => (t &= 63, e += t < 36 ? t.toString(36) : t < 62 ? (t - 26).toString(36).toUpperCase() : t > 62 ? "-" : "_", e), ""), v = class {
17
+ }) : n, e)), C = (e = 21) => crypto.getRandomValues(new Uint8Array(e)).reduce((e, t) => (t &= 63, e += t < 36 ? t.toString(36) : t < 62 ? (t - 26).toString(36).toUpperCase() : t > 62 ? "-" : "_", e), ""), w = class {
16
18
  constructor(e, t, n = null) {
17
19
  this._socket = e, this.userId = n, this.room = t, this.toUnregister = [() => {
18
20
  this._socket.off(`${this.room}.isMaster`), this._socket.off(`${this.room}.roomJoined`), this._socket.off(`${this.room}._call`);
@@ -26,7 +28,7 @@ var s = Object.create, c = Object.defineProperty, l = Object.getOwnPropertyDescr
26
28
  });
27
29
  }
28
30
  async _callServerRPC(e, t) {
29
- let n = _();
31
+ let n = C();
30
32
  return new Promise((r, i) => {
31
33
  this._socket.once(`${this.room}._result.${n}`, (e) => {
32
34
  e.hasOwnProperty("ok") ? r(e.ok) : i(e.err);
@@ -72,8 +74,8 @@ var s = Object.create, c = Object.defineProperty, l = Object.getOwnPropertyDescr
72
74
  params: t
73
75
  });
74
76
  }
75
- }, y = ({ socket: e, room: t, onJoined: n = () => {}, onMaster: r = () => {}, userId: i = null }) => {
76
- let a = new v(e, t, i);
77
+ }, ee = ({ socket: e, room: t, onJoined: n = () => {}, onMaster: r = () => {}, userId: i = null }) => {
78
+ let a = new w(e, t, i);
77
79
  return new Promise((o) => {
78
80
  let s = !0;
79
81
  e.on(`${t}.isMaster`, () => {
@@ -90,198 +92,7 @@ var s = Object.create, c = Object.defineProperty, l = Object.getOwnPropertyDescr
90
92
  userId: i
91
93
  });
92
94
  });
93
- }, b = /* @__PURE__ */ p(((e) => {
94
- var t = Symbol.for("react.transitional.element"), n = Symbol.for("react.fragment");
95
- function r(e, n, r) {
96
- var i = null;
97
- if (r !== void 0 && (i = "" + r), n.key !== void 0 && (i = "" + n.key), "key" in n) for (var a in r = {}, n) a !== "key" && (r[a] = n[a]);
98
- else r = n;
99
- return n = r.ref, {
100
- $$typeof: t,
101
- type: e,
102
- key: i,
103
- ref: n === void 0 ? null : n,
104
- props: r
105
- };
106
- }
107
- e.Fragment = n, e.jsx = r, e.jsxs = r;
108
- })), x = /* @__PURE__ */ p(((e) => {
109
- process.env.NODE_ENV !== "production" && (function() {
110
- function t(e) {
111
- if (e == null) return null;
112
- if (typeof e == "function") return e.$$typeof === te ? null : e.displayName || e.name || null;
113
- if (typeof e == "string") return e;
114
- switch (e) {
115
- case v: return "Fragment";
116
- case b: return "Profiler";
117
- case y: return "StrictMode";
118
- case w: return "Suspense";
119
- case T: return "SuspenseList";
120
- case O: return "Activity";
121
- case ee: return "ViewTransition";
122
- }
123
- if (typeof e == "object") switch (typeof e.tag == "number" && console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."), e.$$typeof) {
124
- case _: return "Portal";
125
- case S: return e.displayName || "Context";
126
- case x: return (e._context.displayName || "Context") + ".Consumer";
127
- case C:
128
- var n = e.render;
129
- return e = e.displayName, e ||= (e = n.displayName || n.name || "", e === "" ? "ForwardRef" : "ForwardRef(" + e + ")"), e;
130
- case E: return n = e.displayName || null, n === null ? t(e.type) || "Memo" : n;
131
- case D:
132
- n = e._payload, e = e._init;
133
- try {
134
- return t(e(n));
135
- } catch {}
136
- }
137
- return null;
138
- }
139
- function n(e) {
140
- return "" + e;
141
- }
142
- function r(e) {
143
- try {
144
- n(e);
145
- var t = !1;
146
- } catch {
147
- t = !0;
148
- }
149
- if (t) {
150
- t = console;
151
- var r = t.error, i = typeof Symbol == "function" && Symbol.toStringTag && e[Symbol.toStringTag] || e.constructor.name || "Object";
152
- return r.call(t, "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.", i), n(e);
153
- }
154
- }
155
- function i(e) {
156
- if (e === v) return "<>";
157
- if (typeof e == "object" && e && e.$$typeof === D) return "<...>";
158
- try {
159
- var n = t(e);
160
- return n ? "<" + n + ">" : "<...>";
161
- } catch {
162
- return "<...>";
163
- }
164
- }
165
- function a() {
166
- var e = k.A;
167
- return e === null ? null : e.getOwner();
168
- }
169
- function o() {
170
- return Error("react-stack-top-frame");
171
- }
172
- function s(e) {
173
- if (ne.call(e, "key")) {
174
- var t = Object.getOwnPropertyDescriptor(e, "key").get;
175
- if (t && t.isReactWarning) return !1;
176
- }
177
- return e.key !== void 0;
178
- }
179
- function c(e, t) {
180
- function n() {
181
- ie || (ie = !0, console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)", t));
182
- }
183
- n.isReactWarning = !0, Object.defineProperty(e, "key", {
184
- get: n,
185
- configurable: !0
186
- });
187
- }
188
- function l() {
189
- var e = t(this.type);
190
- return j[e] || (j[e] = !0, console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")), e = this.props.ref, e === void 0 ? null : e;
191
- }
192
- function u(e, t, n, r, i, a) {
193
- var o = n.ref;
194
- return e = {
195
- $$typeof: h,
196
- type: e,
197
- key: t,
198
- props: n,
199
- _owner: r
200
- }, (o === void 0 ? null : o) === null ? Object.defineProperty(e, "ref", {
201
- enumerable: !1,
202
- value: null
203
- }) : Object.defineProperty(e, "ref", {
204
- enumerable: !1,
205
- get: l
206
- }), e._store = {}, Object.defineProperty(e._store, "validated", {
207
- configurable: !1,
208
- enumerable: !1,
209
- writable: !0,
210
- value: 0
211
- }), Object.defineProperty(e, "_debugInfo", {
212
- configurable: !1,
213
- enumerable: !1,
214
- writable: !0,
215
- value: null
216
- }), Object.defineProperty(e, "_debugStack", {
217
- configurable: !1,
218
- enumerable: !1,
219
- writable: !0,
220
- value: i
221
- }), Object.defineProperty(e, "_debugTask", {
222
- configurable: !1,
223
- enumerable: !1,
224
- writable: !0,
225
- value: a
226
- }), Object.freeze && (Object.freeze(e.props), Object.freeze(e)), e;
227
- }
228
- function d(e, n, i, o, l, d) {
229
- var p = n.children;
230
- if (p !== void 0) {
231
- if (o) {
232
- if (re(p)) {
233
- for (o = 0; o < p.length; o++) f(p[o]);
234
- Object.freeze && Object.freeze(p);
235
- } else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");
236
- } else f(p);
237
- }
238
- if (ne.call(n, "key")) {
239
- p = t(e);
240
- var m = Object.keys(n).filter(function(e) {
241
- return e !== "key";
242
- });
243
- o = 0 < m.length ? "{key: someKey, " + m.join(": ..., ") + ": ...}" : "{key: someKey}", P[p + o] || (m = 0 < m.length ? "{" + m.join(": ..., ") + ": ...}" : "{}", console.error("A props object containing a \"key\" prop is being spread into JSX:\n let props = %s;\n <%s {...props} />\nReact keys must be passed directly to JSX without using spread:\n let props = %s;\n <%s key={someKey} {...props} />", o, p, m, p), P[p + o] = !0);
244
- }
245
- if (p = null, i !== void 0 && (r(i), p = "" + i), s(n) && (r(n.key), p = "" + n.key), "key" in n) for (var h in i = {}, n) h !== "key" && (i[h] = n[h]);
246
- else i = n;
247
- return p && c(i, typeof e == "function" ? e.displayName || e.name || "Unknown" : e), u(e, p, i, a(), l, d);
248
- }
249
- function f(e) {
250
- p(e) ? e._store && (e._store.validated = 1) : typeof e == "object" && e && e.$$typeof === D && (e._payload.status === "fulfilled" ? p(e._payload.value) && e._payload.value._store && (e._payload.value._store.validated = 1) : e._store && (e._store.validated = 1));
251
- }
252
- function p(e) {
253
- return typeof e == "object" && !!e && e.$$typeof === h;
254
- }
255
- var m = g("react"), h = Symbol.for("react.transitional.element"), _ = Symbol.for("react.portal"), v = Symbol.for("react.fragment"), y = Symbol.for("react.strict_mode"), b = Symbol.for("react.profiler"), x = Symbol.for("react.consumer"), S = Symbol.for("react.context"), C = Symbol.for("react.forward_ref"), w = Symbol.for("react.suspense"), T = Symbol.for("react.suspense_list"), E = Symbol.for("react.memo"), D = Symbol.for("react.lazy"), O = Symbol.for("react.activity"), ee = Symbol.for("react.view_transition"), te = Symbol.for("react.client.reference"), k = m.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, ne = Object.prototype.hasOwnProperty, re = Array.isArray, A = console.createTask ? console.createTask : function() {
256
- return null;
257
- };
258
- m = { react_stack_bottom_frame: function(e) {
259
- return e();
260
- } };
261
- var ie, j = {}, M = m.react_stack_bottom_frame.bind(m, o)(), N = A(i(o)), P = {};
262
- e.Fragment = v, e.jsx = function(e, t, n) {
263
- var r = 1e4 > k.recentlyCreatedOwnerStacks++;
264
- if (r) {
265
- var a = Error.stackTraceLimit;
266
- Error.stackTraceLimit = 10;
267
- var o = Error("react-stack-top-frame");
268
- Error.stackTraceLimit = a;
269
- } else o = M;
270
- return d(e, t, n, !1, o, r ? A(i(e)) : N);
271
- }, e.jsxs = function(e, t, n) {
272
- var r = 1e4 > k.recentlyCreatedOwnerStacks++;
273
- if (r) {
274
- var a = Error.stackTraceLimit;
275
- Error.stackTraceLimit = 10;
276
- var o = Error("react-stack-top-frame");
277
- Error.stackTraceLimit = a;
278
- } else o = M;
279
- return d(e, t, n, !0, o, r ? A(i(e)) : N);
280
- };
281
- })();
282
- })), S = (/* @__PURE__ */ p(((e, t) => {
283
- t.exports = process.env.NODE_ENV === "production" ? b() : x();
284
- })))(), C = e.createContext(), w = () => /* @__PURE__ */ (0, S.jsx)("div", {
95
+ }, T = e.createContext(), te = () => /* @__PURE__ */ a("div", {
285
96
  style: {
286
97
  position: "absolute",
287
98
  top: "0",
@@ -291,304 +102,74 @@ var s = Object.create, c = Object.defineProperty, l = Object.getOwnPropertyDescr
291
102
  justifyContent: "center",
292
103
  alignItems: "center"
293
104
  },
294
- children: /* @__PURE__ */ (0, S.jsx)("h2", { children: "🌀 Loading..." })
295
- }), T = ({ socket: t, room: n, channel: i = "default", LoadingComponent: a = w, children: o }) => {
296
- let [s, c] = e.useState(!1), [l, u] = e.useState(!1), [d, f] = e.useState(null), p = e.useRef(null), m = e.useRef(!1), h = r(C), g = e.useRef(!1);
297
- return e.useEffect(() => (m.current = !0, () => {
298
- m.current = !1;
105
+ children: /* @__PURE__ */ a("h2", { children: "🌀 Loading..." })
106
+ }), E = ({ socket: t, room: n, channel: i = "default", LoadingComponent: o = te, children: s }) => {
107
+ let [c, l] = e.useState(!1), [u, d] = e.useState(!1), [f, p] = e.useState(null), m = e.useRef(null), h = e.useRef(!1), g = r(T), _ = e.useRef(!1);
108
+ return e.useEffect(() => (h.current = !0, () => {
109
+ h.current = !1;
299
110
  }), []), e.useEffect(() => {
300
111
  if (!t) return null;
301
112
  let e = () => {
302
- console.log(`Disconnected from ${i}…`), m.current && (c(!1), u(!1));
113
+ console.log(`Disconnected from ${i}…`), h.current && (l(!1), d(!1));
303
114
  };
304
115
  return t.on("disconnect", e), () => {
305
116
  t.off("disconnect", e);
306
117
  };
307
- }, [i, t]), e.useEffect(() => t ? (t.connected || t.connect(), console.log(`Try to connect to wire ${n} on channel ${i}`), g.current || (g.current = !0, y({
118
+ }, [i, t]), e.useEffect(() => t ? (t.connected || t.connect(), console.log(`Try to connect to wire ${n} on channel ${i}`), _.current || (_.current = !0, ee({
308
119
  socket: t,
309
120
  room: n,
310
121
  onMaster: () => {
311
- console.log(`Is now master on channel ${i}…`), m.current && u(!0);
122
+ console.log(`Is now master on channel ${i}…`), h.current && d(!0);
312
123
  },
313
124
  onJoined: (e) => {
314
- console.log(`Connected on channel ${i}…`), p.current = e, m.current && (f(e), c(!0));
125
+ console.log(`Connected on channel ${i}…`), m.current = e, h.current && (p(e), l(!0));
315
126
  }
316
127
  })), () => {
317
- p.current?.leave();
128
+ m.current?.leave();
318
129
  }) : null, [
319
130
  i,
320
131
  n,
321
132
  t
322
- ]), !s || !d ? /* @__PURE__ */ (0, S.jsx)(a, {}) : /* @__PURE__ */ (0, S.jsx)(C.Provider, {
133
+ ]), !c || !f ? /* @__PURE__ */ a(o, {}) : /* @__PURE__ */ a(T.Provider, {
323
134
  value: {
324
- ...h,
135
+ ...g,
325
136
  [i]: {
326
- wire: d,
327
- joined: s,
328
- isMaster: l,
137
+ wire: f,
138
+ joined: c,
139
+ isMaster: u,
329
140
  room: n
330
141
  }
331
142
  },
332
- children: o
143
+ children: s
333
144
  });
334
- }, E = (e = "default") => (r(C) || {})[e], D = (e) => {
335
- let t, n = /* @__PURE__ */ new Set(), r = (e, r) => {
336
- let i = typeof e == "function" ? e(t) : e;
337
- if (!Object.is(i, t)) {
338
- let e = t;
339
- t = r ?? (typeof i != "object" || !i) ? i : Object.assign({}, t, i), n.forEach((n) => n(t, e));
340
- }
341
- }, i = () => t, a = {
342
- setState: r,
343
- getState: i,
344
- getInitialState: () => o,
345
- subscribe: (e) => (n.add(e), () => n.delete(e))
346
- }, o = t = e(r, i, a);
347
- return a;
348
- }, O = ((e) => e ? D(e) : D), ee = /* @__PURE__ */ p(((e) => {
349
- var t = g("react");
350
- function n(e, t) {
351
- return e === t && (e !== 0 || 1 / e == 1 / t) || e !== e && t !== t;
352
- }
353
- var r = typeof Object.is == "function" ? Object.is : n, i = t.useState, a = t.useEffect, o = t.useLayoutEffect, s = t.useDebugValue;
354
- function c(e, t) {
355
- var n = t(), r = i({ inst: {
356
- value: n,
357
- getSnapshot: t
358
- } }), c = r[0].inst, u = r[1];
359
- return o(function() {
360
- c.value = n, c.getSnapshot = t, l(c) && u({ inst: c });
361
- }, [
362
- e,
363
- n,
364
- t
365
- ]), a(function() {
366
- return l(c) && u({ inst: c }), e(function() {
367
- l(c) && u({ inst: c });
368
- });
369
- }, [e]), s(n), n;
370
- }
371
- function l(e) {
372
- var t = e.getSnapshot;
373
- e = e.value;
374
- try {
375
- var n = t();
376
- return !r(e, n);
377
- } catch {
378
- return !0;
379
- }
380
- }
381
- function u(e, t) {
382
- return t();
383
- }
384
- var d = typeof window > "u" || window.document === void 0 || window.document.createElement === void 0 ? u : c;
385
- e.useSyncExternalStore = t.useSyncExternalStore === void 0 ? d : t.useSyncExternalStore;
386
- })), te = /* @__PURE__ */ p(((e) => {
387
- process.env.NODE_ENV !== "production" && (function() {
388
- function t(e, t) {
389
- return e === t && (e !== 0 || 1 / e == 1 / t) || e !== e && t !== t;
390
- }
391
- function n(e, t) {
392
- d || a.startTransition === void 0 || (d = !0, console.error("You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release."));
393
- var n = t();
394
- if (!f) {
395
- var i = t();
396
- o(n, i) || (console.error("The result of getSnapshot should be cached to avoid an infinite loop"), f = !0);
397
- }
398
- i = s({ inst: {
399
- value: n,
400
- getSnapshot: t
401
- } });
402
- var p = i[0].inst, m = i[1];
403
- return l(function() {
404
- p.value = n, p.getSnapshot = t, r(p) && m({ inst: p });
405
- }, [
406
- e,
407
- n,
408
- t
409
- ]), c(function() {
410
- return r(p) && m({ inst: p }), e(function() {
411
- r(p) && m({ inst: p });
412
- });
413
- }, [e]), u(n), n;
414
- }
415
- function r(e) {
416
- var t = e.getSnapshot;
417
- e = e.value;
418
- try {
419
- var n = t();
420
- return !o(e, n);
421
- } catch {
422
- return !0;
423
- }
424
- }
425
- function i(e, t) {
426
- return t();
427
- }
428
- typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ < "u" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart == "function" && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());
429
- var a = g("react"), o = typeof Object.is == "function" ? Object.is : t, s = a.useState, c = a.useEffect, l = a.useLayoutEffect, u = a.useDebugValue, d = !1, f = !1, p = typeof window > "u" || window.document === void 0 || window.document.createElement === void 0 ? i : n;
430
- e.useSyncExternalStore = a.useSyncExternalStore === void 0 ? p : a.useSyncExternalStore, typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ < "u" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop == "function" && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());
431
- })();
432
- })), k = /* @__PURE__ */ p(((e, t) => {
433
- t.exports = process.env.NODE_ENV === "production" ? ee() : te();
434
- })), ne = /* @__PURE__ */ p(((e) => {
435
- var t = g("react"), n = k();
436
- function r(e, t) {
437
- return e === t && (e !== 0 || 1 / e == 1 / t) || e !== e && t !== t;
438
- }
439
- var i = typeof Object.is == "function" ? Object.is : r, a = n.useSyncExternalStore, o = t.useRef, s = t.useEffect, c = t.useMemo, l = t.useDebugValue;
440
- e.useSyncExternalStoreWithSelector = function(e, t, n, r, u) {
441
- var d = o(null);
442
- if (d.current === null) {
443
- var f = {
444
- hasValue: !1,
445
- value: null
446
- };
447
- d.current = f;
448
- } else f = d.current;
449
- d = c(function() {
450
- function e(e) {
451
- if (!a) {
452
- if (a = !0, o = e, e = r(e), u !== void 0 && f.hasValue) {
453
- var t = f.value;
454
- if (u(t, e)) return s = t;
455
- }
456
- return s = e;
457
- }
458
- if (t = s, i(o, e)) return t;
459
- var n = r(e);
460
- return u !== void 0 && u(t, n) ? (o = e, t) : (o = e, s = n);
461
- }
462
- var a = !1, o, s, c = n === void 0 ? null : n;
463
- return [function() {
464
- return e(t());
465
- }, c === null ? void 0 : function() {
466
- return e(c());
467
- }];
468
- }, [
469
- t,
470
- n,
471
- r,
472
- u
473
- ]);
474
- var p = a(e, d[0], d[1]);
475
- return s(function() {
476
- f.hasValue = !0, f.value = p;
477
- }, [p]), l(p), p;
478
- };
479
- })), re = /* @__PURE__ */ p(((e) => {
480
- process.env.NODE_ENV !== "production" && (function() {
481
- function t(e, t) {
482
- return e === t && (e !== 0 || 1 / e == 1 / t) || e !== e && t !== t;
483
- }
484
- typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ < "u" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart == "function" && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());
485
- var n = g("react"), r = k(), i = typeof Object.is == "function" ? Object.is : t, a = r.useSyncExternalStore, o = n.useRef, s = n.useEffect, c = n.useMemo, l = n.useDebugValue;
486
- e.useSyncExternalStoreWithSelector = function(e, t, n, r, u) {
487
- var d = o(null);
488
- if (d.current === null) {
489
- var f = {
490
- hasValue: !1,
491
- value: null
492
- };
493
- d.current = f;
494
- } else f = d.current;
495
- d = c(function() {
496
- function e(e) {
497
- if (!a) {
498
- if (a = !0, o = e, e = r(e), u !== void 0 && f.hasValue) {
499
- var t = f.value;
500
- if (u(t, e)) return s = t;
501
- }
502
- return s = e;
503
- }
504
- if (t = s, i(o, e)) return t;
505
- var n = r(e);
506
- return u !== void 0 && u(t, n) ? (o = e, t) : (o = e, s = n);
507
- }
508
- var a = !1, o, s, c = n === void 0 ? null : n;
509
- return [function() {
510
- return e(t());
511
- }, c === null ? void 0 : function() {
512
- return e(c());
513
- }];
514
- }, [
515
- t,
516
- n,
517
- r,
518
- u
519
- ]);
520
- var p = a(e, d[0], d[1]);
521
- return s(function() {
522
- f.hasValue = !0, f.value = p;
523
- }, [p]), l(p), p;
524
- }, typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ < "u" && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop == "function" && __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());
525
- })();
526
- })), { useSyncExternalStoreWithSelector: A } = (/* @__PURE__ */ h((/* @__PURE__ */ p(((e, t) => {
527
- t.exports = process.env.NODE_ENV === "production" ? ne() : re();
528
- })))(), 1)).default, ie = (e) => e;
529
- function j(t, n = ie, r) {
530
- let i = A(t.subscribe, t.getState, t.getInitialState, n, r);
531
- return e.useDebugValue(i), i;
532
- }
533
- //#endregion
534
- //#region node_modules/zustand/esm/vanilla/shallow.mjs
535
- var M = (e) => Symbol.iterator in e, N = (e) => "entries" in e, P = (e, t) => {
536
- let n = e instanceof Map ? e : new Map(e.entries()), r = t instanceof Map ? t : new Map(t.entries());
537
- if (n.size !== r.size) return !1;
538
- for (let [e, t] of n) if (!r.has(e) || !Object.is(t, r.get(e))) return !1;
539
- return !0;
540
- }, ae = (e, t) => {
541
- let n = e[Symbol.iterator](), r = t[Symbol.iterator](), i = n.next(), a = r.next();
542
- for (; !i.done && !a.done;) {
543
- if (!Object.is(i.value, a.value)) return !1;
544
- i = n.next(), a = r.next();
545
- }
546
- return !!i.done && !!a.done;
547
- };
548
- function oe(e, t) {
549
- return Object.is(e, t) ? !0 : typeof e != "object" || !e || typeof t != "object" || !t || Object.getPrototypeOf(e) !== Object.getPrototypeOf(t) ? !1 : M(e) && M(t) ? N(e) && N(t) ? P(e, t) : ae(e, t) : P({ entries: () => Object.entries(e) }, { entries: () => Object.entries(t) });
550
- }
551
- //#endregion
552
- //#region src/lib/utils.js
553
- var F = (e, t) => e.classList && e.classList.contains(t), I = (e, t) => F(e, t) ? e : e.parentNode ? I(e.parentNode, t) : !1, se = ([e, t], [n, r]) => {
145
+ }, D = (e = "default") => (r(T) || {})[e], O = (e, t) => e.classList && e.classList.contains(t), ne = (e, t) => O(e, t) ? e : e.parentNode ? ne(e.parentNode, t) : !1, re = ([e, t], [n, r]) => {
554
146
  let i = Math.abs(e - n), a = Math.abs(t - r);
555
147
  return Math.hypot(i, a);
556
- }, ce = (e, t, n) => {
148
+ }, ie = (e, t, n) => {
557
149
  let r = n * Math.PI / 180;
558
150
  return [e * Math.cos(r) - t * Math.sin(r), e * Math.sin(r) + t * Math.cos(r)];
559
- }, le = ([e, t], { scale: n, rotate: r, translateX: i, translateY: a }) => ce((e - i) / n, (t - a) / n, -r), L = ([e, t], { scale: n, rotate: r, translateX: i, translateY: a }) => {
560
- let [o, s] = ce(e, t, r);
151
+ }, k = ([e, t], { scale: n, rotate: r, translateX: i, translateY: a }) => ie((e - i) / n, (t - a) / n, -r), A = ([e, t], { scale: n, rotate: r, translateX: i, translateY: a }) => {
152
+ let [o, s] = ie(e, t, r);
561
153
  return [o * n + i, s * n + a];
562
- }, ue = (e, t, n, r) => {
563
- let i = e.x, a = e.y, o = t.x, s = t.y, c = n.x, l = n.y, u = o - i, d = s - a, f = i - c, p = a - l, m = u * u + d * d, h = 2 * (f * u + p * d), g = f * f + p * p - r * r, _ = h * h - 4 * m * g;
564
- if (_ < 0) return [];
565
- let v = (-h + Math.sqrt(_)) / (2 * m), y = (-h - Math.sqrt(_)) / (2 * m), b = [];
566
- return v >= 0 && v <= 1 && b.push({
567
- x: i + v * u,
568
- y: a + v * d
569
- }), y >= 0 && y <= 1 && b.push({
570
- x: i + y * u,
571
- y: a + y * d
572
- }), b;
573
- }, de = (e, t) => e.x > t.left && e.x < t.left + t.width && e.y > t.top && e.y < t.top + t.height, fe = (e, t) => Array.from(e.querySelectorAll(".corner")).every((e) => {
154
+ }, j = (e, t) => e.x > t.left && e.x < t.left + t.width && e.y > t.top && e.y < t.top + t.height, ae = (e, t) => Array.from(e.querySelectorAll(".corner")).every((e) => {
574
155
  let { top: n, left: r } = e.getBoundingClientRect();
575
- return de({
156
+ return j({
576
157
  x: r,
577
158
  y: n
578
159
  }, t);
579
- }), pe = (e, t) => fe(e, t.getBoundingClientRect()), R = (e, t) => {
160
+ }), oe = (e, t) => ae(e, t.getBoundingClientRect()), M = (e, t) => {
580
161
  try {
581
162
  return document.getElementById(`${e}__${t}`);
582
163
  } catch {
583
164
  console.error(`Error while getting item with id ${t} inside wrapper`, e);
584
165
  return;
585
166
  }
586
- }, z = (e) => {
167
+ }, N = (e) => {
587
168
  let t = e?.dataset?.id;
588
169
  return t || console.error("getIdFromElem call fails", e, JSON.stringify(e?.dataset), e?.dataset?.id), t;
589
- }, me = (e, t) => {
170
+ }, se = (e, t) => {
590
171
  let n = e.reduce((e, n) => {
591
- let r = R(t, n);
172
+ let r = M(t, n);
592
173
  if (!r) return e || null;
593
174
  let { left: i, right: a, top: o, bottom: s } = r.getBoundingClientRect(), c;
594
175
  return c = e || {
@@ -599,10 +180,10 @@ var F = (e, t) => e.classList && e.classList.contains(t), I = (e, t) => F(e, t)
599
180
  }, c.left = Math.min(i, c.left), c.top = Math.min(o, c.top), c.right = Math.max(a, c.right), c.bottom = Math.max(s, c.bottom), c;
600
181
  }, null);
601
182
  return n && (n.width = n.right - n.left, n.height = n.bottom - n.top, n);
602
- }, he = (e, t, n = null) => (n === null && (n = /* @__PURE__ */ new Set()), !Array.isArray(t) || t.length === 0 ? [] : t.map((t) => n.has(t) ? [] : (n.add(t), e[t] ? [t, ...he(e, e[t].linkedItems, n)] : [])).flat()), ge = (e, t, n) => {
603
- let r = new Set(he(e, n));
183
+ }, ce = (e, t, n = null) => (n === null && (n = /* @__PURE__ */ new Set()), !Array.isArray(t) || t.length === 0 ? [] : t.map((t) => n.has(t) ? [] : (n.add(t), e[t] ? [t, ...ce(e, e[t].linkedItems, n)] : [])).flat()), le = (e, t, n) => {
184
+ let r = new Set(ce(e, n));
604
185
  return t.filter((e) => r.has(e));
605
- }, _e = ({ x: e, y: t, width: n, height: r }, { type: i = "grid", size: a = 1, offset: o = {
186
+ }, ue = ({ x: e, y: t, width: n, height: r }, { type: i = "grid", size: a = 1, offset: o = {
606
187
  x: 0,
607
188
  y: 0
608
189
  } }) => {
@@ -623,7 +204,7 @@ var F = (e, t) => e.classList && e.classList.contains(t), I = (e, t) => F(e, t)
623
204
  x: l + o.x - n / 2,
624
205
  y: u + o.y - r / 2
625
206
  };
626
- }, ve = /* @__PURE__ */ "#037758.#99092a.#067070.#c6650f.#008726.#3d7004.#348402.#057f58.#b58612.#c44c01.#0a7704.#0e910e.#027377.#c99e02.#054160.#157a01.#b10de2.#0d6289.#bc5d03.#ba0cd1.#d39f10.#0c4c7a.#460782.#a51f10.#cecb10.#9b0943.#607f0c.#007a4b.#bf0daa.#af0ad8".split("."), ye = () => ve[Math.floor(Math.random() * ve.length)], be = ({ wire: e, storeName: t, noSync: n = [], defaultValue: r }, i) => (a, o, s) => {
207
+ }, de = /* @__PURE__ */ "#037758.#99092a.#067070.#c6650f.#008726.#3d7004.#348402.#057f58.#b58612.#c44c01.#0a7704.#0e910e.#027377.#c99e02.#054160.#157a01.#b10de2.#0d6289.#bc5d03.#ba0cd1.#d39f10.#0c4c7a.#460782.#a51f10.#cecb10.#9b0943.#607f0c.#007a4b.#bf0daa.#af0ad8".split("."), fe = () => de[Math.floor(Math.random() * de.length)], pe = ({ wire: e, storeName: t, noSync: n = [], defaultValue: r }, i) => (a, o, s) => {
627
208
  a({ ready: !1 });
628
209
  let c = [];
629
210
  (async () => {
@@ -647,7 +228,7 @@ var F = (e, t) => e.classList && e.classList.contains(t), I = (e, t) => F(e, t)
647
228
  return d.unsub = () => {
648
229
  c.forEach((e) => e());
649
230
  }, d;
650
- }, xe = e.createContext(), Se = (e, t) => ({
231
+ }, me = e.createContext(), he = (e, t) => ({
651
232
  items: {},
652
233
  getItems: () => t().items,
653
234
  setItems: (t) => e({ items: t }),
@@ -670,7 +251,7 @@ var F = (e, t) => e.classList && e.classList.contains(t), I = (e, t) => F(e, t)
670
251
  });
671
252
  }), { items: r };
672
253
  })
673
- }), Ce = (e, t) => ({
254
+ }), ge = (e, t) => ({
674
255
  itemIds: [],
675
256
  setItemIds: (t) => e({ itemIds: t }),
676
257
  getItemIds: () => t().itemIds,
@@ -687,7 +268,7 @@ var F = (e, t) => e.classList && e.classList.contains(t), I = (e, t) => F(e, t)
687
268
  return r[t] = n, { itemIds: r };
688
269
  }),
689
270
  updateManyItemIds: (t) => e((e) => ({ itemIds: e.itemIds.map((e, n) => t[n] === void 0 ? e : t[n]) }))
690
- }), we = (e, t) => ({
271
+ }), _e = (e, t) => ({
691
272
  removeItemsById: (t) => e((e) => ({
692
273
  itemIds: e.itemIds.filter((e) => !t.includes(e)),
693
274
  items: Object.fromEntries(Object.entries(e.items).filter(([e]) => !t.includes(e)))
@@ -714,7 +295,7 @@ var F = (e, t) => e.classList && e.classList.contains(t), I = (e, t) => F(e, t)
714
295
  itemIds: r
715
296
  };
716
297
  })
717
- }), Te = (e, t) => ({
298
+ }), ve = (e, t) => ({
718
299
  boardConfig: {},
719
300
  getBoardConfig: () => t().boardConfig,
720
301
  setBoardConfig: (t) => e({ boardConfig: t }),
@@ -722,7 +303,7 @@ var F = (e, t) => e.classList && e.classList.contains(t), I = (e, t) => F(e, t)
722
303
  ...e.boardConfig,
723
304
  ...t
724
305
  } }))
725
- }), Ee = (e, t) => ({
306
+ }), ye = (e, t) => ({
726
307
  session: {},
727
308
  getSessionInfo: () => t().session,
728
309
  setSessionInfo: (t) => e({ session: t }),
@@ -730,31 +311,34 @@ var F = (e, t) => e.classList && e.classList.contains(t), I = (e, t) => F(e, t)
730
311
  ...e.session,
731
312
  ...t
732
313
  } }))
733
- }), De = ({ storeName: t, children: n, defaultValue: r }) => {
734
- let { wire: i } = E("room"), [a, o] = e.useState(!1), [s] = e.useState(() => O(be({
314
+ }), be = ({ storeName: t, children: n, defaultValue: r }) => {
315
+ let { wire: i } = D("room"), [o, c] = e.useState(!1), [l] = e.useState(() => s(pe({
735
316
  wire: i,
736
317
  storeName: t,
737
318
  defaultValue: r
738
319
  }, (...e) => ({
739
- ...Se(...e),
740
- ...Ce(...e),
741
- ...we(...e),
742
- ...Te(...e),
743
- ...Ee(...e)
320
+ ...he(...e),
321
+ ...ge(...e),
322
+ ..._e(...e),
323
+ ...ve(...e),
324
+ ...ye(...e)
744
325
  }))));
745
326
  return e.useEffect(() => {
746
- let e = s.subscribe((t) => {
747
- t.ready && (e(), o(!0));
327
+ let e = l.subscribe((t) => {
328
+ t.ready && (e(), c(!0));
748
329
  });
749
- }, [s]), a ? /* @__PURE__ */ (0, S.jsx)(xe.Provider, {
750
- value: s,
330
+ }, [l]), o ? /* @__PURE__ */ a(me.Provider, {
331
+ value: l,
751
332
  children: n
752
333
  }) : null;
753
- }, B = (e) => j(r(xe), e, oe), Oe = () => {
754
- let [t, n] = B((e) => [e.itemIds, e.items]);
334
+ }, P = (e) => {
335
+ let t = r(me);
336
+ return c(t, e, l);
337
+ }, xe = () => {
338
+ let [t, n] = P((e) => [e.itemIds, e.items]);
755
339
  return e.useMemo(() => t.map((e) => n[e]), [t, n]);
756
- }, ke = () => {
757
- let [t, n, r] = B((e) => [
340
+ }, Se = () => {
341
+ let [t, n, r] = P((e) => [
758
342
  e.items,
759
343
  e.itemIds,
760
344
  e.getItemList
@@ -769,7 +353,7 @@ var F = (e, t) => e.classList && e.classList.contains(t), I = (e, t) => F(e, t)
769
353
  n,
770
354
  r
771
355
  ]), i;
772
- }, Ae = 5e4, je = e.createContext(), Me = (e, t) => ({
356
+ }, Ce = 5e4, we = e.createContext(), Te = (e, t) => ({
773
357
  config: {
774
358
  itemTemplates: {},
775
359
  actions: {},
@@ -780,14 +364,14 @@ var F = (e, t) => e.classList && e.classList.contains(t), I = (e, t) => F(e, t)
780
364
  radius: 0
781
365
  },
782
366
  boardWrapperRect: {},
783
- boardSize: Ae
367
+ boardSize: Ce
784
368
  },
785
369
  updateConfiguration: (t) => e((e) => ({ config: {
786
370
  ...e.config,
787
371
  ...t
788
372
  } })),
789
373
  getConfiguration: () => t().config
790
- }), Ne = (e, t) => ({
374
+ }), Ee = (e, t) => ({
791
375
  boardState: {
792
376
  movingItems: !1,
793
377
  selecting: !1,
@@ -803,7 +387,7 @@ var F = (e, t) => e.classList && e.classList.contains(t), I = (e, t) => F(e, t)
803
387
  ...t
804
388
  } })),
805
389
  getBoardState: () => t().boardState
806
- }), Pe = (e, t) => ({
390
+ }), De = (e, t) => ({
807
391
  interactions: {},
808
392
  getInteractions: () => t().interactions,
809
393
  register: (t, n) => e((e) => {
@@ -825,7 +409,7 @@ var F = (e, t) => e.classList && e.classList.contains(t), I = (e, t) => F(e, t)
825
409
  setTimeout(() => e(n), 0);
826
410
  });
827
411
  }
828
- }), Fe = (e, t) => ({
412
+ }), Oe = (e, t) => ({
829
413
  selection: [],
830
414
  setSelection: (t) => e((e) => JSON.stringify(e.selection) === JSON.stringify(t) ? {} : { selection: t }),
831
415
  getSelection: () => t().selection,
@@ -841,204 +425,34 @@ var F = (e, t) => e.classList && e.classList.contains(t), I = (e, t) => F(e, t)
841
425
  let n = e.selectionBox;
842
426
  return !n || !t || n.top !== t.top || n.left !== t.left || n.width !== t.width || n.height !== t.height ? { selectionBox: t } : {};
843
427
  })
844
- }), Ie = ({ children: t }) => {
845
- let [n] = e.useState(() => O((...e) => ({
846
- ...Me(...e),
847
- ...Ne(...e),
848
- ...Pe(...e),
849
- ...Fe(...e)
428
+ }), ke = ({ children: t }) => {
429
+ let [n] = e.useState(() => s((...e) => ({
430
+ ...Te(...e),
431
+ ...Ee(...e),
432
+ ...De(...e),
433
+ ...Oe(...e)
850
434
  })));
851
- return /* @__PURE__ */ (0, S.jsx)(je.Provider, {
435
+ return /* @__PURE__ */ a(we.Provider, {
852
436
  value: n,
853
437
  children: t
854
438
  });
855
- }, V = (e) => j(r(je), e, oe), Le = () => {
856
- let [e] = V((e) => [e.selection]);
439
+ }, F = (e) => {
440
+ let t = r(we);
441
+ return c(t, e, l);
442
+ }, Ae = () => {
443
+ let [e] = F((e) => [e.selection]);
857
444
  return e;
858
- }, Re = () => {
859
- let [e] = V((e) => [e.getSelection]);
445
+ }, je = () => {
446
+ let [e] = F((e) => [e.getSelection]);
860
447
  return e;
861
- };
862
- //#endregion
863
- //#region node_modules/@react-hookz/web/dist/useSyncedRef/index.js
864
- function ze(e) {
865
- let t = o(e);
866
- return t.current = e, a(() => Object.freeze({ get current() {
867
- return t.current;
868
- } }), []);
869
- }
870
- //#endregion
871
- //#region node_modules/@react-hookz/web/dist/useUnmountEffect/index.js
872
- function Be(e) {
873
- let t = ze(e);
874
- i(() => () => {
875
- t.current();
876
- }, []);
877
- }
878
- //#endregion
879
- //#region node_modules/@react-hookz/web/dist/useDebouncedCallback/index.js
880
- function Ve(e, t, n, r = 0) {
881
- let s = o(void 0), c = o(void 0), l = o(e), u = o(void 0), d = () => {
882
- s.current &&= (clearTimeout(s.current), void 0), c.current &&= (clearTimeout(c.current), void 0);
883
- };
884
- return Be(d), i(() => {
885
- l.current = e;
886
- }, t), a(() => {
887
- let t = () => {
888
- if (d(), !u.current) return;
889
- let e = u.current;
890
- u.current = void 0, l.current.apply(e.this, e.args);
891
- }, i = function(...e) {
892
- s.current && clearTimeout(s.current), u.current = {
893
- args: e,
894
- this: this
895
- }, s.current = setTimeout(t, n), r > 0 && !c.current && (c.current = setTimeout(t, r));
896
- };
897
- return Object.defineProperties(i, {
898
- length: { value: e.length },
899
- name: { value: `${e.name || "anonymous"}__debounced__${n}` }
900
- }), i;
901
- }, [
902
- n,
903
- r,
904
- ...t
905
- ]);
906
- }
907
- //#endregion
908
- //#region node_modules/@react-hookz/web/dist/util/const.js
909
- var He = typeof globalThis < "u" && typeof navigator < "u" && typeof document < "u";
910
- //#endregion
911
- //#region node_modules/@react-hookz/web/dist/util/misc.js
912
- function Ue(e, ...t) {
913
- e?.addEventListener(...t);
914
- }
915
- function We(e, ...t) {
916
- e?.removeEventListener(...t);
917
- }
918
- var Ge = (e, t) => Object.hasOwn(e, t);
919
- //#endregion
920
- //#region node_modules/@react-hookz/web/dist/useDebouncedEffect/index.js
921
- function Ke(e, t, n, r = 0) {
922
- i(Ve(e, t, n, r), t);
923
- }
924
- //#endregion
925
- //#region node_modules/@react-hookz/web/dist/useIsMounted/index.js
926
- function qe(e = !1) {
927
- let t = o(e), r = n(() => t.current, []);
928
- return i(() => (t.current = !0, () => {
929
- t.current = !1;
930
- }), []), r;
931
- }
932
- //#endregion
933
- //#region node_modules/@react-hookz/web/dist/useResizeObserver/index.js
934
- var Je = /* @__PURE__ */ new Map();
935
- function Ye(e) {
936
- if (!He) return;
937
- let t = Je.get(e);
938
- if (t) return t;
939
- let n = /* @__PURE__ */ new Map(), r = new ResizeObserver((e) => {
940
- for (let t of e) {
941
- let e = n.get(t.target);
942
- if (e !== void 0 && e.size !== 0) for (let n of e) setTimeout(() => {
943
- n(t);
944
- }, 0);
945
- }
946
- }), i = {
947
- observer: r,
948
- subscribe(t, i) {
949
- let a = n.get(t);
950
- a || (a = /* @__PURE__ */ new Set(), n.set(t, a), r.observe(t, { box: e })), a.add(i);
951
- },
952
- unsubscribe(e, t) {
953
- let i = n.get(e);
954
- i && (i.delete(t), i.size === 0 && (n.delete(e), r.unobserve(e)));
955
- }
956
- };
957
- return Je.set(e, i), i;
958
- }
959
- function Xe(e, t, n = !0, r = "content-box") {
960
- let a = n && Ye(r), o = ze(t), s = e && "current" in e ? e.current : e;
961
- i(() => {
962
- let t = e && "current" in e ? e.current : e;
963
- if (a === !1 || a === void 0 || t == null) return;
964
- let n = !0, r = (...e) => {
965
- n && o.current(...e);
966
- };
967
- return a.subscribe(t, r), () => {
968
- n = !1, a.unsubscribe(t, r);
969
- };
970
- }, [s, a]);
971
- }
972
- //#endregion
973
- //#region node_modules/@react-hookz/web/dist/useEventListener/index.js
974
- function H(e, ...t) {
975
- let n = qe(), r = ze(t[1]), o = a(() => function(...e) {
976
- n() && (typeof r.current == "function" ? r.current.apply(this, e) : typeof r.current.handleEvent == "function" && r.current.handleEvent.apply(this, e));
977
- }, []);
978
- i(() => {
979
- let n = Ze(e) ? e.current : e;
980
- if (!n) return;
981
- let r = t.slice(2);
982
- return Ue(n, t[0], o, ...r), () => {
983
- We(n, t[0], o, ...r);
984
- };
985
- }, [e, t[0]]);
986
- }
987
- function Ze(e) {
988
- return typeof e == "object" && !!e && Ge(e, "current");
989
- }
990
- //#endregion
991
- //#region src/lib/board/useDim.js
992
- var Qe = 100, $e = 1e3, et = .8, tt = !1, nt = ({ x: e, y: t, scale: n, rotate: r, itemExtent: i, boardWrapperRect: a, boardSize: o }) => {
993
- let [s, c] = [e, t], l = le([a.width / 2, a.height / 2], {
994
- translateX: s,
995
- translateY: c,
996
- scale: n,
997
- rotate: r
998
- }), u = {
999
- x: i.x + o / 2,
1000
- y: i.y + o / 2
1001
- }, d = {
1002
- x: o / 2,
1003
- y: o / 2
1004
- }, f = se(l, [u.x, u.y]), p = Math.min(a.width, a.height), m = i.radius + p / 2 / n - Qe / n;
1005
- if (f > m) {
1006
- let e = ue({
1007
- x: l[0],
1008
- y: l[1]
1009
- }, u, u, m - 1 / n)[0], [t, i] = L([-e.x, -e.y], {
1010
- translateX: a.width / 2,
1011
- translateY: a.height / 2,
1012
- scale: n,
1013
- rotate: r
1014
- });
1015
- s = t, c = i;
1016
- }
1017
- let h = se(l, [d.x, d.y]), g = o / 2 - se([0, 0], [a.width, a.height]) / n;
1018
- if (h > g) {
1019
- let e = ue({
1020
- x: l[0],
1021
- y: l[1]
1022
- }, d, d, g - 1 / n)[0];
1023
- if (e) {
1024
- let [t, i] = L([-e.x, -e.y], {
1025
- translateX: a.width / 2,
1026
- translateY: a.height / 2,
1027
- scale: n,
1028
- rotate: r
1029
- });
1030
- s = t, c = i;
1031
- }
1032
- }
1033
- return [s, c];
1034
- }, U = () => {
1035
- let [t, n, r, i, a] = V((e) => [
448
+ }, Me = 1e3, Ne = .8, I = !1, L = () => {
449
+ let [t, n, r, i, a] = F((e) => [
1036
450
  e.getBoardState,
1037
451
  e.updateBoardState,
1038
452
  e.config.itemExtent,
1039
453
  e.getConfiguration,
1040
454
  e.updateConfiguration
1041
- ]), o = e.useRef([.15, 5]), [s] = B((e) => [e.getItemList]), c = e.useCallback(() => {
455
+ ]), o = e.useRef([.15, 5]), [s] = P((e) => [e.getItemList]), c = e.useCallback(() => {
1042
456
  let { translateX: e, translateY: n, scale: r, rotate: i } = t();
1043
457
  return {
1044
458
  translateX: e,
@@ -1046,148 +460,148 @@ var Qe = 100, $e = 1e3, et = .8, tt = !1, nt = ({ x: e, y: t, scale: n, rotate:
1046
460
  scale: r,
1047
461
  rotate: i
1048
462
  };
1049
- }, [t]), l = e.useCallback((e, n) => le([e, n], t()), [t]), u = e.useCallback((e, n) => L([e, n], t()), [t]), d = e.useCallback((e, n) => {
463
+ }, [t]), l = e.useCallback((e, n) => k([e, n], t()), [t]), d = e.useCallback((e, n) => A([e, n], t()), [t]), f = e.useCallback((e, n) => {
1050
464
  let { scale: r, rotate: i } = t();
1051
- return le([e, n], {
465
+ return k([e, n], {
1052
466
  translateX: 0,
1053
467
  translateY: 0,
1054
468
  rotate: i,
1055
469
  scale: r
1056
470
  });
1057
- }, [t]), f = e.useCallback((e) => e > o.current[1] ? o.current[1] : e < o.current[0] ? o.current[0] : e, []), p = e.useCallback((e) => {
1058
- let { itemExtent: r, boardWrapperRect: a, boardSize: o } = i(), s = t(), { translateX: c, translateY: l, scale: u, rotate: d } = {
1059
- ...s,
1060
- ...e(s)
471
+ }, [t]), p = e.useCallback((e) => e > o.current[1] ? o.current[1] : e < o.current[0] ? o.current[0] : e, []), m = e.useCallback((e) => {
472
+ let r = t(), { translateX: i, translateY: a, scale: o, rotate: s } = {
473
+ ...r,
474
+ ...e(r)
1061
475
  };
1062
- tt && console.log("New expected values: ", c, l, u, d);
1063
- let p = f(u), [m, h] = [c, l];
1064
- (c !== s.translateX || l !== s.translateY) && ([m, h] = nt({
1065
- x: c,
1066
- y: l,
1067
- scale: p,
1068
- rotate: d,
1069
- itemExtent: r,
1070
- boardWrapperRect: a,
1071
- boardSize: o
1072
- })), tt && console.log("New fixed values: ", m, h, p, d), n({
1073
- translateX: isNaN(m) ? 0 : m,
1074
- translateY: isNaN(h) ? 0 : h,
1075
- scale: isNaN(p) ? f(1) : p,
1076
- rotate: isNaN(d) ? 0 : d
476
+ I && console.log("New expected values: ", i, a, o, s);
477
+ let c = p(o), l = i, u = a;
478
+ I && console.log("New fixed values: ", l, u, c, s), n({
479
+ translateX: Number.isFinite(l) ? l : r.translateX,
480
+ translateY: Number.isFinite(u) ? u : r.translateY,
481
+ scale: Number.isFinite(c) ? c : p(1),
482
+ rotate: Number.isFinite(s) ? s : r.rotate
1077
483
  });
1078
484
  }, [
1079
- f,
485
+ p,
1080
486
  t,
1081
- i,
1082
487
  n
1083
- ]), m = e.useCallback((e) => {
488
+ ]), h = e.useCallback((e) => {
1084
489
  let t = (t) => ({
1085
490
  ...t,
1086
491
  ...e
1087
492
  });
1088
- typeof e == "function" && (t = e), p((e) => ({
493
+ typeof e == "function" && (t = e), m((e) => ({
1089
494
  ...e,
1090
495
  ...t({
1091
496
  translateX: e.translateX,
1092
497
  translateY: e.translateY
1093
498
  })
1094
499
  }));
1095
- }, [p]), h = e.useCallback(({ to: e, factor: n }) => {
500
+ }, [m]), g = e.useCallback(({ to: e, factor: n }) => {
1096
501
  let { boardWrapperRect: r } = i(), a = e;
1097
502
  a ||= {
1098
503
  x: r.left + r.width / 2,
1099
504
  y: r.top + r.height / 2
1100
505
  };
1101
- let o = t(), s = f(o.scale * n), c = a.x - r.left, l = a.y - r.top, u = c - (c - o.translateX) * s / o.scale, d = l - (l - o.translateY) * s / o.scale;
1102
- p((e) => ({
506
+ let o = t(), s = p(o.scale * n), c = a.x - r.left, l = a.y - r.top, u = c - (c - o.translateX) * s / o.scale, d = l - (l - o.translateY) * s / o.scale;
507
+ m((e) => ({
1103
508
  ...e,
1104
509
  translateX: u,
1105
510
  translateY: d,
1106
511
  scale: s
1107
512
  }));
1108
513
  }, [
1109
- f,
514
+ p,
1110
515
  t,
1111
516
  i,
1112
- p
1113
- ]), g = e.useCallback(({ x: e, y: n, radius: r }) => {
1114
- let { rotate: a } = t(), { boardWrapperRect: o, boardSize: s } = i(), [c, l, u] = [
517
+ m
518
+ ]), _ = e.useCallback(({ x: e, y: n, radius: r }) => {
519
+ let { rotate: a } = t(), { boardWrapperRect: o } = i(), [s, c, l] = [
1115
520
  e || 0,
1116
521
  n || 0,
1117
522
  r || 2e3
1118
- ], d = o.width / (u * 2), m = o.height / (u * 2), h = f(Math.min(d, m) * et), [g, _] = L([-s / 2 - c, -s / 2 - l], {
523
+ ], u = o.width / (l * 2), d = o.height / (l * 2), f = p(Math.min(u, d) * Ne), [h, g] = A([-s, -c], {
1119
524
  translateX: o.width / 2,
1120
525
  translateY: o.height / 2,
1121
- scale: h,
526
+ scale: f,
1122
527
  rotate: a
1123
528
  });
1124
- p((e) => ({
529
+ m((e) => ({
1125
530
  ...e,
1126
- translateX: g,
1127
- translateY: _,
1128
- scale: h
531
+ translateX: h,
532
+ translateY: g,
533
+ scale: f
1129
534
  }));
1130
535
  }, [
1131
- f,
536
+ p,
1132
537
  t,
1133
538
  i,
1134
- p
1135
- ]), _ = e.useCallback(() => {
1136
- let { boardWrapperRect: e, boardSize: t } = i(), [n, r] = l(e.width / 2, e.height / 2);
539
+ m
540
+ ]), v = e.useCallback(() => {
541
+ let { boardWrapperRect: e } = i(), [t, n] = l(e.width / 2, e.height / 2);
1137
542
  return {
1138
- x: n - t / 2,
1139
- y: r - t / 2
543
+ x: t,
544
+ y: n
1140
545
  };
1141
- }, [l, i]), v = e.useCallback(() => {
1142
- let e = s(), { boardSize: t, uid: n } = i(), r = e.reduce((e, t) => {
1143
- let r = R(n, t.id);
1144
- return r && (e.left = Math.min(t.x, e.left), e.top = Math.min(t.y, e.top), e.right = Math.max(t.x + r.offsetWidth, e.right), e.bottom = Math.max(t.y + r.offsetHeight, e.bottom)), e;
546
+ }, [l, i]), y = e.useCallback(() => {
547
+ let e = s(), { uid: t } = i(), n = e.reduce((e, n) => {
548
+ let r = M(t, n.id);
549
+ return r && (e.left = Math.min(n.x, e.left), e.top = Math.min(n.y, e.top), e.right = Math.max(n.x + r.offsetWidth, e.right), e.bottom = Math.max(n.y + r.offsetHeight, e.bottom)), e;
1145
550
  }, {
1146
- left: t / 2,
1147
- top: t / 2,
1148
- right: -t / 2,
1149
- bottom: -t / 2
1150
- }), o = {
1151
- x: (r.right + r.left) / 2,
1152
- y: (r.bottom + r.top) / 2
551
+ left: Infinity,
552
+ top: Infinity,
553
+ right: -Infinity,
554
+ bottom: -Infinity
555
+ });
556
+ if (!Number.isFinite(n.left)) {
557
+ a({ itemExtent: {
558
+ x: 0,
559
+ y: 0,
560
+ radius: Me
561
+ } });
562
+ return;
563
+ }
564
+ let r = {
565
+ x: (n.right + n.left) / 2,
566
+ y: (n.bottom + n.top) / 2
1153
567
  };
1154
- o.radius = Math.max(se([o.x, o.y], [r.left, r.top]), $e), a({ itemExtent: o });
568
+ r.radius = Math.max(re([r.x, r.y], [n.left, n.top]), Me), a({ itemExtent: r });
1155
569
  }, [
1156
570
  i,
1157
571
  s,
1158
572
  a
1159
- ]), y = e.useCallback((e) => {
573
+ ]), b = e.useCallback((e) => {
1160
574
  let t = () => e;
1161
- typeof e == "function" && (t = e), p((e) => ({
575
+ typeof e == "function" && (t = e), m((e) => ({
1162
576
  ...e,
1163
577
  rotate: t(e.rotate)
1164
- })), v(), g(r);
578
+ })), y(), _(r);
1165
579
  }, [
1166
580
  r,
1167
- p,
1168
- v,
1169
- g
1170
- ]), b = Ve(() => v(), [v], 200);
581
+ m,
582
+ y,
583
+ _
584
+ ]), x = u(() => y(), [y], 200);
1171
585
  return e.useEffect(() => {
1172
- window.debugUpdateExtent = () => v(), window.debugDisplayExtent = () => console.log(i().itemExtent), window.debugSetDebug = () => {
1173
- tt = !0;
586
+ window.debugUpdateExtent = () => y(), window.debugDisplayExtent = () => console.log(i().itemExtent), window.debugSetDebug = () => {
587
+ I = !0;
1174
588
  };
1175
- }, [i, v]), {
1176
- setDim: p,
1177
- rotateBoard: y,
1178
- moveBoard: m,
589
+ }, [i, y]), {
590
+ setDim: m,
591
+ rotateBoard: b,
592
+ moveBoard: h,
1179
593
  getDim: c,
1180
- zoomTo: h,
1181
- zoomToCenter: h,
1182
- zoomToExtent: g,
1183
- getCenter: _,
1184
- updateItemExtent: b,
1185
- vectorFromWrapperToBoard: d,
594
+ zoomTo: g,
595
+ zoomToCenter: g,
596
+ zoomToExtent: _,
597
+ getCenter: v,
598
+ updateItemExtent: x,
599
+ vectorFromWrapperToBoard: f,
1186
600
  fromWrapperToBoard: l,
1187
- fromBoardToWrapper: u
601
+ fromBoardToWrapper: d
1188
602
  };
1189
- }, rt = (t) => {
1190
- let [n, r, i] = V(({ register: e, unregister: t, callInteractions: n }) => [
603
+ }, R = (t) => {
604
+ let [n, r, i] = F(({ register: e, unregister: t, callInteractions: n }) => [
1191
605
  e,
1192
606
  t,
1193
607
  n
@@ -1204,13 +618,13 @@ var Qe = 100, $e = 1e3, et = .8, tt = !1, nt = ({ x: e, y: t, scale: n, rotate:
1204
618
  i(t, e);
1205
619
  }, [i, t])
1206
620
  };
1207
- }, W = () => {
1208
- let { call: t } = rt("place"), { call: n } = rt("delete"), { getCenter: r, updateItemExtent: i } = U(), [a, o, s, c] = V((e) => [
621
+ }, z = () => {
622
+ let { call: t } = R("place"), { call: n } = R("delete"), { getCenter: r, updateItemExtent: i } = L(), [a, o, s, c] = F((e) => [
1209
623
  e.clear,
1210
624
  e.reverse,
1211
625
  e.unselect,
1212
626
  e.getConfiguration
1213
- ]), { getItems: l, getItemIds: u, setItemIds: d, updateItems: f, moveItems: p, removeItemsById: m, getItemList: h, insertItems: g, setItemList: _ } = B(({ getItems: e, getItemIds: t, setItemIds: n, updateItems: r, moveItems: i, removeItemsById: a, getItemList: o, insertItems: s, setItemList: c }) => ({
627
+ ]), { getItems: l, getItemIds: u, setItemIds: d, updateItems: f, moveItems: p, removeItemsById: m, getItemList: h, insertItems: g, setItemList: _ } = P(({ getItems: e, getItemIds: t, setItemIds: n, updateItems: r, moveItems: i, removeItemsById: a, getItemList: o, insertItems: s, setItemList: c }) => ({
1214
628
  getItems: e,
1215
629
  getItemIds: t,
1216
630
  setItemIds: n,
@@ -1244,7 +658,7 @@ var Qe = 100, $e = 1e3, et = .8, tt = !1, nt = ({ x: e, y: t, scale: n, rotate:
1244
658
  ]), b = e.useCallback((e, t, n = !1) => {
1245
659
  v([e], t, n);
1246
660
  }, [v]), x = e.useCallback((e, t) => {
1247
- p(ge(l(), u(), e), t);
661
+ p(le(l(), u(), e), t);
1248
662
  }, [
1249
663
  u,
1250
664
  l,
@@ -1255,7 +669,7 @@ var Qe = 100, $e = 1e3, et = .8, tt = !1, nt = ({ x: e, y: t, scale: n, rotate:
1255
669
  }, [u, d]), C = e.useCallback((e, { type: t, size: n } = {}) => {
1256
670
  let { uid: r } = c();
1257
671
  v(e, (e) => {
1258
- let i = R(r, e.id);
672
+ let i = M(r, e.id);
1259
673
  if (!i) return;
1260
674
  let a = {
1261
675
  type: t || "grid",
@@ -1266,7 +680,7 @@ var Qe = 100, $e = 1e3, et = .8, tt = !1, nt = ({ x: e, y: t, scale: n, rotate:
1266
680
  },
1267
681
  ...e.grid
1268
682
  };
1269
- return _e({
683
+ return ue({
1270
684
  x: e.x,
1271
685
  y: e.y,
1272
686
  width: i.clientWidth,
@@ -1274,7 +688,7 @@ var Qe = 100, $e = 1e3, et = .8, tt = !1, nt = ({ x: e, y: t, scale: n, rotate:
1274
688
  }, a);
1275
689
  }, !0);
1276
690
  }, [c, v]), w = e.useCallback((e, n) => {
1277
- let r = ge(l(), u(), e);
691
+ let r = le(l(), u(), e);
1278
692
  S(r), v(r, { moving: !1 }, !0), C(r, n), t(e), i();
1279
693
  }, [
1280
694
  v,
@@ -1284,16 +698,16 @@ var Qe = 100, $e = 1e3, et = .8, tt = !1, nt = ({ x: e, y: t, scale: n, rotate:
1284
698
  S,
1285
699
  C,
1286
700
  i
1287
- ]), T = e.useCallback((e) => {
701
+ ]), ee = e.useCallback((e) => {
1288
702
  d(e);
1289
- }, [d]), E = e.useCallback((e) => {
703
+ }, [d]), T = e.useCallback((e) => {
1290
704
  let t = u(), n = t.filter((t) => e.includes(t)), r = t.map((t) => e.includes(t) ? n.pop() : t);
1291
705
  d(r), o();
1292
706
  }, [
1293
707
  u,
1294
708
  o,
1295
709
  d
1296
- ]), D = e.useCallback((e, t) => {
710
+ ]), te = e.useCallback((e, t) => {
1297
711
  let n = l(), r = Object.fromEntries(t.map((t, r) => {
1298
712
  let i = n[e[r]];
1299
713
  return [t, {
@@ -1309,8 +723,8 @@ var Qe = 100, $e = 1e3, et = .8, tt = !1, nt = ({ x: e, y: t, scale: n, rotate:
1309
723
  v,
1310
724
  u,
1311
725
  d
1312
- ]), O = e.useCallback((e, t) => {
1313
- let n = r(), i = e.map((e, t) => !e.x || !e.y ? {
726
+ ]), E = e.useCallback((e, t) => {
727
+ let n = r(), i = e.map((e, t) => e.x === void 0 || e.x === null || e.y === void 0 || e.y === null ? {
1314
728
  ...e,
1315
729
  x: n.x + 2 * t,
1316
730
  y: n.y + 2 * t
@@ -1322,58 +736,58 @@ var Qe = 100, $e = 1e3, et = .8, tt = !1, nt = ({ x: e, y: t, scale: n, rotate:
1322
736
  r,
1323
737
  g,
1324
738
  w
1325
- ]), ee = e.useCallback((e, t) => {
1326
- O([e], t);
1327
- }, [O]), te = e.useCallback((e) => {
739
+ ]), D = e.useCallback((e, t) => {
740
+ E([e], t);
741
+ }, [E]), re = e.useCallback((e) => {
1328
742
  s(e), m(e), n(e);
1329
743
  }, [
1330
744
  s,
1331
745
  m,
1332
746
  n
1333
- ]), k = e.useCallback((e) => {
747
+ ]), ie = e.useCallback((e) => {
1334
748
  let t = l();
1335
749
  return e.map((e) => t[e]);
1336
750
  }, [l]);
1337
751
  return {
1338
752
  putItemsOnTop: S,
1339
753
  batchUpdateItems: v,
1340
- updateItemOrder: T,
754
+ updateItemOrder: ee,
1341
755
  moveItems: x,
1342
756
  placeItems: w,
1343
757
  updateItem: b,
1344
- swapItems: D,
1345
- reverseItemsOrder: E,
758
+ swapItems: te,
759
+ reverseItemsOrder: T,
1346
760
  setItemList: y,
1347
- pushItem: ee,
1348
- pushItems: O,
1349
- removeItems: te,
761
+ pushItem: D,
762
+ pushItems: E,
763
+ removeItems: re,
1350
764
  getItemList: h,
1351
765
  findElementUnderPointer: e.useCallback(({ target: e, clientX: t, clientY: n }, { returnLocked: r = !1, passLocked: i = !1 } = {}) => {
1352
766
  if (["INPUT", "TEXTAREA"].includes(e.tagName)) return null;
1353
- let a = I(e, "item");
767
+ let a = ne(e, "item");
1354
768
  if (a) {
1355
- if (F(a, "selected")) return a;
1356
- if (!i && F(a, "locked") && !F(e, "passthrough")) return r ? a : null;
1357
- if (F(e, "passthrough")) {
769
+ if (O(a, "selected")) return a;
770
+ if (!i && O(a, "locked") && !O(e, "passthrough")) return r ? a : null;
771
+ if (O(e, "passthrough")) {
1358
772
  let e = u(), { uid: r } = c(), o = e.reduce((e, i) => {
1359
- let a = R(r, i), o = a.getBoundingClientRect();
1360
- return de({
773
+ let a = M(r, i), o = a.getBoundingClientRect();
774
+ return j({
1361
775
  x: t,
1362
776
  y: n
1363
777
  }, o) && e.unshift(a), e;
1364
778
  }, []);
1365
779
  for (let e = 0; e < o.length; e += 1) {
1366
780
  let t = o[e];
1367
- if (t !== a && (i || !F(t, "locked"))) return t;
781
+ if (t !== a && (i || !O(t, "locked"))) return t;
1368
782
  }
1369
783
  return null;
1370
784
  }
1371
785
  }
1372
786
  return a;
1373
787
  }, [c, u]),
1374
- getItems: k
788
+ getItems: ie
1375
789
  };
1376
- }, it = /* @__PURE__ */ h((/* @__PURE__ */ p(((e, t) => {
790
+ }, Pe = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1377
791
  t.exports = function e(t, n) {
1378
792
  if (t === n) return !0;
1379
793
  if (t && n && typeof t == "object" && typeof n == "object") {
@@ -1413,17 +827,17 @@ var Qe = 100, $e = 1e3, et = .8, tt = !1, nt = ({ x: e, y: t, scale: n, rotate:
1413
827
  }
1414
828
  return t !== t && n !== n;
1415
829
  };
1416
- })))(), 1), at = (e, t) => {
830
+ })))(), 1), Fe = (e, t) => {
1417
831
  if (e.type in t) {
1418
832
  let n = t[e.type].defaultActions;
1419
833
  return typeof n == "function" ? n(e) : n;
1420
834
  }
1421
835
  return [];
1422
- }, ot = (e, t) => {
1423
- let { actions: n = at(e, t) } = e;
836
+ }, Ie = (e, t) => {
837
+ let { actions: n = Fe(e, t) } = e;
1424
838
  return n.map((e) => typeof e == "string" ? { name: e } : e);
1425
- }, st = () => {
1426
- let [t, r] = B((e) => [e.items, e.getItems]), [i, a, o] = V((e) => [
839
+ }, Le = () => {
840
+ let [t, r] = P((e) => [e.items, e.getItems]), [i, a, o] = F((e) => [
1427
841
  e.config.itemTemplates,
1428
842
  e.selection,
1429
843
  e.getSelection
@@ -1431,57 +845,57 @@ var Qe = 100, $e = 1e3, et = .8, tt = !1, nt = ({ x: e, y: t, scale: n, rotate:
1431
845
  e.useEffect(() => (l.current = !0, () => {
1432
846
  l.current = !1;
1433
847
  }), []);
1434
- let d = e.useCallback((e) => {
848
+ let f = e.useCallback((e) => {
1435
849
  let t = r();
1436
850
  if (e) return [e, e.map((e) => t[e])];
1437
851
  let n = o();
1438
852
  return [n, n.map((e) => t[e])];
1439
- }, [r, o]), f = n(() => {
1440
- let [e, t] = d();
853
+ }, [r, o]), p = n(() => {
854
+ let [e, t] = f();
1441
855
  if (e.length > 0) {
1442
856
  if (!l.current) return;
1443
857
  let e = t.reduce((e, t) => {
1444
- let n = ot(t, i);
1445
- return e.filter((e) => n.some((t) => (0, it.default)(e, t)));
1446
- }, ot(t[0], i));
858
+ let n = Ie(t, i);
859
+ return e.filter((e) => n.some((t) => (0, Pe.default)(e, t)));
860
+ }, Ie(t[0], i));
1447
861
  u(() => {
1448
862
  c(e);
1449
863
  });
1450
864
  } else u(() => {
1451
865
  c([]);
1452
866
  });
1453
- }, [d, i]);
1454
- return Ke(() => f(), [
867
+ }, [f, i]);
868
+ return d(() => p(), [
1455
869
  t,
1456
870
  a,
1457
- f
871
+ p
1458
872
  ], 100), { availableActions: s };
1459
- }, ct = () => {
1460
- let [e] = V((e) => [e.selectionBox]);
873
+ }, Re = () => {
874
+ let [e] = F((e) => [e.selectionBox]);
1461
875
  return e;
1462
- }, lt = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict", G = (e = 21) => {
876
+ }, ze = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict", B = (e = 21) => {
1463
877
  let t = "", n = crypto.getRandomValues(new Uint8Array(e |= 0));
1464
- for (; e--;) t += lt[n[e] & 63];
878
+ for (; e--;) t += ze[n[e] & 63];
1465
879
  return t;
1466
- }, ut = e.createContext(), dt = (e) => {
880
+ }, Be = e.createContext(), Ve = (e) => {
1467
881
  localStorage.setItem("user", JSON.stringify(e));
1468
- }, ft = () => {
882
+ }, He = () => {
1469
883
  if (localStorage.user) {
1470
884
  let e = {
1471
885
  name: "Player",
1472
- color: ye(),
1473
- uid: G(),
886
+ color: fe(),
887
+ uid: B(),
1474
888
  ...JSON.parse(localStorage.user)
1475
889
  };
1476
- return dt(e), e;
890
+ return Ve(e), e;
1477
891
  }
1478
892
  let e = {
1479
893
  name: "Player",
1480
- color: ye(),
1481
- uid: G()
894
+ color: fe(),
895
+ uid: B()
1482
896
  };
1483
- return dt(e), e;
1484
- }, pt = (e) => (t, n) => ({
897
+ return Ve(e), e;
898
+ }, Ue = (e) => (t, n) => ({
1485
899
  isSpaceMaster: !1,
1486
900
  users: {},
1487
901
  getUser: () => n().users[e],
@@ -1504,7 +918,7 @@ var Qe = 100, $e = 1e3, et = .8, tt = !1, nt = ({ x: e, y: t, scale: n, rotate:
1504
918
  id: r,
1505
919
  uid: t.users[r].uid
1506
920
  };
1507
- return a.id === e && dt(a), setTimeout(() => n().electSpaceMaster(), 100), { users: {
921
+ return a.id === e && Ve(a), setTimeout(() => n().electSpaceMaster(), 100), { users: {
1508
922
  ...t.users,
1509
923
  [r]: a
1510
924
  } };
@@ -1527,7 +941,7 @@ var Qe = 100, $e = 1e3, et = .8, tt = !1, nt = ({ x: e, y: t, scale: n, rotate:
1527
941
  e < i.timestamp && (i.id = t, i.timestamp = e);
1528
942
  }), t({ isSpaceMaster: i.id === e });
1529
943
  }
1530
- }), mt = (e) => ({
944
+ }), We = (e) => ({
1531
945
  cursors: {},
1532
946
  moveCursor: (t, n) => e((e) => ({ cursors: {
1533
947
  ...e.cursors,
@@ -1537,12 +951,12 @@ var Qe = 100, $e = 1e3, et = .8, tt = !1, nt = ({ x: e, y: t, scale: n, rotate:
1537
951
  let n = { ...e.cursors };
1538
952
  return delete n[t], { cursors: n };
1539
953
  })
1540
- }), ht = ({ storeName: t, children: n }) => {
1541
- let { wire: r, isMaster: i } = E("room"), [a, o] = e.useState(null), [s, c] = e.useState(!1), l = e.useRef(!1);
954
+ }), Ge = ({ storeName: t, children: n }) => {
955
+ let { wire: r, isMaster: i } = D("room"), [o, c] = e.useState(null), [l, u] = e.useState(!1), d = e.useRef(!1);
1542
956
  return e.useEffect(() => {
1543
957
  let e = !0, n = [];
1544
- if (!a && !l.current) return l.current = !0, (() => {
1545
- let n = O(be({
958
+ if (!o && !d.current) return d.current = !0, (() => {
959
+ let n = s(pe({
1546
960
  wire: r,
1547
961
  storeName: t,
1548
962
  noSync: [
@@ -1552,34 +966,34 @@ var Qe = 100, $e = 1e3, et = .8, tt = !1, nt = ({ x: e, y: t, scale: n, rotate:
1552
966
  "electSpaceMaster"
1553
967
  ]
1554
968
  }, (...e) => ({
1555
- ...pt(r.userId)(...e),
1556
- ...mt(...e)
969
+ ...Ue(r.userId)(...e),
970
+ ...We(...e)
1557
971
  }), r, t)), i = n.subscribe((t) => {
1558
- t.ready && (i(), e && o(n));
972
+ t.ready && (i(), e && c(n));
1559
973
  });
1560
974
  })(), () => {
1561
- e = !1, l.current = !1, n.forEach((e) => e());
975
+ e = !1, d.current = !1, n.forEach((e) => e());
1562
976
  };
1563
977
  }, [
1564
- a,
978
+ o,
1565
979
  t,
1566
980
  r,
1567
981
  r.userId
1568
982
  ]), e.useEffect(() => {
1569
- if (a) return a.getState().addUser({
1570
- ...ft(),
983
+ if (o) return o.getState().addUser({
984
+ ...He(),
1571
985
  id: r.userId
1572
- }), c(!0), () => {
1573
- a.getState().removeUser(r.userId);
986
+ }), u(!0), () => {
987
+ o.getState().removeUser(r.userId);
1574
988
  };
1575
989
  }, [
1576
990
  i,
1577
- a,
991
+ o,
1578
992
  r
1579
993
  ]), e.useEffect(() => {
1580
- if (a) {
994
+ if (o) {
1581
995
  let e = r.subscribe("userLeave", (e) => {
1582
- a.getState().removeUser(e);
996
+ o.getState().removeUser(e);
1583
997
  });
1584
998
  return () => {
1585
999
  e();
@@ -1587,20 +1001,23 @@ var Qe = 100, $e = 1e3, et = .8, tt = !1, nt = ({ x: e, y: t, scale: n, rotate:
1587
1001
  }
1588
1002
  }, [
1589
1003
  i,
1590
- a,
1004
+ o,
1591
1005
  r
1592
1006
  ]), e.useEffect(() => {
1593
- i && a && a.getState().updateCurrentUser({ isMaster: i });
1007
+ i && o && o.getState().updateCurrentUser({ isMaster: i });
1594
1008
  }, [
1595
1009
  i,
1596
- a,
1010
+ o,
1597
1011
  r
1598
- ]), s ? /* @__PURE__ */ (0, S.jsx)(ut.Provider, {
1599
- value: a,
1012
+ ]), l ? /* @__PURE__ */ a(Be.Provider, {
1013
+ value: o,
1600
1014
  children: n
1601
1015
  }) : null;
1602
- }, K = (e) => j(r(ut), e, oe), gt = () => {
1603
- let [t, n, r, i, a] = K((e) => [
1016
+ }, V = (e) => {
1017
+ let t = r(Be);
1018
+ return c(t, e, l);
1019
+ }, Ke = () => {
1020
+ let [t, n, r, i, a] = V((e) => [
1604
1021
  e.isSpaceMaster,
1605
1022
  e.getUser(),
1606
1023
  e.users,
@@ -1618,8 +1035,8 @@ var Qe = 100, $e = 1e3, et = .8, tt = !1, nt = ({ x: e, y: t, scale: n, rotate:
1618
1035
  }, [n, o]),
1619
1036
  joinSpace: a
1620
1037
  };
1621
- }, _t = () => {
1622
- let [t, n, r] = B((e) => [
1038
+ }, qe = () => {
1039
+ let [t, n, r] = P((e) => [
1623
1040
  e.boardConfig,
1624
1041
  e.getBoardConfig,
1625
1042
  e.setBoardConfig
@@ -1630,11 +1047,11 @@ var Qe = 100, $e = 1e3, et = .8, tt = !1, nt = ({ x: e, y: t, scale: n, rotate:
1630
1047
  let i = n(), a = t(i);
1631
1048
  r(a);
1632
1049
  }, [n, r])];
1633
- }, vt = () => {
1634
- let [e] = V((e) => [e.boardState]);
1050
+ }, Je = () => {
1051
+ let [e] = F((e) => [e.boardState]);
1635
1052
  return e;
1636
- }, yt = () => {
1637
- let [e, t, n, r] = B((e) => [
1053
+ }, Ye = () => {
1054
+ let [e, t, n, r] = P((e) => [
1638
1055
  e.getSessionInfo,
1639
1056
  e.setSessionInfo,
1640
1057
  e.updateSessionInfo,
@@ -1646,7 +1063,7 @@ var Qe = 100, $e = 1e3, et = .8, tt = !1, nt = ({ x: e, y: t, scale: n, rotate:
1646
1063
  sessionInfo: r,
1647
1064
  updateSessionInfo: n
1648
1065
  };
1649
- }, bt = e.createContext(), xt = ({ user: { name: e, uid: t, color: n }, content: r }) => ({
1066
+ }, Xe = e.createContext(), Ze = ({ user: { name: e, uid: t, color: n }, content: r }) => ({
1650
1067
  type: "message",
1651
1068
  user: {
1652
1069
  name: e,
@@ -1654,9 +1071,9 @@ var Qe = 100, $e = 1e3, et = .8, tt = !1, nt = ({ x: e, y: t, scale: n, rotate:
1654
1071
  color: n
1655
1072
  },
1656
1073
  content: r,
1657
- uid: G(),
1074
+ uid: B(),
1658
1075
  timestamp: (/* @__PURE__ */ new Date()).toISOString()
1659
- }), St = (e, t) => ({
1076
+ }), Qe = (e, t) => ({
1660
1077
  messages: [],
1661
1078
  setMessages: (t) => e({ messages: t.map((e) => ({
1662
1079
  ...e,
@@ -1667,25 +1084,28 @@ var Qe = 100, $e = 1e3, et = .8, tt = !1, nt = ({ x: e, y: t, scale: n, rotate:
1667
1084
  timestamp: Date.parse(t.timestamp)
1668
1085
  }] })),
1669
1086
  sendMessage: (e, n) => {
1670
- let r = xt({
1087
+ let r = Ze({
1671
1088
  user: e,
1672
1089
  content: n
1673
1090
  });
1674
1091
  r && t().addMessage(r);
1675
1092
  }
1676
- }), Ct = ({ storeName: t, children: n, defaultValue: r = [] }) => {
1677
- let { wire: i } = E("room"), [a] = e.useState(() => O(be({
1093
+ }), $e = ({ storeName: t, children: n, defaultValue: r = [] }) => {
1094
+ let { wire: i } = D("room"), [o] = e.useState(() => s(pe({
1678
1095
  wire: i,
1679
1096
  storeName: t,
1680
1097
  defaultValue: r,
1681
1098
  noSync: ["sendMessage"]
1682
- }, (...e) => ({ ...St(...e) }))));
1683
- return /* @__PURE__ */ (0, S.jsx)(bt.Provider, {
1684
- value: a,
1099
+ }, (...e) => ({ ...Qe(...e) }))));
1100
+ return /* @__PURE__ */ a(Xe.Provider, {
1101
+ value: o,
1685
1102
  children: n
1686
1103
  });
1687
- }, wt = (e) => j(r(bt), e, oe), Tt = () => {}, Et = (t = Tt) => {
1688
- let n = K((e) => e.getUser()), [r, i, a] = wt((e) => [
1104
+ }, et = (e) => {
1105
+ let t = r(Xe);
1106
+ return c(t, e, l);
1107
+ }, tt = () => {}, nt = (t = tt) => {
1108
+ let n = V((e) => e.getUser()), [r, i, a] = et((e) => [
1689
1109
  e.messages,
1690
1110
  e.setMessages,
1691
1111
  e.sendMessage
@@ -1699,61 +1119,61 @@ var Qe = 100, $e = 1e3, et = .8, tt = !1, nt = ({ x: e, y: t, scale: n, rotate:
1699
1119
  a(n, e);
1700
1120
  }, [n, a])
1701
1121
  };
1702
- }, Dt = ({ children: t, session: n }) => {
1703
- let r = K((e) => e.joinSpace);
1122
+ }, rt = ({ children: t, session: n }) => {
1123
+ let r = V((e) => e.joinSpace);
1704
1124
  return e.useEffect(() => (r(n), () => {
1705
1125
  r(null);
1706
1126
  }), [r, n]), t;
1707
- }, Ot = ({ socket: t, room: n, session: r, items: i = [], messages: a = [], LoadingComponent: o, ...s }) => {
1708
- let [c] = e.useState(n || G()), [l] = e.useState(r || G()), [u] = e.useState(() => ({
1127
+ }, it = ({ socket: t, room: n, session: r, items: i = [], messages: o = [], LoadingComponent: s, ...c }) => {
1128
+ let [l] = e.useState(n || B()), [u] = e.useState(r || B()), [d] = e.useState(() => ({
1709
1129
  itemIds: i.map(({ id: e }) => e),
1710
1130
  items: Object.fromEntries(i.map((e) => [e.id, e]))
1711
1131
  }));
1712
- return E("room") ? /* @__PURE__ */ (0, S.jsx)(Ct, {
1713
- storeName: `${l}_messages`,
1714
- defaultValue: a,
1715
- children: /* @__PURE__ */ (0, S.jsx)(Ie, { children: /* @__PURE__ */ (0, S.jsx)(De, {
1716
- storeName: `${l}_item`,
1717
- defaultValue: u,
1718
- children: /* @__PURE__ */ (0, S.jsx)(Dt, {
1719
- ...s,
1720
- session: l
1132
+ return D("room") ? /* @__PURE__ */ a($e, {
1133
+ storeName: `${u}_messages`,
1134
+ defaultValue: o,
1135
+ children: /* @__PURE__ */ a(ke, { children: /* @__PURE__ */ a(be, {
1136
+ storeName: `${u}_item`,
1137
+ defaultValue: d,
1138
+ children: /* @__PURE__ */ a(rt, {
1139
+ ...c,
1140
+ session: u
1721
1141
  })
1722
1142
  }) })
1723
- }) : /* @__PURE__ */ (0, S.jsx)(T, {
1724
- room: c,
1143
+ }) : /* @__PURE__ */ a(E, {
1144
+ room: l,
1725
1145
  channel: "room",
1726
1146
  socket: t,
1727
- LoadingComponent: o,
1728
- children: /* @__PURE__ */ (0, S.jsx)(ht, {
1729
- storeName: `${c}_users`,
1730
- children: /* @__PURE__ */ (0, S.jsx)(Ct, {
1731
- storeName: `${l}_messages`,
1732
- defaultValue: a,
1733
- children: /* @__PURE__ */ (0, S.jsx)(Ie, { children: /* @__PURE__ */ (0, S.jsx)(De, {
1734
- storeName: `${l}_item`,
1735
- defaultValue: u,
1736
- children: /* @__PURE__ */ (0, S.jsx)(Dt, {
1737
- ...s,
1738
- session: l
1147
+ LoadingComponent: s,
1148
+ children: /* @__PURE__ */ a(Ge, {
1149
+ storeName: `${l}_users`,
1150
+ children: /* @__PURE__ */ a($e, {
1151
+ storeName: `${u}_messages`,
1152
+ defaultValue: o,
1153
+ children: /* @__PURE__ */ a(ke, { children: /* @__PURE__ */ a(be, {
1154
+ storeName: `${u}_item`,
1155
+ defaultValue: d,
1156
+ children: /* @__PURE__ */ a(rt, {
1157
+ ...c,
1158
+ session: u
1739
1159
  })
1740
1160
  }) })
1741
1161
  })
1742
1162
  })
1743
1163
  });
1744
- }, kt = ({ socket: t, room: n, children: r, LoadingComponent: i }) => {
1745
- let [a] = e.useState(n || G());
1746
- return /* @__PURE__ */ (0, S.jsx)(T, {
1747
- room: a,
1164
+ }, at = ({ socket: t, room: n, children: r, LoadingComponent: i }) => {
1165
+ let [o] = e.useState(n || B());
1166
+ return /* @__PURE__ */ a(E, {
1167
+ room: o,
1748
1168
  channel: "room",
1749
1169
  socket: t,
1750
1170
  LoadingComponent: i,
1751
- children: /* @__PURE__ */ (0, S.jsx)(ht, {
1752
- storeName: `${a}_users`,
1171
+ children: /* @__PURE__ */ a(Ge, {
1172
+ storeName: `${o}_users`,
1753
1173
  children: r
1754
1174
  })
1755
1175
  });
1756
- }, At = { data: "" }, jt = (e) => {
1176
+ }, ot = { data: "" }, st = (e) => {
1757
1177
  if (typeof window == "object") {
1758
1178
  let t = (e ? e.querySelector("#_goober") : window._goober) || Object.assign(document.createElement("style"), {
1759
1179
  innerHTML: " ",
@@ -1761,58 +1181,58 @@ var Qe = 100, $e = 1e3, et = .8, tt = !1, nt = ({ x: e, y: t, scale: n, rotate:
1761
1181
  });
1762
1182
  return t.nonce = window.__nonce__, t.parentNode || (e || document.head).appendChild(t), t.firstChild;
1763
1183
  }
1764
- return e || At;
1765
- }, Mt = /(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g, Nt = /\/\*[^]*?\*\/| +/g, Pt = /\n+/g, q = (e, t) => {
1184
+ return e || ot;
1185
+ }, ct = /(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g, lt = /\/\*[^]*?\*\/| +/g, ut = /\n+/g, H = (e, t) => {
1766
1186
  let n = "", r = "", i = "";
1767
1187
  for (let a in e) {
1768
1188
  let o = e[a];
1769
- a[0] == "@" ? a[1] == "i" ? n = a + " " + o + ";" : r += a[1] == "f" ? q(o, a) : a + "{" + q(o, a[1] == "k" ? "" : t) + "}" : typeof o == "object" ? r += q(o, t ? t.replace(/([^,])+/g, (e) => a.replace(/([^,]*:\S+\([^)]*\))|([^,])+/g, (t) => /&/.test(t) ? t.replace(/&/g, e) : e ? e + " " + t : t)) : a) : o != null && (a = a[1] == "-" ? a : a.replace(/[A-Z]/g, "-$&").toLowerCase(), i += q.p ? q.p(a, o) : a + ":" + o + ";");
1189
+ a[0] == "@" ? a[1] == "i" ? n = a + " " + o + ";" : r += a[1] == "f" ? H(o, a) : a + "{" + H(o, a[1] == "k" ? "" : t) + "}" : typeof o == "object" ? r += H(o, t ? t.replace(/([^,])+/g, (e) => a.replace(/([^,]*:\S+\([^)]*\))|([^,])+/g, (t) => /&/.test(t) ? t.replace(/&/g, e) : e ? e + " " + t : t)) : a) : o != null && (a = a[1] == "-" ? a : a.replace(/[A-Z]/g, "-$&").toLowerCase(), i += H.p ? H.p(a, o) : a + ":" + o + ";");
1770
1190
  }
1771
1191
  return n + (t && i ? t + "{" + i + "}" : i) + r;
1772
- }, J = {}, Ft = (e) => {
1192
+ }, U = {}, dt = (e) => {
1773
1193
  if (typeof e == "object") {
1774
1194
  let t = "";
1775
- for (let n in e) t += n + Ft(e[n]);
1195
+ for (let n in e) t += n + dt(e[n]);
1776
1196
  return t;
1777
1197
  }
1778
1198
  return e;
1779
- }, It = (e, t, n, r, i) => {
1780
- let a = Ft(e), o = J[a] || (J[a] = ((e) => {
1199
+ }, ft = (e, t, n, r, i) => {
1200
+ let a = dt(e), o = U[a] || (U[a] = ((e) => {
1781
1201
  let t = 0, n = 11;
1782
1202
  for (; t < e.length;) n = 101 * n + e.charCodeAt(t++) >>> 0;
1783
1203
  return "go" + n;
1784
1204
  })(a));
1785
- if (!J[o]) {
1205
+ if (!U[o]) {
1786
1206
  let t = a === e ? ((e) => {
1787
1207
  let t, n, r = [{}];
1788
- for (; t = Mt.exec(e.replace(Nt, ""));) t[4] ? r.shift() : t[3] ? (n = t[3].replace(Pt, " ").trim(), r.unshift(r[0][n] = r[0][n] || {})) : r[0][t[1]] = t[2].replace(Pt, " ").trim();
1208
+ for (; t = ct.exec(e.replace(lt, ""));) t[4] ? r.shift() : t[3] ? (n = t[3].replace(ut, " ").trim(), r.unshift(r[0][n] = r[0][n] || {})) : r[0][t[1]] = t[2].replace(ut, " ").trim();
1789
1209
  return r[0];
1790
1210
  })(e) : e;
1791
- J[o] = q(i ? { ["@keyframes " + o]: t } : t, n ? "" : "." + o);
1211
+ U[o] = H(i ? { ["@keyframes " + o]: t } : t, n ? "" : "." + o);
1792
1212
  }
1793
- let s = n && J.g;
1794
- return n && (J.g = J[o]), ((e, t, n, r) => {
1213
+ let s = n && U.g;
1214
+ return n && (U.g = U[o]), ((e, t, n, r) => {
1795
1215
  r ? t.data = t.data.replace(r, e) : t.data.indexOf(e) === -1 && (t.data = n ? e + t.data : t.data + e);
1796
- })(J[o], t, r, s), o;
1797
- }, Lt = (e, t, n) => e.reduce((e, r, i) => {
1216
+ })(U[o], t, r, s), o;
1217
+ }, pt = (e, t, n) => e.reduce((e, r, i) => {
1798
1218
  let a = t[i];
1799
1219
  if (a && a.call) {
1800
1220
  let e = a(n), t = e && e.props && e.props.className || /^go/.test(e) && e;
1801
- a = t ? "." + t : e && typeof e == "object" ? e.props ? "" : q(e, "") : !1 === e ? "" : e;
1221
+ a = t ? "." + t : e && typeof e == "object" ? e.props ? "" : H(e, "") : !1 === e ? "" : e;
1802
1222
  }
1803
1223
  return e + r + (a ?? "");
1804
1224
  }, "");
1805
- function Y(e) {
1225
+ function W(e) {
1806
1226
  let t = this || {}, n = e.call ? e(t.p) : e;
1807
- return It(n.unshift ? n.raw ? Lt(n, [].slice.call(arguments, 1), t.p) : n.reduce((e, n) => Object.assign(e, n && n.call ? n(t.p) : n), {}) : n, jt(t.target), t.g, t.o, t.k);
1227
+ return ft(n.unshift ? n.raw ? pt(n, [].slice.call(arguments, 1), t.p) : n.reduce((e, n) => Object.assign(e, n && n.call ? n(t.p) : n), {}) : n, st(t.target), t.g, t.o, t.k);
1808
1228
  }
1809
- Y.bind({ g: 1 }), Y.bind({ k: 1 });
1810
- function Rt(e, t, n, r) {
1811
- q.p = t;
1229
+ W.bind({ g: 1 }), W.bind({ k: 1 });
1230
+ function mt(e, t, n, r) {
1231
+ H.p = t;
1812
1232
  }
1813
1233
  //#endregion
1814
1234
  //#region src/lib/board/Gesture.jsx
1815
- var zt = /* @__PURE__ */ h((/* @__PURE__ */ p(((e, t) => {
1235
+ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1816
1236
  t.exports = function e(t, n) {
1817
1237
  if (t === n) return !0;
1818
1238
  if (t && n && typeof t == "object" && typeof n == "object") {
@@ -1836,62 +1256,62 @@ var zt = /* @__PURE__ */ h((/* @__PURE__ */ p(((e, t) => {
1836
1256
  }
1837
1257
  return t !== t && n !== n;
1838
1258
  };
1839
- })))(), 1), Bt = () => {
1259
+ })))(), 1), gt = () => {
1840
1260
  let e = navigator.userAgent.toLowerCase();
1841
1261
  return /mac os ?x 10/.test(e);
1842
- }, Vt = (() => {
1262
+ }, _t = (() => {
1843
1263
  let e = document.createElement("iframe");
1844
1264
  e.src = "#", document.body.appendChild(e);
1845
1265
  let t = e.contentWindow.document;
1846
1266
  t.open(), t.write("<!DOCTYPE html><html><head></head><body><span>a</span></body></html>"), t.close();
1847
1267
  let n = t.body.firstElementChild.offsetHeight;
1848
1268
  return document.body.removeChild(e), n;
1849
- })(), Ht = 800, Ut = (e, t) => e[Object.keys(e).map((e) => Number(e)).find((e) => e !== t)], Wt = ([e, t], [n, r]) => {
1269
+ })(), vt = 800, yt = (e, t) => e[Object.keys(e).map((e) => Number(e)).find((e) => e !== t)], bt = ([e, t], [n, r]) => {
1850
1270
  let i = Math.abs(e - n), a = Math.abs(t - r);
1851
1271
  return Math.hypot(i, a);
1852
- }, X = () => {}, Gt = (e) => (t) => {
1272
+ }, G = () => {}, xt = (e) => (t) => {
1853
1273
  let { event: n } = t;
1854
1274
  return n.isPropagationStopped() ? null : e(t);
1855
- }, Kt = (e) => async (...t) => {
1275
+ }, St = (e) => async (...t) => {
1856
1276
  try {
1857
1277
  await e(...t);
1858
1278
  } catch (e) {
1859
1279
  console.error(e);
1860
1280
  }
1861
- }, Z = new class {
1281
+ }, K = new class {
1862
1282
  lastPromise = Promise.resolve(!0);
1863
1283
  add(e, ...t) {
1864
1284
  return new Promise((n, r) => {
1865
- this.lastPromise = this.lastPromise.then(() => Gt(Kt(e))(...t)).then(n).catch(r);
1285
+ this.lastPromise = this.lastPromise.then(() => xt(St(e))(...t)).then(n).catch(r);
1866
1286
  });
1867
1287
  }
1868
- }(), qt = ({ children: t, onDrag: n = X, onDragStart: r = X, onDragEnd: i = X, onPan: a = X, onTap: o = X, onLongTap: s = X, onDoubleTap: c = X, onZoom: l, mainAction: u = "drag" }) => {
1869
- let d = e.useRef(null), f = e.useRef({
1288
+ }(), q = ({ children: t, onDrag: n = G, onDragStart: r = G, onDragEnd: i = G, onPan: o = G, onTap: s = G, onLongTap: c = G, onDoubleTap: l = G, onZoom: u, mainAction: d = "drag", fill: f = !1 }) => {
1289
+ let p = e.useRef(null), m = e.useRef({
1870
1290
  moving: !1,
1871
1291
  pointers: {},
1872
1292
  mainPointer: void 0
1873
- }), p = (e) => {
1874
- let { deltaX: t, deltaY: n, clientX: r, clientY: i, deltaMode: o, ctrlKey: s, altKey: c, metaKey: u, target: d } = e;
1875
- if (!(c || s && !Bt())) {
1876
- if (Bt() && !s) Z.add(a, {
1293
+ }), h = (e) => {
1294
+ let { deltaX: t, deltaY: n, clientX: r, clientY: i, deltaMode: a, ctrlKey: s, altKey: c, metaKey: l, target: d } = e;
1295
+ if (!(c || s && !gt())) {
1296
+ if (gt() && !s) K.add(o, {
1877
1297
  deltaX: -2 * t,
1878
1298
  deltaY: -2 * n,
1879
1299
  button: 1,
1880
1300
  ctrlKey: s,
1881
- metaKey: u,
1301
+ metaKey: l,
1882
1302
  target: d,
1883
1303
  event: e
1884
1304
  });
1885
1305
  else {
1886
- if (l === void 0 || !n) return;
1306
+ if (u === void 0 || !n) return;
1887
1307
  let t = n;
1888
- switch (o) {
1308
+ switch (a) {
1889
1309
  case 1:
1890
- t *= Vt;
1310
+ t *= _t;
1891
1311
  break;
1892
- case 2: t *= Ht;
1312
+ case 2: t *= vt;
1893
1313
  }
1894
- Bt() && (t *= 2), Z.add(l, {
1314
+ gt() && (t *= 2), K.add(u, {
1895
1315
  scale: t,
1896
1316
  clientX: r,
1897
1317
  clientY: i,
@@ -1899,15 +1319,15 @@ var zt = /* @__PURE__ */ h((/* @__PURE__ */ p(((e, t) => {
1899
1319
  });
1900
1320
  }
1901
1321
  }
1902
- }, m = (e) => {
1903
- let { target: t, button: n, clientX: r, clientY: i, pointerId: a, altKey: o, ctrlKey: c, metaKey: l, isPrimary: u } = e;
1904
- if (f.current.pointers[a] = {
1322
+ }, g = (e) => {
1323
+ let { target: t, button: n, clientX: r, clientY: i, pointerId: a, altKey: o, ctrlKey: s, metaKey: l, isPrimary: u } = e;
1324
+ if (m.current.pointers[a] = {
1905
1325
  clientX: r,
1906
1326
  clientY: i
1907
- }, u && (f.current.mainPointer = void 0), f.current.mainPointer !== void 0) {
1908
- if (f.current.mainPointer !== a) try {
1909
- let { clientX: e, clientY: t } = Ut(f.current.pointers, a), n = (e + r) / 2, o = (t + i) / 2, s = Wt([e, t], [r, i]);
1910
- Object.assign(f.current, {
1327
+ }, u && (m.current.mainPointer = void 0), m.current.mainPointer !== void 0) {
1328
+ if (m.current.mainPointer !== a) try {
1329
+ let { clientX: e, clientY: t } = yt(m.current.pointers, a), n = (e + r) / 2, o = (t + i) / 2, s = bt([e, t], [r, i]);
1330
+ Object.assign(m.current, {
1911
1331
  pressed: !0,
1912
1332
  moving: !1,
1913
1333
  gestureStart: !1,
@@ -1919,11 +1339,11 @@ var zt = /* @__PURE__ */ h((/* @__PURE__ */ p(((e, t) => {
1919
1339
  prevDistance: s
1920
1340
  });
1921
1341
  } catch (e) {
1922
- console.log("Error while getting other pointer. Ignoring", e), f.current.mainPointer;
1342
+ console.log("Error while getting other pointer. Ignoring", e), m.current.mainPointer;
1923
1343
  }
1924
1344
  return;
1925
1345
  }
1926
- f.current.mainPointer = a, Object.assign(f.current, {
1346
+ m.current.mainPointer = a, Object.assign(m.current, {
1927
1347
  pressed: !0,
1928
1348
  moving: !1,
1929
1349
  gestureStart: !1,
@@ -1938,11 +1358,11 @@ var zt = /* @__PURE__ */ h((/* @__PURE__ */ p(((e, t) => {
1938
1358
  target: t,
1939
1359
  timeStart: Date.now(),
1940
1360
  longTapTimeout: setTimeout(async () => {
1941
- f.current.noTap = !0, Z.add(s, {
1361
+ m.current.noTap = !0, K.add(c, {
1942
1362
  clientX: r,
1943
1363
  clientY: i,
1944
1364
  altKey: o,
1945
- ctrlKey: c,
1365
+ ctrlKey: s,
1946
1366
  metaKey: l,
1947
1367
  target: t,
1948
1368
  event: e
@@ -1954,89 +1374,89 @@ var zt = /* @__PURE__ */ h((/* @__PURE__ */ p(((e, t) => {
1954
1374
  } catch (e) {
1955
1375
  console.log("Fail to capture pointer", e);
1956
1376
  }
1957
- }, h = (e) => {
1958
- if (f.current.pressed) {
1959
- let { pointerId: t, clientX: i, clientY: o, altKey: s, shiftKey: c, ctrlKey: p, metaKey: m, buttons: h } = e;
1960
- f.current.pointers[t] = {
1377
+ }, _ = (e) => {
1378
+ if (m.current.pressed) {
1379
+ let { pointerId: t, clientX: i, clientY: a, altKey: s, shiftKey: c, ctrlKey: l, metaKey: f, buttons: h } = e;
1380
+ m.current.pointers[t] = {
1961
1381
  clientX: i,
1962
- clientY: o
1963
- }, f.current.moving = !0;
1964
- let g = Object.keys(f.current.pointers).length === 2, _, v, y = 0;
1382
+ clientY: a
1383
+ }, m.current.moving = !0;
1384
+ let g = Object.keys(m.current.pointers).length === 2, _, v, y = 0;
1965
1385
  if (g) {
1966
- let { clientX: e, clientY: n } = Ut(f.current.pointers, t);
1967
- _ = (e + i) / 2, v = (n + o) / 2, y = Wt([e, n], [i, o]);
1968
- } else _ = i, v = o;
1969
- let b = c || s || p || m || h !== 1;
1970
- u !== "drag" && (b = !b);
1386
+ let { clientX: e, clientY: n } = yt(m.current.pointers, t);
1387
+ _ = (e + i) / 2, v = (n + a) / 2, y = bt([e, n], [i, a]);
1388
+ } else _ = i, v = a;
1389
+ let b = c || s || l || f || h !== 1;
1390
+ d !== "drag" && (b = !b);
1971
1391
  let x = !b, S = b;
1972
1392
  if (x) {
1973
- f.current.gestureStart || (d.current.style.cursor = "move", f.current.gestureStart = !0, clearTimeout(f.current.longTapTimeout), Z.add(r, {
1393
+ m.current.gestureStart || (p.current.style.cursor = "move", m.current.gestureStart = !0, clearTimeout(m.current.longTapTimeout), K.add(r, {
1974
1394
  deltaX: 0,
1975
1395
  deltaY: 0,
1976
- startX: f.current.startX,
1977
- startY: f.current.startY,
1978
- clientX: f.current.startX,
1979
- clientY: f.current.startY,
1396
+ startX: m.current.startX,
1397
+ startY: m.current.startY,
1398
+ clientX: m.current.startX,
1399
+ clientY: m.current.startY,
1980
1400
  distanceX: 0,
1981
1401
  distanceY: 0,
1982
- button: f.current.currentButton,
1402
+ button: m.current.currentButton,
1983
1403
  altKey: s,
1984
1404
  shiftKey: c,
1985
- ctrlKey: p,
1986
- metaKey: m,
1987
- target: f.current.target,
1988
- event: f.current.pointerDownEvent
1405
+ ctrlKey: l,
1406
+ metaKey: f,
1407
+ target: m.current.target,
1408
+ event: m.current.pointerDownEvent
1989
1409
  }));
1990
- let t = _ - f.current.prevX, i = v - f.current.prevY, a = _ - f.current.startX, o = v - f.current.startY;
1991
- Z.add(n, {
1410
+ let t = _ - m.current.prevX, i = v - m.current.prevY, a = _ - m.current.startX, o = v - m.current.startY;
1411
+ K.add(n, {
1992
1412
  deltaX: t,
1993
1413
  deltaY: i,
1994
- startX: f.current.startX,
1995
- startY: f.current.startY,
1414
+ startX: m.current.startX,
1415
+ startY: m.current.startY,
1996
1416
  clientX: _,
1997
1417
  clientY: v,
1998
1418
  distanceX: a,
1999
1419
  distanceY: o,
2000
- button: f.current.currentButton,
1420
+ button: m.current.currentButton,
2001
1421
  altKey: s,
2002
1422
  shiftKey: c,
2003
- ctrlKey: p,
2004
- metaKey: m,
2005
- target: f.current.target,
1423
+ ctrlKey: l,
1424
+ metaKey: f,
1425
+ target: m.current.target,
2006
1426
  event: e
2007
1427
  });
2008
1428
  }
2009
1429
  if (S) {
2010
- f.current.gestureStart || (d.current.style.cursor = "move", f.current.gestureStart = !0, clearTimeout(f.current.longTapTimeout));
2011
- let t = _ - f.current.prevX, n = v - f.current.prevY, { target: r } = f.current;
2012
- if (Z.add(a, {
1430
+ m.current.gestureStart || (p.current.style.cursor = "move", m.current.gestureStart = !0, clearTimeout(m.current.longTapTimeout));
1431
+ let t = _ - m.current.prevX, n = v - m.current.prevY, { target: r } = m.current;
1432
+ if (K.add(o, {
2013
1433
  deltaX: t,
2014
1434
  deltaY: n,
2015
- button: f.current.currentButton,
1435
+ button: m.current.currentButton,
2016
1436
  altKey: s,
2017
1437
  shiftKey: c,
2018
- ctrlKey: p,
2019
- metaKey: m,
1438
+ ctrlKey: l,
1439
+ metaKey: f,
2020
1440
  target: r,
2021
1441
  event: e
2022
- }), y !== f.current.prevDistance && l) {
2023
- let t = f.current.prevDistance - y;
2024
- Math.abs(t) > 0 && (Z.add(l, {
1442
+ }), y !== m.current.prevDistance && u) {
1443
+ let t = m.current.prevDistance - y;
1444
+ Math.abs(t) > 0 && (K.add(u, {
2025
1445
  scale: t * 3,
2026
1446
  clientX: _,
2027
1447
  clientY: v,
2028
1448
  event: e
2029
- }), f.current.prevDistance = y);
1449
+ }), m.current.prevDistance = y);
2030
1450
  }
2031
1451
  }
2032
- f.current.prevX = _, f.current.prevY = v;
1452
+ m.current.prevX = _, m.current.prevY = v;
2033
1453
  }
2034
- }, g = (e) => {
2035
- let { clientX: t, clientY: n, altKey: r, shiftKey: a, ctrlKey: s, metaKey: c, target: l, pointerId: u } = e;
2036
- if (f.current.pointers[u]) {
2037
- if (delete f.current.pointers[u], f.current.mainPointer !== u) {
2038
- let { clientX: e, clientY: t } = f.current.pointers[f.current.mainPointer];
2039
- Object.assign(f.current, {
1454
+ }, v = (e) => {
1455
+ let { clientX: t, clientY: n, altKey: r, shiftKey: a, ctrlKey: o, metaKey: c, target: l, pointerId: u } = e;
1456
+ if (m.current.pointers[u]) {
1457
+ if (delete m.current.pointers[u], m.current.mainPointer !== u) {
1458
+ let { clientX: e, clientY: t } = m.current.pointers[m.current.mainPointer];
1459
+ Object.assign(m.current, {
2040
1460
  prevX: e,
2041
1461
  prevY: t,
2042
1462
  prevDistance: 0,
@@ -2044,12 +1464,12 @@ var zt = /* @__PURE__ */ h((/* @__PURE__ */ p(((e, t) => {
2044
1464
  });
2045
1465
  return;
2046
1466
  }
2047
- for (; Object.keys(f.current.pointers).length > 0;) {
2048
- f.current.mainPointer = Number(Object.keys(f.current.pointers)[0]);
1467
+ for (; Object.keys(m.current.pointers).length > 0;) {
1468
+ m.current.mainPointer = Number(Object.keys(m.current.pointers)[0]);
2049
1469
  try {
2050
- f.current.target.setPointerCapture(f.current.mainPointer);
2051
- let { clientX: e, clientY: t } = f.current.pointers[f.current.mainPointer];
2052
- Object.assign(f.current, {
1470
+ m.current.target.setPointerCapture(m.current.mainPointer);
1471
+ let { clientX: e, clientY: t } = m.current.pointers[m.current.mainPointer];
1472
+ Object.assign(m.current, {
2053
1473
  prevX: e,
2054
1474
  prevY: t,
2055
1475
  prevDistance: 0,
@@ -2057,33 +1477,33 @@ var zt = /* @__PURE__ */ h((/* @__PURE__ */ p(((e, t) => {
2057
1477
  });
2058
1478
  return;
2059
1479
  } catch (e) {
2060
- console.log("Fails to set pointer capture", e), f.current.mainPointer = void 0, delete f.current.pointers[Object.keys(f.current.pointers)[0]];
1480
+ console.log("Fails to set pointer capture", e), m.current.mainPointer = void 0, delete m.current.pointers[Object.keys(m.current.pointers)[0]];
2061
1481
  }
2062
1482
  }
2063
- if (f.current.mainPointer = void 0, f.current.pressed = !1, clearTimeout(f.current.longTapTimeout), f.current.moving) f.current.moving = !1, Z.add(i, {
2064
- deltaX: t - f.current.prevX,
2065
- deltaY: n - f.current.prevY,
2066
- startX: f.current.startX,
2067
- startY: f.current.startY,
1483
+ if (m.current.mainPointer = void 0, m.current.pressed = !1, clearTimeout(m.current.longTapTimeout), m.current.moving) m.current.moving = !1, K.add(i, {
1484
+ deltaX: t - m.current.prevX,
1485
+ deltaY: n - m.current.prevY,
1486
+ startX: m.current.startX,
1487
+ startY: m.current.startY,
2068
1488
  clientX: t,
2069
1489
  clientY: n,
2070
- distanceX: t - f.current.startX,
2071
- distanceY: n - f.current.startY,
2072
- button: f.current.currentButton,
1490
+ distanceX: t - m.current.startX,
1491
+ distanceY: n - m.current.startY,
1492
+ button: m.current.currentButton,
2073
1493
  altKey: r,
2074
1494
  shiftKey: a,
2075
- ctrlKey: s,
1495
+ ctrlKey: o,
2076
1496
  metaKey: c,
2077
1497
  event: e
2078
- }), d.current.style.cursor = "auto";
1498
+ }), p.current.style.cursor = "auto";
2079
1499
  else {
2080
1500
  let i = Date.now();
2081
- f.current.noTap ? f.current.noTap = !1 : f.current.timeStart - i < 300 && Z.add(o, {
1501
+ m.current.noTap ? m.current.noTap = !1 : m.current.timeStart - i < 300 && K.add(s, {
2082
1502
  clientX: t,
2083
1503
  clientY: n,
2084
1504
  altKey: r,
2085
1505
  shiftKey: a,
2086
- ctrlKey: s,
1506
+ ctrlKey: o,
2087
1507
  metaKey: c,
2088
1508
  target: l,
2089
1509
  event: e
@@ -2091,17 +1511,15 @@ var zt = /* @__PURE__ */ h((/* @__PURE__ */ p(((e, t) => {
2091
1511
  }
2092
1512
  }
2093
1513
  };
2094
- return /* @__PURE__ */ (0, S.jsx)("div", {
2095
- onWheel: p,
2096
- onPointerDown: m,
2097
- onPointerMove: h,
2098
- onPointerUp: g,
2099
- onPointerOut: g,
2100
- onPointerLeave: g,
2101
- onPointerCancel: g,
1514
+ return /* @__PURE__ */ a("div", {
1515
+ onWheel: h,
1516
+ onPointerDown: g,
1517
+ onPointerMove: _,
1518
+ onPointerUp: v,
1519
+ onPointerCancel: v,
2102
1520
  onDoubleClick: (e) => {
2103
1521
  let { clientX: t, clientY: n, altKey: r, shiftKey: i, ctrlKey: a, metaKey: o, target: s } = e;
2104
- Z.add(c, {
1522
+ K.add(l, {
2105
1523
  clientX: t,
2106
1524
  clientY: n,
2107
1525
  altKey: r,
@@ -2112,13 +1530,19 @@ var zt = /* @__PURE__ */ h((/* @__PURE__ */ p(((e, t) => {
2112
1530
  event: e
2113
1531
  });
2114
1532
  },
2115
- style: { touchAction: "none" },
2116
- ref: d,
1533
+ style: {
1534
+ touchAction: "none",
1535
+ ...f ? {
1536
+ position: "absolute",
1537
+ inset: 0
1538
+ } : {}
1539
+ },
1540
+ ref: p,
2117
1541
  children: t
2118
1542
  });
2119
- }, Jt = ({ onResize: e, ...t }) => {
2120
- let [n] = V((e) => [e.getBoardState]);
2121
- return /* @__PURE__ */ (0, S.jsx)(qt, {
1543
+ }, J = ({ onResize: e, ...t }) => {
1544
+ let [n] = F((e) => [e.getBoardState]);
1545
+ return /* @__PURE__ */ a(q, {
2122
1546
  onDrag: ({ deltaX: t, deltaY: r, event: i }) => {
2123
1547
  i.stopPropagation();
2124
1548
  let { scale: a } = n();
@@ -2127,38 +1551,38 @@ var zt = /* @__PURE__ */ h((/* @__PURE__ */ p(((e, t) => {
2127
1551
  height: r / a
2128
1552
  });
2129
1553
  },
2130
- children: /* @__PURE__ */ (0, S.jsx)("div", { ...t })
1554
+ children: /* @__PURE__ */ a("div", { ...t })
2131
1555
  });
2132
- }, Yt = Y`
1556
+ }, Ct = W`
2133
1557
  display: inline-block;
2134
1558
  transition: transform 150ms;
2135
1559
  user-select: none;
2136
1560
  padding: 2px;
2137
1561
  box-sizing: border-box;
2138
- `, Xt = Y`
1562
+ `, wt = W`
2139
1563
  border: 2px dashed #db5034;
2140
1564
  padding: 0px;
2141
1565
  cursor: pointer;
2142
- `, Q = Y`
1566
+ `, Y = W`
2143
1567
  position: absolute;
2144
1568
  width: 0px;
2145
1569
  height: 0px;
2146
- `, Zt = Y`
1570
+ `, Tt = W`
2147
1571
  top: 0;
2148
1572
  left: 0;
2149
- `, Qt = Y`
1573
+ `, Et = W`
2150
1574
  top: 0;
2151
1575
  right: 0;
2152
- `, $t = Y`
1576
+ `, Dt = W`
2153
1577
  bottom: 0;
2154
1578
  left: 0;
2155
- `, en = Y`
1579
+ `, Ot = W`
2156
1580
  bottom: 0;
2157
1581
  right: 0;
2158
- `, tn = Y`
1582
+ `, kt = W`
2159
1583
  top: 50%;
2160
1584
  left: 50%;
2161
- `, nn = Y`
1585
+ `, X = W`
2162
1586
  position: absolute;
2163
1587
 
2164
1588
  width: 10px;
@@ -2166,20 +1590,20 @@ var zt = /* @__PURE__ */ h((/* @__PURE__ */ p(((e, t) => {
2166
1590
  border: 2px solid #db5034;
2167
1591
  background-color: #db5034;
2168
1592
  cursor: move;
2169
- `, rn = Y`
1593
+ `, At = W`
2170
1594
  cursor: ew-resize;
2171
1595
  right: -6px;
2172
1596
  top: calc(50% - 5px);
2173
- `, an = Y`
1597
+ `, jt = W`
2174
1598
  cursor: ns-resize;
2175
1599
  bottom: -6px;
2176
1600
  left: calc(50% - 5px);
2177
- `, on = Y`
1601
+ `, Mt = W`
2178
1602
  cursor: nwse-resize;
2179
1603
  bottom: -6px;
2180
1604
  right: -6px;
2181
- `, sn = ({ onReload: e }) => /* @__PURE__ */ (0, S.jsxs)("div", {
2182
- className: `syncboard-error-item ${Y({
1605
+ `, Nt = ({ onReload: e }) => /* @__PURE__ */ o("div", {
1606
+ className: `syncboard-error-item ${W({
2183
1607
  width: "100px",
2184
1608
  display: "flex",
2185
1609
  flexDirection: "column",
@@ -2187,11 +1611,11 @@ var zt = /* @__PURE__ */ h((/* @__PURE__ */ p(((e, t) => {
2187
1611
  textAlign: "center",
2188
1612
  color: "red"
2189
1613
  })}`,
2190
- children: ["Sorry, this item seems broken.", /* @__PURE__ */ (0, S.jsx)("button", {
1614
+ children: ["Sorry, this item seems broken.", /* @__PURE__ */ a("button", {
2191
1615
  onClick: e,
2192
1616
  children: "Reload it"
2193
1617
  })]
2194
- }), cn = class extends e.Component {
1618
+ }), Pt = class extends e.Component {
2195
1619
  constructor(e) {
2196
1620
  super(e), this.state = {
2197
1621
  hasError: !1,
@@ -2209,11 +1633,11 @@ var zt = /* @__PURE__ */ h((/* @__PURE__ */ p(((e, t) => {
2209
1633
  }
2210
1634
  render() {
2211
1635
  let { ErrorComponent: e } = this.props;
2212
- return this.state.hasError ? /* @__PURE__ */ (0, S.jsx)(e, { onReload: this.onReload }) : this.props.children;
1636
+ return this.state.hasError ? /* @__PURE__ */ a(e, { onReload: this.onReload }) : this.props.children;
2213
1637
  }
2214
- }, ln = (e) => {
1638
+ }, Ft = (e) => {
2215
1639
  e.target.className = "";
2216
- }, un = ({ width: e, height: t, actualWidth: n, actualHeight: r, prevState: i, keepRatio: a }) => {
1640
+ }, It = ({ width: e, height: t, actualWidth: n, actualHeight: r, prevState: i, keepRatio: a }) => {
2217
1641
  let { width: o, height: s } = i;
2218
1642
  if ([o, s] = [parseFloat(o), parseFloat(s)], (!o || Number.isNaN(Number(o))) && (o = n), (!s || Number.isNaN(Number(s))) && (s = r), a) {
2219
1643
  let n = o / s;
@@ -2228,25 +1652,25 @@ var zt = /* @__PURE__ */ h((/* @__PURE__ */ p(((e, t) => {
2228
1652
  width: (o + e).toFixed(1),
2229
1653
  height: (s + t).toFixed(1)
2230
1654
  };
2231
- }, dn = {
1655
+ }, Lt = {
2232
1656
  w: !0,
2233
1657
  h: !0,
2234
1658
  b: !0
2235
- }, fn = t(({ setState: t, state: { type: n, rotation: r = 0, id: i, locked: a, extraClasses: o, ...s } = {}, animate: c = "hvr-pop", isSelected: l, itemMap: u, showResizeHandle: d = !0 }) => {
2236
- let f = e.useRef(null), [p] = V((e) => [e.config.uid]), { component: m = () => null, resizeDirections: h = dn, resize: g = un } = u[n], _ = e.useCallback((e, n = !1) => t(i, e, n), [t, i]);
1659
+ }, Rt = t(({ setState: t, state: { type: n, rotation: r = 0, id: s, locked: c, extraClasses: l, ...u } = {}, animate: d = "hvr-pop", isSelected: f, itemMap: p, showResizeHandle: m = !0 }) => {
1660
+ let h = e.useRef(null), [g] = F((e) => [e.config.uid]), { component: _ = () => null, resizeDirections: v = Lt, resize: y = It } = p[n], b = e.useCallback((e, n = !1) => t(s, e, n), [t, s]);
2237
1661
  e.useEffect(() => {
2238
- f.current.className = c;
2239
- }, [c]);
2240
- let v = [
1662
+ h.current.className = d;
1663
+ }, [d]);
1664
+ let x = [
2241
1665
  "item",
2242
- i,
2243
- Yt
1666
+ s,
1667
+ Ct
2244
1668
  ];
2245
- a && v.push("locked"), l && (v.push("selected"), v.push(Xt)), Array.isArray(o) && v.concat(o);
2246
- let y = v.join(" "), b = ({ width: e = 0, height: t = 0, keepRatio: n }) => {
2247
- _((r) => {
2248
- let { offsetWidth: i, offsetHeight: a } = f.current;
2249
- return g({
1669
+ c && x.push("locked"), f && (x.push("selected"), x.push(wt)), Array.isArray(l) && x.concat(l);
1670
+ let S = x.join(" "), C = ({ width: e = 0, height: t = 0, keepRatio: n }) => {
1671
+ b((r) => {
1672
+ let { offsetWidth: i, offsetHeight: a } = h.current;
1673
+ return y({
2250
1674
  prevState: r,
2251
1675
  width: e,
2252
1676
  height: t,
@@ -2255,222 +1679,225 @@ var zt = /* @__PURE__ */ h((/* @__PURE__ */ p(((e, t) => {
2255
1679
  keepRatio: n
2256
1680
  });
2257
1681
  });
2258
- }, x = ({ width: e }) => {
2259
- b({ width: e });
2260
- }, C = ({ height: e }) => {
2261
- b({ height: e });
2262
1682
  }, w = ({ width: e }) => {
2263
- b({
1683
+ C({ width: e });
1684
+ }, ee = ({ height: e }) => {
1685
+ C({ height: e });
1686
+ }, T = ({ width: e }) => {
1687
+ C({
2264
1688
  height: e,
2265
1689
  width: e,
2266
1690
  keepRatio: !0
2267
1691
  });
2268
1692
  };
2269
- return /* @__PURE__ */ (0, S.jsx)("div", {
1693
+ return /* @__PURE__ */ a("div", {
2270
1694
  style: { transform: `rotate(${r}deg` },
2271
- "data-id": i,
2272
- id: `${p}__${i}`,
2273
- className: y,
2274
- children: /* @__PURE__ */ (0, S.jsxs)("div", {
1695
+ "data-id": s,
1696
+ id: `${g}__${s}`,
1697
+ className: S,
1698
+ children: /* @__PURE__ */ o("div", {
2275
1699
  style: { display: "flex" },
2276
- ref: f,
2277
- onAnimationEnd: ln,
1700
+ ref: h,
1701
+ onAnimationEnd: Ft,
2278
1702
  onKeyDown: (e) => e.stopPropagation(),
2279
1703
  onKeyUp: (e) => e.stopPropagation(),
2280
1704
  children: [
2281
- /* @__PURE__ */ (0, S.jsx)(cn, {
2282
- itemId: i,
2283
- state: s,
2284
- ErrorComponent: u?.error?.component || sn,
2285
- children: /* @__PURE__ */ (0, S.jsx)(m, {
2286
- ...s,
2287
- id: i,
2288
- setState: _
1705
+ /* @__PURE__ */ a(Pt, {
1706
+ itemId: s,
1707
+ state: u,
1708
+ ErrorComponent: p?.error?.component || Nt,
1709
+ children: /* @__PURE__ */ a(_, {
1710
+ ...u,
1711
+ id: s,
1712
+ setState: b
2289
1713
  })
2290
1714
  }),
2291
- /* @__PURE__ */ (0, S.jsx)("div", { className: `corner ${Q} ${Zt}` }),
2292
- /* @__PURE__ */ (0, S.jsx)("div", { className: `corner ${Q} ${Qt}` }),
2293
- /* @__PURE__ */ (0, S.jsx)("div", { className: `corner ${Q} ${en}` }),
2294
- /* @__PURE__ */ (0, S.jsx)("div", { className: `corner ${Q} ${$t}` }),
2295
- /* @__PURE__ */ (0, S.jsx)("div", { className: `center ${Q} ${tn}` }),
2296
- d && /* @__PURE__ */ (0, S.jsxs)(S.Fragment, { children: [
2297
- h.b && /* @__PURE__ */ (0, S.jsx)(Jt, {
2298
- className: `${nn} ${on}`,
2299
- onResize: w
1715
+ /* @__PURE__ */ a("div", { className: `corner ${Y} ${Tt}` }),
1716
+ /* @__PURE__ */ a("div", { className: `corner ${Y} ${Et}` }),
1717
+ /* @__PURE__ */ a("div", { className: `corner ${Y} ${Ot}` }),
1718
+ /* @__PURE__ */ a("div", { className: `corner ${Y} ${Dt}` }),
1719
+ /* @__PURE__ */ a("div", { className: `center ${Y} ${kt}` }),
1720
+ m && /* @__PURE__ */ o(i, { children: [
1721
+ v.b && /* @__PURE__ */ a(J, {
1722
+ className: `${X} ${Mt}`,
1723
+ onResize: T
2300
1724
  }),
2301
- h.h && /* @__PURE__ */ (0, S.jsx)(Jt, {
2302
- className: `${nn} ${an}`,
2303
- onResize: C
1725
+ v.h && /* @__PURE__ */ a(J, {
1726
+ className: `${X} ${jt}`,
1727
+ onResize: ee
2304
1728
  }),
2305
- h.w && /* @__PURE__ */ (0, S.jsx)(Jt, {
2306
- className: `${nn} ${rn}`,
2307
- onResize: x
1729
+ v.w && /* @__PURE__ */ a(J, {
1730
+ className: `${X} ${At}`,
1731
+ onResize: w
2308
1732
  })
2309
1733
  ] })
2310
1734
  ]
2311
1735
  })
2312
1736
  });
2313
- }, ({ state: e, setState: t, isSelected: n, showResizeHandle: r }, { state: i, setState: a, isSelected: o, showResizeHandle: s }) => n === o && r === s && t === a && (0, zt.default)(e, i)), pn = (e) => e, mn = t(({ state: e = {}, getCurrentUser: t, className: n, ...r }) => {
1737
+ }, ({ state: e, setState: t, isSelected: n, showResizeHandle: r }, { state: i, setState: a, isSelected: o, showResizeHandle: s }) => n === o && r === s && t === a && (0, ht.default)(e, i)), zt = (e) => e, Bt = t(({ state: e = {}, getCurrentUser: t, className: n, ...r }) => {
2314
1738
  if (!r.itemMap[e.type]) return null;
2315
- let { stateHook: i = pn } = r.itemMap[e.type], { x: a = 0, y: o = 0, layer: s = 0, moving: c, ...l } = i(e, { currentUser: t?.() }), u = (s + 4) * 10 + 100 + (c ? 5 : 0);
2316
- return /* @__PURE__ */ (0, S.jsx)("div", {
1739
+ let { stateHook: i = zt } = r.itemMap[e.type], { x: o = 0, y: s = 0, layer: c = 0, moving: l, ...u } = i(e, { currentUser: t?.() }), d = (c + 4) * 10 + 100 + (l ? 5 : 0);
1740
+ return /* @__PURE__ */ a("div", {
2317
1741
  className: n,
2318
1742
  style: {
2319
- transform: `translate(${a}px, ${o}px)`,
2320
- zIndex: u
1743
+ transform: `translate(${o}px, ${s}px)`,
1744
+ zIndex: d
2321
1745
  },
2322
- children: /* @__PURE__ */ (0, S.jsx)(fn, {
1746
+ children: /* @__PURE__ */ a(Rt, {
2323
1747
  ...r,
2324
1748
  showResizeHandle: r.isSelected && r.showResizeHandle,
2325
- state: l
1749
+ state: u
2326
1750
  })
2327
1751
  });
2328
- }), hn = () => {
2329
- let { updateItem: e } = W(), [t, n] = B((e) => [e.itemIds, e.items]), [r, i, a, o] = V((e) => [
2330
- e.config.boardSize,
1752
+ }), Vt = () => {
1753
+ let { updateItem: e } = z(), [t, n] = P((e) => [e.itemIds, e.items]), [r, i, o] = F((e) => [
2331
1754
  e.config.showResizeHandle,
2332
1755
  e.config.itemTemplates,
2333
1756
  e.selection
2334
- ]), [s] = K((e) => [e.getUser]), c = Y({
1757
+ ]), [s] = V((e) => [e.getUser]), c = W({
2335
1758
  position: "absolute",
2336
- top: `${r / 2}px`,
2337
- left: `${r / 2}px`,
1759
+ top: 0,
1760
+ left: 0,
1761
+ pointerEvents: "auto",
2338
1762
  display: "inline-block",
2339
1763
  lineHeight: 0
2340
1764
  });
2341
- return t.map((t) => /* @__PURE__ */ (0, S.jsx)(mn, {
1765
+ return t.map((t) => /* @__PURE__ */ a(Bt, {
2342
1766
  state: n[t],
2343
1767
  setState: e,
2344
1768
  isSelected: o.includes(t),
2345
- itemMap: a,
2346
- boardSize: r,
1769
+ itemMap: i,
2347
1770
  getCurrentUser: s,
2348
- showResizeHandle: i,
1771
+ showResizeHandle: r,
2349
1772
  className: c
2350
1773
  }, t));
2351
- }, gn = Y({
1774
+ }, Ht = W({
2352
1775
  zIndex: 210,
2353
1776
  position: "absolute",
2354
1777
  backgroundColor: "hsla(0, 40%, 50%, 10%)",
2355
1778
  border: "2px solid hsl(0, 55%, 40%)"
2356
- }), _n = (e, t, n = !1) => {
1779
+ }), Ut = (e, t, n = !1) => {
2357
1780
  let r = t.getElementsByClassName("selector");
2358
1781
  if (!r.length) return [];
2359
1782
  let i = r[0];
2360
1783
  return Array.from(t.getElementsByClassName("item")).filter((t) => {
2361
- let r = e[z(t)];
2362
- return !r || !n && r.locked ? !1 : pe(t, i);
2363
- }).map((e) => z(e));
2364
- }, vn = ({ children: t, moveFirst: n }) => {
2365
- let [r, i, a, o, s, c] = V((e) => [
1784
+ let r = e[N(t)];
1785
+ return !r || !n && r.locked ? !1 : oe(t, i);
1786
+ }).map((e) => N(e));
1787
+ }, Wt = ({ children: t, moveFirst: n }) => {
1788
+ let [r, i, s, c, l, u] = F((e) => [
2366
1789
  e.getSelection,
2367
1790
  e.clear,
2368
1791
  e.setSelection,
2369
1792
  e.select,
2370
1793
  e.getConfiguration,
2371
- e.getBoardState,
2372
1794
  e.updateBoardState
2373
- ]), { findElementUnderPointer: l } = W(), [u] = B((e) => [e.getItems]), [d, f] = e.useState({}), [, p] = e.useTransition(), [m, h] = e.useState(!1), g = e.useRef(null), _ = e.useRef({ moving: !1 });
2374
- return H(document, "keydown", (e) => {
2375
- e.key === "l" && h(!0);
2376
- }), H(document, "keyup", (e) => {
2377
- e.key === "l" && h(!1);
1795
+ ]), { findElementUnderPointer: d } = z(), [p] = P((e) => [e.getItems]), [m, h] = e.useState({}), [, g] = e.useTransition(), [_, v] = e.useState(!1), y = e.useRef(null), b = e.useRef({ moving: !1 });
1796
+ return f(document, "keydown", (e) => {
1797
+ e.key === "l" && v(!0);
1798
+ }), f(document, "keyup", (e) => {
1799
+ e.key === "l" && v(!1);
2378
1800
  }), e.useEffect(() => (i(), () => {
2379
1801
  i();
2380
1802
  }), [i]), e.useEffect(() => {
2381
- if (_.current.moving) {
2382
- let e = u(), { boardWrapper: t } = s(), n = _n(e, t, m);
2383
- p(() => {
2384
- a(n);
1803
+ if (b.current.moving) {
1804
+ let e = p(), { boardWrapper: t } = l(), n = Ut(e, t, _);
1805
+ g(() => {
1806
+ s(n);
2385
1807
  });
2386
1808
  }
2387
1809
  }, [
1810
+ l,
1811
+ p,
1812
+ m,
2388
1813
  s,
2389
- u,
2390
- d,
2391
- a,
2392
- m
2393
- ]), /* @__PURE__ */ (0, S.jsx)(qt, {
1814
+ _
1815
+ ]), /* @__PURE__ */ a(q, {
1816
+ fill: !0,
2394
1817
  onDragStart: async (e) => {
2395
- await l(e) || (_.current.moving = !0, p(() => {
2396
- c({ selecting: !0 });
2397
- }), g.current.style.cursor = "crosshair");
1818
+ await d(e) || (b.current.moving = !0, g(() => {
1819
+ u({ selecting: !0 });
1820
+ }), y.current.style.cursor = "crosshair");
2398
1821
  },
2399
1822
  onDrag: ({ distanceY: e, distanceX: t, startX: n, startY: r }) => {
2400
- if (_.current.moving) {
2401
- let { top: i, left: a } = g.current.getBoundingClientRect(), o = n - a, s = r - i;
2402
- t > 0 ? (_.current.left = o, _.current.width = t) : (_.current.left = o + t, _.current.width = -t), e > 0 ? (_.current.top = s, _.current.height = e) : (_.current.top = s + e, _.current.height = -e), f({
2403
- ..._.current,
1823
+ if (b.current.moving) {
1824
+ let { top: i, left: a } = y.current.getBoundingClientRect(), o = n - a, s = r - i;
1825
+ t > 0 ? (b.current.left = o, b.current.width = t) : (b.current.left = o + t, b.current.width = -t), e > 0 ? (b.current.top = s, b.current.height = e) : (b.current.top = s + e, b.current.height = -e), h({
1826
+ ...b.current,
2404
1827
  moving: !0
2405
1828
  });
2406
1829
  }
2407
1830
  },
2408
1831
  onDragEnd: () => {
2409
- _.current.moving && (p(() => {
2410
- c({ selecting: !1 });
2411
- }), _.current.moving = !1, f({ moving: !1 }), g.current.style.cursor = "auto");
1832
+ b.current.moving && (g(() => {
1833
+ u({ selecting: !1 });
1834
+ }), b.current.moving = !1, h({ moving: !1 }), y.current.style.cursor = "auto");
2412
1835
  },
2413
1836
  onTap: (e) => {
2414
- let { target: t, ctrlKey: n, metaKey: s } = e, c = l(e);
2415
- if (!c && I(t, "board")) i();
1837
+ let { ctrlKey: t, metaKey: n } = e, a = d(e);
1838
+ if (!a) i();
2416
1839
  else {
2417
- let e = z(c);
1840
+ let e = N(a);
2418
1841
  if (!e) {
2419
1842
  i();
2420
1843
  return;
2421
1844
  }
2422
- let t = r();
2423
- c && !t.includes(e) && (n || s ? o([e]) : a([e]));
1845
+ let o = r();
1846
+ a && !o.includes(e) && (t || n ? c([e]) : s([e]));
2424
1847
  }
2425
1848
  },
2426
1849
  onLongTap: ({ target: e }) => {
2427
- let t = I(e, "item");
1850
+ let t = ne(e, "item");
2428
1851
  if (t) {
2429
- let e = z(t);
2430
- a([e]);
1852
+ let e = N(t);
1853
+ s([e]);
2431
1854
  }
2432
1855
  },
2433
1856
  mainAction: n ? "pan" : "drag",
2434
- children: /* @__PURE__ */ (0, S.jsxs)("div", {
2435
- ref: g,
2436
- children: [d.moving && /* @__PURE__ */ (0, S.jsx)("div", {
1857
+ children: /* @__PURE__ */ o("div", {
1858
+ ref: y,
1859
+ style: {
1860
+ position: "absolute",
1861
+ inset: 0
1862
+ },
1863
+ children: [m.moving && /* @__PURE__ */ a("div", {
2437
1864
  style: {
2438
- transform: `translate(${d.left}px, ${d.top}px)`,
2439
- height: `${d.height}px`,
2440
- width: `${d.width}px`
1865
+ transform: `translate(${m.left}px, ${m.top}px)`,
1866
+ height: `${m.height}px`,
1867
+ width: `${m.width}px`
2441
1868
  },
2442
- className: `selector ${gn}`
1869
+ className: `selector ${Ht}`
2443
1870
  }), t]
2444
1871
  })
2445
1872
  });
2446
- }, yn = ({ children: t }) => {
2447
- let { moveItems: n, placeItems: r, findElementUnderPointer: i } = W(), { vectorFromWrapperToBoard: a } = U(), [o, s, c, l, u] = V((e) => [
1873
+ }, Gt = ({ children: t }) => {
1874
+ let { moveItems: n, placeItems: r, findElementUnderPointer: i } = z(), { vectorFromWrapperToBoard: o } = L(), [s, c, l, u, d] = F((e) => [
2448
1875
  e.select,
2449
1876
  e.setSelection,
2450
1877
  e.getSelection,
2451
1878
  e.getBoardState,
2452
1879
  e.updateBoardState
2453
- ]), [d] = B((e) => [e.getBoardConfig]), f = e.useRef({}), p = e.useRef({ items: [] });
2454
- return H(document, "keydown", (e) => {
1880
+ ]), [p] = P((e) => [e.getBoardConfig]), m = e.useRef({}), h = e.useRef({ items: [] });
1881
+ return f(document, "keydown", (e) => {
2455
1882
  if (["INPUT", "TEXTAREA"].includes(e.target.tagName)) return;
2456
- let t = c();
1883
+ let t = l();
2457
1884
  if (t.length) {
2458
- let { gridSize: i = 1 } = d(), o = 0, s = 0;
1885
+ let { gridSize: i = 1 } = p(), a = 0, s = 0;
2459
1886
  switch (e.key) {
2460
1887
  case "ArrowLeft":
2461
- o = -10;
1888
+ a = -10;
2462
1889
  break;
2463
1890
  case "ArrowRight":
2464
- o = 10;
1891
+ a = 10;
2465
1892
  break;
2466
1893
  case "ArrowUp":
2467
1894
  s = -10;
2468
1895
  break;
2469
1896
  case "ArrowDown": s = 10;
2470
1897
  }
2471
- if (o || s) {
2472
- e.shiftKey && (o *= 5, s *= 5), (e.ctrlKey || e.altKey || e.metaKey) && (o /= 10, s /= 10);
2473
- let [c, l] = a(o, s);
1898
+ if (a || s) {
1899
+ e.shiftKey && (a *= 5, s *= 5), (e.ctrlKey || e.altKey || e.metaKey) && (a /= 10, s /= 10);
1900
+ let [c, l] = o(a, s);
2474
1901
  n(t, {
2475
1902
  x: c,
2476
1903
  y: l
@@ -2480,62 +1907,63 @@ var zt = /* @__PURE__ */ h((/* @__PURE__ */ p(((e, t) => {
2480
1907
  }), e.preventDefault();
2481
1908
  }
2482
1909
  }
2483
- }), /* @__PURE__ */ (0, S.jsx)(qt, {
1910
+ }), /* @__PURE__ */ a(q, {
1911
+ fill: !0,
2484
1912
  onDragStart: (e) => {
2485
1913
  let { ctrlKey: t, metaKey: n, event: r } = e, a = i(e);
2486
1914
  if (a) {
2487
1915
  r.stopPropagation();
2488
- let e = c();
2489
- p.current.items = e;
2490
- let i = z(a);
2491
- e.includes(i) || (t || n ? (p.current.items = [...e, i], o([i])) : (p.current.items = [i], s([i]))), Object.assign(f.current, { moving: !0 });
1916
+ let e = l();
1917
+ h.current.items = e;
1918
+ let i = N(a);
1919
+ e.includes(i) || (t || n ? (h.current.items = [...e, i], s([i])) : (h.current.items = [i], c([i]))), Object.assign(m.current, { moving: !0 });
2492
1920
  }
2493
1921
  },
2494
1922
  onDrag: ({ deltaX: e, deltaY: t, event: r }) => {
2495
- if (f.current.moving) {
1923
+ if (m.current.moving) {
2496
1924
  r.stopPropagation();
2497
- let { movingItems: i } = l(), [o, s] = a(e, t);
2498
- n(p.current.items, {
2499
- x: o,
1925
+ let { movingItems: i } = u(), [a, s] = o(e, t);
1926
+ n(h.current.items, {
1927
+ x: a,
2500
1928
  y: s
2501
- }, !0), i || u({ movingItems: !0 });
1929
+ }, !0), i || d({ movingItems: !0 });
2502
1930
  }
2503
1931
  },
2504
1932
  onDragEnd: () => {
2505
- if (f.current.moving) {
2506
- let { gridSize: e = 1 } = d(), t = e || 1;
2507
- f.current = { moving: !1 }, r(p.current.items, {
1933
+ if (m.current.moving) {
1934
+ let { gridSize: e = 1 } = p(), t = e || 1;
1935
+ m.current = { moving: !1 }, r(h.current.items, {
2508
1936
  type: "grid",
2509
1937
  size: t
2510
- }), u({ movingItems: !1 });
1938
+ }), d({ movingItems: !1 });
2511
1939
  }
2512
1940
  },
2513
1941
  children: t
2514
1942
  });
2515
- }, bn = (t) => {
1943
+ }, Kt = (t) => {
2516
1944
  let n = e.useRef({
2517
1945
  hover: !1,
2518
1946
  x: 0,
2519
1947
  y: 0
2520
1948
  });
2521
- return H(t, "mousemove", (e) => {
1949
+ return f(t, "mousemove", (e) => {
2522
1950
  let { clientX: t, clientY: r } = e;
2523
1951
  n.current.x = t, n.current.y = r;
2524
- }), H(t, "mouseenter", () => {
1952
+ }), f(t, "mouseenter", () => {
2525
1953
  n.current.hover = !0;
2526
- }), H(t, "mouseleave", () => {
1954
+ }), f(t, "mouseleave", () => {
2527
1955
  n.current.hover = !1;
2528
1956
  }), e.useCallback(() => n.current, []);
2529
- }, xn = [...[
1957
+ }, qt = [...[
2530
1958
  ,
2531
1959
  ,
2532
1960
  ,
2533
1961
  ,
2534
1962
  ,
2535
- ].keys()].map((e) => `Digit${e + 1}`), Sn = () => {
2536
- let [t, n] = e.useState({}), [r, i] = V((e) => [e.getBoardState, e.updateBoardState]);
2537
- return H(document, "keydown", (e) => {
2538
- if (!["INPUT", "TEXTAREA"].includes(e.target.tagName) && xn.includes(e.code)) {
1963
+ ].keys()].map((e) => `Digit${e + 1}`), Jt = () => {
1964
+ let [t, n] = e.useState({}), [r, i] = F((e) => [e.getBoardState, e.updateBoardState]);
1965
+ return f(document, "keydown", (e) => {
1966
+ if (!["INPUT", "TEXTAREA"].includes(e.target.tagName) && qt.includes(e.code)) {
2539
1967
  let a = e.code, { translateX: o, translateY: s, scale: c } = r();
2540
1968
  e.altKey || e.metaKey || e.ctrlKey || e.shiftKey ? n((e) => ({
2541
1969
  ...e,
@@ -2547,31 +1975,25 @@ var zt = /* @__PURE__ */ h((/* @__PURE__ */ p(((e, t) => {
2547
1975
  })) : t[a] && i(t[a]), e.preventDefault();
2548
1976
  }
2549
1977
  }), null;
2550
- }, Cn = ({ children: t, moveFirst: n = !1 }) => {
2551
- let r = e.useRef(null), [i, a, o, s, c] = V((e) => [
2552
- {
2553
- translateX: e.boardState.translateX,
2554
- translateY: e.boardState.translateY,
2555
- scale: e.boardState.scale,
2556
- rotate: e.boardState.rotate
2557
- },
1978
+ }, Yt = ({ children: t, moveFirst: n = !1 }) => {
1979
+ let r = e.useRef(null), [i, o, s, c] = F((e) => [
2558
1980
  e.config.itemExtent,
2559
1981
  e.getConfiguration,
2560
1982
  e.updateBoardState,
2561
1983
  e.getSelection
2562
- ]), { zoomToCenter: l, zoomToExtent: u, moveBoard: d } = U(), [f, p] = e.useState(!1), m = e.useRef({}), h = bn(r);
2563
- Sn();
2564
- let g = e.useCallback(() => {
1984
+ ]), { zoomToCenter: l, zoomToExtent: u, moveBoard: d } = L(), [p, m] = e.useState(!1), h = e.useRef({}), g = Kt(r);
1985
+ Jt();
1986
+ let _ = e.useCallback(() => {
2565
1987
  let { itemExtent: e } = o();
2566
1988
  u(e);
2567
1989
  }, [o, u]);
2568
1990
  return e.useEffect(() => {
2569
- !f && a.radius && (g(), p(!0));
1991
+ !p && i.radius && (_(), m(!0));
2570
1992
  }, [
2571
- g,
2572
- f,
2573
- a
2574
- ]), H(document, "keydown", (e) => {
1993
+ _,
1994
+ p,
1995
+ i
1996
+ ]), f(document, "keydown", (e) => {
2575
1997
  if (["INPUT", "TEXTAREA"].includes(e.target.tagName)) return;
2576
1998
  let t = 0, n = 0, r = 1;
2577
1999
  switch (e.key) {
@@ -2600,21 +2022,22 @@ var zt = /* @__PURE__ */ h((/* @__PURE__ */ p(((e, t) => {
2600
2022
  translateY: r + n
2601
2023
  })), l({ factor: r }), e.preventDefault();
2602
2024
  }
2603
- e.key === " " && !e.repeat && h().hover && l({
2025
+ e.key === " " && !e.repeat && g().hover && l({
2604
2026
  factor: 3,
2605
- to: h()
2027
+ to: g()
2606
2028
  });
2607
- }), H(document, "keyup", (e) => {
2608
- ["INPUT", "TEXTAREA"].includes(e.target.tagName) || e.key === " " && h().hover && l({
2029
+ }), f(document, "keyup", (e) => {
2030
+ ["INPUT", "TEXTAREA"].includes(e.target.tagName) || e.key === " " && g().hover && l({
2609
2031
  factor: 1 / 3,
2610
- to: h()
2032
+ to: g()
2611
2033
  });
2612
- }), /* @__PURE__ */ (0, S.jsx)(qt, {
2034
+ }), /* @__PURE__ */ a(q, {
2035
+ fill: !0,
2613
2036
  onPan: ({ deltaX: e, deltaY: t }) => {
2614
2037
  d(({ translateX: n, translateY: r }) => ({
2615
2038
  translateX: n + e,
2616
2039
  translateY: r + t
2617
- })), clearTimeout(m.current.pan), m.current.pan = setTimeout(() => {
2040
+ })), clearTimeout(h.current.pan), h.current.pan = setTimeout(() => {
2618
2041
  s({ panning: !1 });
2619
2042
  }, 200), s({ panning: !0 });
2620
2043
  },
@@ -2625,23 +2048,26 @@ var zt = /* @__PURE__ */ h((/* @__PURE__ */ p(((e, t) => {
2625
2048
  y: t
2626
2049
  },
2627
2050
  factor: 1 - n / 500
2628
- }), clearTimeout(m.current.zoom), m.current.zoom = setTimeout(() => {
2051
+ }), clearTimeout(h.current.zoom), h.current.zoom = setTimeout(() => {
2629
2052
  s({ zooming: !1 });
2630
2053
  }, 200), s({ zooming: !0 });
2631
2054
  },
2632
2055
  mainAction: n ? "pan" : "drag",
2633
- children: /* @__PURE__ */ (0, S.jsx)("div", {
2056
+ children: /* @__PURE__ */ a("div", {
2634
2057
  style: {
2635
- display: "inline-block",
2636
- transformOrigin: "top left",
2637
- transform: `translate(${i.translateX}px, ${i.translateY}px) rotate(${i.rotate}deg) scale(${i.scale})`
2058
+ position: "absolute",
2059
+ top: 0,
2060
+ left: 0,
2061
+ display: "block",
2062
+ width: "100%",
2063
+ height: "100%"
2638
2064
  },
2639
- className: `board-pane${i.scale < .5 ? " board-pane__far" : ""}`,
2065
+ className: "board",
2640
2066
  ref: r,
2641
2067
  children: t
2642
2068
  })
2643
2069
  });
2644
- }, wn = Y({
2070
+ }, Xt = W({
2645
2071
  position: "absolute",
2646
2072
  top: 0,
2647
2073
  left: 0,
@@ -2649,8 +2075,8 @@ var zt = /* @__PURE__ */ h((/* @__PURE__ */ p(((e, t) => {
2649
2075
  backgroundColor: "hsla(0, 40%, 50%, 0%)",
2650
2076
  border: "2px dashed hsl(20, 55%, 40%)",
2651
2077
  pointerEvents: "none"
2652
- }), Tn = () => {
2653
- let [t, n, r, i, a, { translateX: o, translateY: s, scale: c }] = V((e) => [
2078
+ }), Zt = () => {
2079
+ let [t, n, r, i, o, { translateX: s, translateY: c, scale: l }] = F((e) => [
2654
2080
  e.selection,
2655
2081
  e.getSelection,
2656
2082
  e.selectionBox,
@@ -2661,18 +2087,18 @@ var zt = /* @__PURE__ */ h((/* @__PURE__ */ p(((e, t) => {
2661
2087
  translateY: e.boardState.translateY,
2662
2088
  scale: e.boardState.scale
2663
2089
  }
2664
- ]), [l] = B((e) => [e.items]), u = e.useCallback(() => {
2665
- let e = n(), { boardWrapperRect: t, uid: r } = a();
2090
+ ]), [d] = P((e) => [e.items]), f = e.useCallback(() => {
2091
+ let e = n(), { boardWrapperRect: t, uid: r } = o();
2666
2092
  if (e.length === 0) {
2667
2093
  i(null);
2668
2094
  return;
2669
2095
  }
2670
- let o = me(e, r);
2671
- if (!o) {
2096
+ let a = se(e, r);
2097
+ if (!a) {
2672
2098
  i(null);
2673
2099
  return;
2674
2100
  }
2675
- let { left: s, top: c, width: l, height: u } = o, d = {
2101
+ let { left: s, top: c, width: l, height: u } = a, d = {
2676
2102
  left: s - t.left,
2677
2103
  top: c - t.top,
2678
2104
  height: u,
@@ -2680,44 +2106,44 @@ var zt = /* @__PURE__ */ h((/* @__PURE__ */ p(((e, t) => {
2680
2106
  };
2681
2107
  i(d);
2682
2108
  }, [
2683
- a,
2109
+ o,
2684
2110
  n,
2685
2111
  i
2686
- ]), d = Ve(u, [u], 300);
2112
+ ]), p = u(f, [f], 300);
2687
2113
  return e.useEffect(() => {
2688
- u(), d();
2114
+ f(), p();
2689
2115
  }, [
2690
2116
  t,
2691
- l,
2692
- o,
2117
+ d,
2693
2118
  s,
2694
2119
  c,
2695
- u,
2696
- d
2697
- ]), !r || t.length < 2 ? null : /* @__PURE__ */ (0, S.jsx)("div", {
2120
+ l,
2121
+ f,
2122
+ p
2123
+ ]), !r || t.length < 2 ? null : /* @__PURE__ */ a("div", {
2698
2124
  style: {
2699
2125
  transform: `translate(${r.left}px, ${r.top}px)`,
2700
2126
  height: `${r.height}px`,
2701
2127
  width: `${r.width}px`
2702
2128
  },
2703
- className: `selection ${wn}`
2129
+ className: `selection ${Xt}`
2704
2130
  });
2705
- }, En = () => {
2706
- let [e] = V((e) => [e.boardState.movingItems]);
2707
- return e ? null : /* @__PURE__ */ (0, S.jsx)(Tn, {});
2131
+ }, Qt = () => {
2132
+ let [e] = F((e) => [e.boardState.movingItems]);
2133
+ return e ? null : /* @__PURE__ */ a(Zt, {});
2708
2134
  };
2709
2135
  //#endregion
2710
2136
  //#region node_modules/color2k/dist/index.exports.import.es.mjs
2711
- function Dn(e, t, n) {
2137
+ function $t(e, t, n) {
2712
2138
  return Math.min(Math.max(e, n), t);
2713
2139
  }
2714
- var On = class extends Error {
2140
+ var Z = class extends Error {
2715
2141
  constructor(e) {
2716
2142
  super(`Failed to parse color: "${e}"`);
2717
2143
  }
2718
2144
  };
2719
- function kn(e) {
2720
- if (typeof e != "string") throw new On(e);
2145
+ function en(e) {
2146
+ if (typeof e != "string") throw new Z(e);
2721
2147
  if (e.trim().toLowerCase() === "transparent") return [
2722
2148
  0,
2723
2149
  0,
@@ -2725,52 +2151,52 @@ function kn(e) {
2725
2151
  0
2726
2152
  ];
2727
2153
  let t = e.trim();
2728
- t = Rn.test(e) ? Nn(e) : e;
2729
- let n = Pn.exec(t);
2154
+ t = un.test(e) ? an(e) : e;
2155
+ let n = on.exec(t);
2730
2156
  if (n) {
2731
2157
  let e = Array.from(n).slice(1);
2732
- return [...e.slice(0, 3).map((e) => parseInt($(e, 2), 16)), parseInt($(e[3] || "f", 2), 16) / 255];
2158
+ return [...e.slice(0, 3).map((e) => parseInt(Q(e, 2), 16)), parseInt(Q(e[3] || "f", 2), 16) / 255];
2733
2159
  }
2734
- let r = Fn.exec(t);
2160
+ let r = sn.exec(t);
2735
2161
  if (r) {
2736
2162
  let e = Array.from(r).slice(1);
2737
2163
  return [...e.slice(0, 3).map((e) => parseInt(e, 16)), parseInt(e[3] || "ff", 16) / 255];
2738
2164
  }
2739
- let i = In.exec(t);
2165
+ let i = cn.exec(t);
2740
2166
  if (i) {
2741
2167
  let e = Array.from(i).slice(1);
2742
2168
  return [...e.slice(0, 3).map((e) => parseInt(e, 10)), parseFloat(e[3] || "1")];
2743
2169
  }
2744
- let a = Ln.exec(t);
2170
+ let a = ln.exec(t);
2745
2171
  if (a) {
2746
2172
  let [t, n, r, i] = Array.from(a).slice(1).map(parseFloat);
2747
- if (Dn(0, 100, n) !== n || Dn(0, 100, r) !== r) throw new On(e);
2748
- return [...Bn(t, n, r), Number.isNaN(i) ? 1 : i];
2173
+ if ($t(0, 100, n) !== n || $t(0, 100, r) !== r) throw new Z(e);
2174
+ return [...fn(t, n, r), Number.isNaN(i) ? 1 : i];
2749
2175
  }
2750
- throw new On(e);
2176
+ throw new Z(e);
2751
2177
  }
2752
- function An(e) {
2178
+ function tn(e) {
2753
2179
  let t = 5381, n = e.length;
2754
2180
  for (; n;) t = t * 33 ^ e.charCodeAt(--n);
2755
2181
  return (t >>> 0) % 2341;
2756
2182
  }
2757
- var jn = (e) => parseInt(e.replace(/_/g, ""), 36), Mn = "1q29ehhb 1n09sgk7 1kl1ekf_ _yl4zsno 16z9eiv3 1p29lhp8 _bd9zg04 17u0____ _iw9zhe5 _to73___ _r45e31e _7l6g016 _jh8ouiv _zn3qba8 1jy4zshs 11u87k0u 1ro9yvyo 1aj3xael 1gz9zjz0 _3w8l4xo 1bf1ekf_ _ke3v___ _4rrkb__ 13j776yz _646mbhl _nrjr4__ _le6mbhl 1n37ehkb _m75f91n _qj3bzfz 1939yygw 11i5z6x8 _1k5f8xs 1509441m 15t5lwgf _ae2th1n _tg1ugcv 1lp1ugcv 16e14up_ _h55rw7n _ny9yavn _7a11xb_ 1ih442g9 _pv442g9 1mv16xof 14e6y7tu 1oo9zkds 17d1cisi _4v9y70f _y98m8kc 1019pq0v 12o9zda8 _348j4f4 1et50i2o _8epa8__ _ts6senj 1o350i2o 1mi9eiuo 1259yrp0 1ln80gnw _632xcoy 1cn9zldc _f29edu4 1n490c8q _9f9ziet 1b94vk74 _m49zkct 1kz6s73a 1eu9dtog _q58s1rz 1dy9sjiq __u89jo3 _aj5nkwg _ld89jo3 13h9z6wx _qa9z2ii _l119xgq _bs5arju 1hj4nwk9 1qt4nwk9 1ge6wau6 14j9zlcw 11p1edc_ _ms1zcxe _439shk6 _jt9y70f _754zsow 1la40eju _oq5p___ _x279qkz 1fa5r3rv _yd2d9ip _424tcku _8y1di2_ _zi2uabw _yy7rn9h 12yz980_ __39ljp6 1b59zg0x _n39zfzp 1fy9zest _b33k___ _hp9wq92 1il50hz4 _io472ub _lj9z3eo 19z9ykg0 _8t8iu3a 12b9bl4a 1ak5yw0o _896v4ku _tb8k8lv _s59zi6t _c09ze0p 1lg80oqn 1id9z8wb _238nba5 1kq6wgdi _154zssg _tn3zk49 _da9y6tc 1sg7cv4f _r12jvtt 1gq5fmkz 1cs9rvci _lp9jn1c _xw1tdnb 13f9zje6 16f6973h _vo7ir40 _bt5arjf _rc45e4t _hr4e100 10v4e100 _hc9zke2 _w91egv_ _sj2r1kk 13c87yx8 _vqpds__ _ni8ggk8 _tj9yqfb 1ia2j4r4 _7x9b10u 1fc9ld4j 1eq9zldr _5j9lhpx _ez9zl6o _md61fzm".split(" ").reduce((e, t) => {
2758
- let n = jn(t.substring(0, 3)), r = jn(t.substring(3)).toString(16), i = "";
2183
+ var nn = (e) => parseInt(e.replace(/_/g, ""), 36), rn = "1q29ehhb 1n09sgk7 1kl1ekf_ _yl4zsno 16z9eiv3 1p29lhp8 _bd9zg04 17u0____ _iw9zhe5 _to73___ _r45e31e _7l6g016 _jh8ouiv _zn3qba8 1jy4zshs 11u87k0u 1ro9yvyo 1aj3xael 1gz9zjz0 _3w8l4xo 1bf1ekf_ _ke3v___ _4rrkb__ 13j776yz _646mbhl _nrjr4__ _le6mbhl 1n37ehkb _m75f91n _qj3bzfz 1939yygw 11i5z6x8 _1k5f8xs 1509441m 15t5lwgf _ae2th1n _tg1ugcv 1lp1ugcv 16e14up_ _h55rw7n _ny9yavn _7a11xb_ 1ih442g9 _pv442g9 1mv16xof 14e6y7tu 1oo9zkds 17d1cisi _4v9y70f _y98m8kc 1019pq0v 12o9zda8 _348j4f4 1et50i2o _8epa8__ _ts6senj 1o350i2o 1mi9eiuo 1259yrp0 1ln80gnw _632xcoy 1cn9zldc _f29edu4 1n490c8q _9f9ziet 1b94vk74 _m49zkct 1kz6s73a 1eu9dtog _q58s1rz 1dy9sjiq __u89jo3 _aj5nkwg _ld89jo3 13h9z6wx _qa9z2ii _l119xgq _bs5arju 1hj4nwk9 1qt4nwk9 1ge6wau6 14j9zlcw 11p1edc_ _ms1zcxe _439shk6 _jt9y70f _754zsow 1la40eju _oq5p___ _x279qkz 1fa5r3rv _yd2d9ip _424tcku _8y1di2_ _zi2uabw _yy7rn9h 12yz980_ __39ljp6 1b59zg0x _n39zfzp 1fy9zest _b33k___ _hp9wq92 1il50hz4 _io472ub _lj9z3eo 19z9ykg0 _8t8iu3a 12b9bl4a 1ak5yw0o _896v4ku _tb8k8lv _s59zi6t _c09ze0p 1lg80oqn 1id9z8wb _238nba5 1kq6wgdi _154zssg _tn3zk49 _da9y6tc 1sg7cv4f _r12jvtt 1gq5fmkz 1cs9rvci _lp9jn1c _xw1tdnb 13f9zje6 16f6973h _vo7ir40 _bt5arjf _rc45e4t _hr4e100 10v4e100 _hc9zke2 _w91egv_ _sj2r1kk 13c87yx8 _vqpds__ _ni8ggk8 _tj9yqfb 1ia2j4r4 _7x9b10u 1fc9ld4j 1eq9zldr _5j9lhpx _ez9zl6o _md61fzm".split(" ").reduce((e, t) => {
2184
+ let n = nn(t.substring(0, 3)), r = nn(t.substring(3)).toString(16), i = "";
2759
2185
  for (let e = 0; e < 6 - r.length; e++) i += "0";
2760
2186
  return e[n] = `${i}${r}`, e;
2761
2187
  }, {});
2762
- function Nn(e) {
2763
- let t = Mn[An(e.toLowerCase().trim())];
2764
- if (!t) throw new On(e);
2188
+ function an(e) {
2189
+ let t = rn[tn(e.toLowerCase().trim())];
2190
+ if (!t) throw new Z(e);
2765
2191
  return `#${t}`;
2766
2192
  }
2767
- var $ = (e, t) => Array.from(Array(t)).map(() => e).join(""), Pn = RegExp(`^#${$("([a-f0-9])", 3)}([a-f0-9])?$`, "i"), Fn = RegExp(`^#${$("([a-f0-9]{2})", 3)}([a-f0-9]{2})?$`, "i"), In = RegExp(`^rgba?\\(\\s*(\\d+)\\s*${$(",\\s*(\\d+)\\s*", 2)}(?:,\\s*([\\d.]+))?\\s*\\)$`, "i"), Ln = /^hsla?\(\s*([\d.]+)\s*,\s*([\d.]+)%\s*,\s*([\d.]+)%(?:\s*,\s*([\d.]+))?\s*\)$/i, Rn = /^[a-z]+$/i, zn = (e) => Math.round(e * 255), Bn = (e, t, n) => {
2193
+ var Q = (e, t) => Array.from(Array(t)).map(() => e).join(""), on = RegExp(`^#${Q("([a-f0-9])", 3)}([a-f0-9])?$`, "i"), sn = RegExp(`^#${Q("([a-f0-9]{2})", 3)}([a-f0-9]{2})?$`, "i"), cn = RegExp(`^rgba?\\(\\s*(\\d+)\\s*${Q(",\\s*(\\d+)\\s*", 2)}(?:,\\s*([\\d.]+))?\\s*\\)$`, "i"), ln = /^hsla?\(\s*([\d.]+)\s*,\s*([\d.]+)%\s*,\s*([\d.]+)%(?:\s*,\s*([\d.]+))?\s*\)$/i, un = /^[a-z]+$/i, dn = (e) => Math.round(e * 255), fn = (e, t, n) => {
2768
2194
  let r = n / 100;
2769
2195
  if (t === 0) return [
2770
2196
  r,
2771
2197
  r,
2772
2198
  r
2773
- ].map(zn);
2199
+ ].map(dn);
2774
2200
  let i = (e % 360 + 360) % 360 / 60, a = (1 - Math.abs(2 * r - 1)) * (t / 100), o = a * (1 - Math.abs(i % 2 - 1)), s = 0, c = 0, l = 0;
2775
2201
  i >= 0 && i < 1 ? (s = a, c = o) : i >= 1 && i < 2 ? (s = o, c = a) : i >= 2 && i < 3 ? (c = a, l = o) : i >= 3 && i < 4 ? (c = o, l = a) : i >= 4 && i < 5 ? (s = o, l = a) : i >= 5 && i < 6 && (s = a, l = o);
2776
2202
  let u = r - a / 2;
@@ -2778,29 +2204,29 @@ var $ = (e, t) => Array.from(Array(t)).map(() => e).join(""), Pn = RegExp(`^#${$
2778
2204
  s + u,
2779
2205
  c + u,
2780
2206
  l + u
2781
- ].map(zn);
2207
+ ].map(dn);
2782
2208
  };
2783
- function Vn(e) {
2209
+ function pn(e) {
2784
2210
  if (e === "transparent") return 0;
2785
2211
  function t(e) {
2786
2212
  let t = e / 255;
2787
2213
  return t <= .04045 ? t / 12.92 : ((t + .055) / 1.055) ** 2.4;
2788
2214
  }
2789
- let [n, r, i] = kn(e);
2215
+ let [n, r, i] = en(e);
2790
2216
  return .2126 * t(n) + .7152 * t(r) + .0722 * t(i);
2791
2217
  }
2792
- function Hn(e) {
2793
- return Vn(e) > .179;
2218
+ function mn(e) {
2219
+ return pn(e) > .179;
2794
2220
  }
2795
2221
  //#endregion
2796
2222
  //#region src/lib/board/Cursors/Cursor.jsx
2797
- var Un = Y({
2223
+ var hn = W({
2798
2224
  display: "flex",
2799
2225
  flexDirection: "row",
2800
2226
  alignItems: "center",
2801
2227
  zIndex: 210,
2802
2228
  pointerEvents: "none"
2803
- }), Wn = Y({
2229
+ }), gn = W({
2804
2230
  fontWeight: "bold",
2805
2231
  padding: "0 0.5em",
2806
2232
  borderRadius: "2px",
@@ -2811,20 +2237,20 @@ var Un = Y({
2811
2237
  marginTop: "1.7em",
2812
2238
  whitespace: "nowrap",
2813
2239
  pointerEvents: "none"
2814
- }), Gn = e.memo(({ color: e = "#666", size: t = 40, text: n }) => {
2815
- let r = Hn(e) ? "#222" : "#EEE";
2816
- return /* @__PURE__ */ (0, S.jsxs)("div", {
2817
- className: Un,
2818
- children: [/* @__PURE__ */ (0, S.jsxs)("svg", {
2240
+ }), _n = e.memo(({ color: e = "#666", size: t = 40, text: n }) => {
2241
+ let r = mn(e) ? "#222" : "#EEE";
2242
+ return /* @__PURE__ */ o("div", {
2243
+ className: hn,
2244
+ children: [/* @__PURE__ */ o("svg", {
2819
2245
  version: "1.1",
2820
2246
  xmlns: "http://www.w3.org/2000/svg",
2821
2247
  viewBox: "1064.7701 445.5539 419.8101 717.0565",
2822
2248
  width: t,
2823
2249
  height: t,
2824
- children: [/* @__PURE__ */ (0, S.jsx)("path", {
2250
+ children: [/* @__PURE__ */ a("path", {
2825
2251
  d: "m 1197.1015,869.718 -62.2719,-154.49286 133.3276,-9.05842 -257.6915,-253.12748 1.2392,356.98609 88.2465,-79.47087 61.702,152.78366 z",
2826
2252
  style: { fill: r }
2827
- }), /* @__PURE__ */ (0, S.jsx)("path", {
2253
+ }), /* @__PURE__ */ a("path", {
2828
2254
  d: "m 1193.0939,861.12419 -62.2719,-154.49286 133.3276,-9.05842 -257.6915,-253.12748 1.2392,356.98609 88.2465,-79.47087 61.702,152.78366 z",
2829
2255
  style: {
2830
2256
  fill: "white",
@@ -2832,125 +2258,310 @@ var Un = Y({
2832
2258
  strokeWidth: 20
2833
2259
  }
2834
2260
  })]
2835
- }), /* @__PURE__ */ (0, S.jsx)("div", {
2261
+ }), /* @__PURE__ */ a("div", {
2836
2262
  style: {
2837
2263
  color: r,
2838
2264
  backgroundColor: e
2839
2265
  },
2840
- className: Wn,
2266
+ className: gn,
2841
2267
  children: n
2842
2268
  })]
2843
2269
  });
2844
- }), Kn = Y({
2270
+ }), vn = W({
2845
2271
  top: 0,
2846
2272
  left: 0,
2847
2273
  zIndex: 210,
2848
2274
  position: "fixed",
2849
2275
  pointerEvents: "none"
2850
- }), qn = ({ pos: e, ...t }) => /* @__PURE__ */ (0, S.jsx)("div", {
2851
- className: Kn,
2276
+ }), yn = ({ pos: e, ...t }) => /* @__PURE__ */ a("div", {
2277
+ className: vn,
2852
2278
  style: { transform: `translate(${e.x - 6}px, ${e.y - 15}px)` },
2853
- children: /* @__PURE__ */ (0, S.jsx)(Gn, { ...t })
2854
- }), Jn = ({ children: e }) => {
2855
- let [t] = V((e) => [e.getConfiguration, e.boardState.scale]), { fromWrapperToBoard: n, fromBoardToWrapper: r } = U(), [i, a, o, s] = K((e) => [
2279
+ children: /* @__PURE__ */ a(_n, { ...t })
2280
+ }), bn = ({ children: e }) => {
2281
+ let [t] = F((e) => [e.getConfiguration, e.boardState.scale]), { fromWrapperToBoard: n, fromBoardToWrapper: r } = L(), [i, s, c, l] = V((e) => [
2856
2282
  e.getUser(),
2857
2283
  e.getLocalUsers(),
2858
2284
  e.cursors,
2859
2285
  e.users
2860
- ]), [c, l] = K((e) => [e.moveCursor, e.removeCursor]), { boardWrapperRect: u } = t(), d = ({ clientX: e, clientY: t }) => {
2861
- let [r, a] = n(e - u.left, t - u.top);
2862
- c(i.id, {
2286
+ ]), [u, d] = V((e) => [e.moveCursor, e.removeCursor]), { boardWrapperRect: f } = t(), p = ({ clientX: e, clientY: t }) => {
2287
+ let [r, a] = n(e - f.left, t - f.top);
2288
+ u(i.id, {
2863
2289
  x: r,
2864
2290
  y: a
2865
2291
  });
2866
- }, f = () => {
2867
- l(i.id);
2868
- }, p = a.reduce((e, t) => (t.id !== i.id && o[t.id] && (e[t.id] = o[t.id]), e), {});
2869
- return /* @__PURE__ */ (0, S.jsxs)("div", {
2870
- onPointerMove: d,
2871
- onPointerLeave: f,
2872
- children: [e, Object.entries(p).map(([e, t]) => {
2873
- let [n, i] = r(t.x, t.y), a = {
2874
- x: n + u.left,
2875
- y: i + u.top
2292
+ }, m = () => {
2293
+ d(i.id);
2294
+ }, h = s.reduce((e, t) => (t.id !== i.id && c[t.id] && (e[t.id] = c[t.id]), e), {});
2295
+ return /* @__PURE__ */ o("div", {
2296
+ onPointerMove: p,
2297
+ onPointerLeave: m,
2298
+ children: [e, Object.entries(h).map(([e, t]) => {
2299
+ let [n, i] = r(t.x, t.y), o = {
2300
+ x: n + f.left,
2301
+ y: i + f.top
2876
2302
  };
2877
- return de(a, u) ? /* @__PURE__ */ (0, S.jsx)(qn, {
2878
- pos: a,
2879
- text: s[e].name,
2880
- color: s[e].color
2303
+ return j(o, f) ? /* @__PURE__ */ a(yn, {
2304
+ pos: o,
2305
+ text: l[e].name,
2306
+ color: l[e].color
2881
2307
  }, e) : null;
2882
2308
  })]
2883
2309
  });
2884
- }, Yn = ({ children: e }) => e, Xn = {
2310
+ }, xn = /[+-]?(?:\d*\.)?\d+(?:e[+-]?\d+)?(?:px|%)/gi;
2311
+ function Sn(e, t = ",") {
2312
+ let n = 0, r = "", i = 0, a = [];
2313
+ for (let [o, s] of e.split("").entries()) if (r) s === r && e[o - 1] !== "\\" && (r = "");
2314
+ else if (s === "\"" || s === "'") r = s;
2315
+ else if (s === "(") n++;
2316
+ else if (s === ")") n--;
2317
+ else if (n === 0 && s === t) {
2318
+ let t = e.slice(i, o).trim();
2319
+ t && a.push(t), i = o + 1;
2320
+ }
2321
+ let o = e.slice(i).trim();
2322
+ return o && a.push(o), a;
2323
+ }
2324
+ function $(e, t) {
2325
+ return [...e.replace(/\s/g, "").matchAll(xn)].reduce((e, [n]) => e + Number.parseFloat(n) * (n.endsWith("%") ? t / 100 : 1), 0);
2326
+ }
2327
+ function Cn(e, t, n, r) {
2328
+ let [i, a = "auto"] = Sn(e, " "), o = r?.width, s = r?.height;
2329
+ if (i === "cover" || i === "contain") {
2330
+ if (!o || !s) return [t, n];
2331
+ let e = Math[i === "cover" ? "max" : "min"](t / o, n / s);
2332
+ return [o * e, s * e];
2333
+ }
2334
+ let c = i === "auto" ? null : $(i, t), l = a === "auto" ? null : $(a, n);
2335
+ return c === null && l === null ? [o || t, s || n] : (c === null && (c = o && s ? l * o / s : t), l === null && (l = o && s ? c * s / o : n), [c, l]);
2336
+ }
2337
+ function wn(e, t, n) {
2338
+ let r = [
2339
+ [0, 0],
2340
+ [e, 0],
2341
+ [0, t],
2342
+ [e, t]
2343
+ ].map((e) => k(e, n)), i = r.map(([e]) => e), a = r.map(([, e]) => e), o = Math.floor(Math.min(...i)) - 2, s = Math.floor(Math.min(...a)) - 2, c = Math.ceil(Math.max(...i)) + 2, l = Math.ceil(Math.max(...a)) + 2, [u, d] = A([o, s], n);
2344
+ return {
2345
+ left: o,
2346
+ top: s,
2347
+ width: c - o,
2348
+ height: l - s,
2349
+ x: u,
2350
+ y: d
2351
+ };
2352
+ }
2353
+ var Tn = (e, t, n) => ((e - t) % n + n) % n;
2354
+ function En(e, t, n, r) {
2355
+ let i = wn(e, t, n), a = Number.isFinite(r) && r > 0 ? r : 512 * 2 ** Math.max(0, Math.ceil(Math.log2(1 / n.scale))), o = Math.floor(i.left / a) - 1, s = Math.floor((i.left + i.width) / a) + 1, c = Math.floor(i.top / a) - 1, l = Math.floor((i.top + i.height) / a) + 1, u = o * a, d = c * a, [f, p] = A([u, d], n);
2356
+ return {
2357
+ tiles: Array.from({ length: l - c + 1 }, (e, t) => {
2358
+ let n = c + t;
2359
+ return Array.from({ length: s - o + 1 }, (e, t) => {
2360
+ let r = o + t;
2361
+ return {
2362
+ key: `${a}:${r}:${n}`,
2363
+ left: r * a,
2364
+ top: n * a
2365
+ };
2366
+ });
2367
+ }).flat(),
2368
+ size: a,
2369
+ left: u,
2370
+ top: d,
2371
+ x: f,
2372
+ y: p
2373
+ };
2374
+ }
2375
+ //#endregion
2376
+ //#region src/lib/board/WorldBackground.jsx
2377
+ var Dn = {
2378
+ position: "absolute",
2379
+ inset: 0,
2380
+ pointerEvents: "none"
2381
+ };
2382
+ function On({ style: t, tileSizeOverride: n }) {
2383
+ let [r, i] = F((e) => [e.boardState, e.config.boardWrapperRect]), s = i.width || 1, c = i.height || 1, l = e.useRef(null), [u, d] = e.useState({
2384
+ color: "#333",
2385
+ layers: []
2386
+ }), [f, p] = e.useState({});
2387
+ e.useLayoutEffect(() => {
2388
+ let e = getComputedStyle(l.current), t = (t) => Sn(e[t]), n = t("backgroundSize"), r = t("backgroundPositionX"), i = t("backgroundPositionY"), a = t("backgroundRepeat"), o = t("backgroundBlendMode");
2389
+ d({
2390
+ color: e.backgroundColor,
2391
+ layers: t("backgroundImage").map((e, t) => ({
2392
+ image: e,
2393
+ size: n[t % n.length],
2394
+ x: r[t % r.length],
2395
+ y: i[t % i.length],
2396
+ repeat: a[t % a.length],
2397
+ blend: o[t % o.length]
2398
+ }))
2399
+ });
2400
+ }, [
2401
+ t,
2402
+ s,
2403
+ c
2404
+ ]), e.useEffect(() => {
2405
+ let e = !0;
2406
+ return u.layers.forEach(({ image: t }) => {
2407
+ if (!t.startsWith("url(")) return;
2408
+ let n = new Image();
2409
+ n.onload = () => {
2410
+ e && p((e) => ({
2411
+ ...e,
2412
+ [t]: {
2413
+ width: n.naturalWidth,
2414
+ height: n.naturalHeight
2415
+ }
2416
+ }));
2417
+ }, n.src = t.slice(4, -1).replace(/^["']|["']$/g, "");
2418
+ }), () => {
2419
+ e = !1;
2420
+ };
2421
+ }, [u.layers]);
2422
+ let m = En(s, c, r, n), h = u.layers.map((e) => {
2423
+ let [t, n] = Cn(e.size, s, c, f[e.image]), r = ["repeat", "repeat-x"].includes(e.repeat) || e.repeat.startsWith("repeat "), i = ["repeat", "repeat-y"].includes(e.repeat) || e.repeat.endsWith(" repeat"), a = $(e.x, s - t), o = $(e.y, c - n);
2424
+ return {
2425
+ ...e,
2426
+ size: `${t}px ${n}px`,
2427
+ position: (e, s) => `${r && t ? Tn(a, e, t) : a - e}px ${i && n ? Tn(o, s, n) : o - s}px`
2428
+ };
2429
+ });
2430
+ return /* @__PURE__ */ o("div", {
2431
+ className: "world-background",
2432
+ "aria-hidden": "true",
2433
+ style: {
2434
+ ...Dn,
2435
+ overflow: "hidden",
2436
+ backgroundColor: u.color
2437
+ },
2438
+ children: [/* @__PURE__ */ a("div", {
2439
+ ref: l,
2440
+ style: {
2441
+ backgroundColor: "#333",
2442
+ ...t,
2443
+ position: "absolute",
2444
+ width: s,
2445
+ height: c,
2446
+ visibility: "hidden",
2447
+ pointerEvents: "none"
2448
+ }
2449
+ }), /* @__PURE__ */ a("div", {
2450
+ className: "world-background-tiles",
2451
+ style: {
2452
+ position: "absolute",
2453
+ transformOrigin: "0 0",
2454
+ transform: `translate(${m.x}px, ${m.y}px) rotate(${r.rotate}deg) scale(${r.scale})`
2455
+ },
2456
+ children: m.tiles.map((e) => /* @__PURE__ */ a("div", {
2457
+ className: "world-background-tile",
2458
+ "data-tile": e.key,
2459
+ style: {
2460
+ position: "absolute",
2461
+ left: e.left - m.left,
2462
+ top: e.top - m.top,
2463
+ width: m.size,
2464
+ height: m.size,
2465
+ backgroundImage: h.map((e) => e.image).join(", "),
2466
+ backgroundSize: h.map((e) => e.size).join(", "),
2467
+ backgroundPosition: h.map((t) => t.position(e.left, e.top)).join(", "),
2468
+ backgroundRepeat: h.map((e) => e.repeat).join(", "),
2469
+ backgroundBlendMode: h.map((e) => e.blend).join(", ")
2470
+ }
2471
+ }, e.key))
2472
+ })]
2473
+ });
2474
+ }
2475
+ //#endregion
2476
+ //#region src/lib/board/Board.jsx
2477
+ var kn = ({ children: e }) => e, An = {}, jn = {
2885
2478
  overflow: "hidden",
2886
2479
  position: "absolute",
2887
2480
  inset: 0
2888
- }, Zn = ({ moveFirst: t = !0, style: n, wrapperStyle: r, itemTemplates: i = {}, boardSize: a = Ae, children: o, showResizeHandle: s = !1, Wrapper: c = Yn }) => {
2889
- let l = e.useRef(null), [u, d] = V((e) => [e.config.uid, e.updateConfiguration]), { updateItemExtent: f } = U(), p = {
2481
+ }, Mn = ({ moveFirst: t = !0, style: n, wrapperStyle: r, itemTemplates: i = An, boardSize: s = Ce, backgroundTileSize: c, children: l, showResizeHandle: u = !1, Wrapper: d = kn }) => {
2482
+ let f = e.useRef(null), [m, h] = F((e) => [e.config.uid, e.updateConfiguration]), [g, _, v, y] = F((e) => [
2483
+ e.boardState.translateX,
2484
+ e.boardState.translateY,
2485
+ e.boardState.scale,
2486
+ e.boardState.rotate
2487
+ ]), { updateItemExtent: b } = L(), x = {
2890
2488
  userSelect: "none",
2891
- width: `${a}px`,
2892
- height: `${a}px`,
2893
- backgroundColor: "#333",
2894
- ...n
2489
+ position: "absolute",
2490
+ inset: 0,
2491
+ width: "100%",
2492
+ height: "100%",
2493
+ transformOrigin: "0 0",
2494
+ transform: `translate(${g}px, ${_}px) rotate(${y}deg) scale(${v})`,
2495
+ pointerEvents: "none"
2895
2496
  };
2896
2497
  e.useEffect(() => {
2897
2498
  let e = (e) => {
2898
- I(e.target, "board") && e.preventDefault();
2499
+ f.current?.contains(e.target) && e.preventDefault();
2899
2500
  };
2900
2501
  return document.body.addEventListener("wheel", e, { passive: !1 }), () => {
2901
2502
  document.body.removeEventListener("wheel", e);
2902
2503
  };
2903
2504
  }, []), e.useEffect(() => {
2904
- d({ boardWrapper: l.current });
2905
- }, [d]), e.useEffect(() => {
2906
- u || d({ uid: G() });
2907
- }, [u, d]), e.useEffect(() => {
2908
- d({
2505
+ h({ boardWrapper: f.current });
2506
+ }, [h]), e.useEffect(() => {
2507
+ m || h({ uid: B() });
2508
+ }, [m, h]), e.useEffect(() => {
2509
+ h({
2909
2510
  itemTemplates: i,
2910
- boardSize: a,
2911
- showResizeHandle: s
2511
+ boardSize: s,
2512
+ showResizeHandle: u
2912
2513
  });
2913
2514
  }, [
2914
2515
  i,
2915
- a,
2916
2516
  s,
2917
- d
2517
+ u,
2518
+ h
2918
2519
  ]), e.useEffect(() => {
2919
- d({ boardWrapperRect: l.current.getBoundingClientRect() }), f(), setTimeout(f, 2e3);
2920
- }, [d, f]), Xe(l, () => {
2921
- l.current && d({ boardWrapperRect: l.current.getBoundingClientRect() });
2520
+ h({ boardWrapperRect: f.current.getBoundingClientRect() }), b(), setTimeout(b, 2e3);
2521
+ }, [h, b]), p(f, () => {
2522
+ f.current && h({ boardWrapperRect: f.current.getBoundingClientRect() });
2922
2523
  });
2923
- let m = Y({
2924
- ...Xn,
2524
+ let S = W({
2525
+ ...jn,
2925
2526
  ...r
2926
2527
  });
2927
- return /* @__PURE__ */ (0, S.jsxs)("div", {
2928
- ref: l,
2929
- id: u,
2930
- className: `sync-board ${m}`,
2931
- children: [/* @__PURE__ */ (0, S.jsx)(Jn, { children: /* @__PURE__ */ (0, S.jsx)(vn, {
2932
- moveFirst: t,
2933
- children: /* @__PURE__ */ (0, S.jsx)(Cn, {
2528
+ return /* @__PURE__ */ o("div", {
2529
+ ref: f,
2530
+ id: m,
2531
+ className: `sync-board ${S}`,
2532
+ children: [
2533
+ /* @__PURE__ */ a(On, {
2534
+ style: n,
2535
+ tileSizeOverride: c
2536
+ }),
2537
+ /* @__PURE__ */ a(bn, { children: /* @__PURE__ */ a(Wt, {
2934
2538
  moveFirst: t,
2935
- children: /* @__PURE__ */ (0, S.jsx)(yn, {
2539
+ children: /* @__PURE__ */ a(Yt, {
2936
2540
  moveFirst: t,
2937
- children: /* @__PURE__ */ (0, S.jsx)(c, { children: /* @__PURE__ */ (0, S.jsxs)("div", {
2938
- onContextMenu: (e) => {
2939
- e.preventDefault();
2940
- },
2941
- style: p,
2942
- className: "board",
2943
- children: [/* @__PURE__ */ (0, S.jsx)(hn, {}), o]
2944
- }) })
2541
+ children: /* @__PURE__ */ a(Gt, {
2542
+ moveFirst: t,
2543
+ children: /* @__PURE__ */ a(d, { children: /* @__PURE__ */ o("div", {
2544
+ onContextMenu: (e) => {
2545
+ e.preventDefault();
2546
+ },
2547
+ style: x,
2548
+ className: `board-pane${v < .5 ? " board-pane__far" : ""}`,
2549
+ children: [/* @__PURE__ */ a(Vt, {}), /* @__PURE__ */ a("div", {
2550
+ style: { pointerEvents: "auto" },
2551
+ children: l
2552
+ })]
2553
+ }) })
2554
+ })
2945
2555
  })
2946
- })
2947
- }) }), /* @__PURE__ */ (0, S.jsx)(En, {})]
2556
+ }) }),
2557
+ /* @__PURE__ */ a(Qt, {})
2558
+ ]
2948
2559
  });
2949
2560
  };
2950
2561
  //#endregion
2951
2562
  //#region src/lib/index.js
2952
- Rt(e.createElement);
2563
+ mt(e.createElement);
2953
2564
  //#endregion
2954
- export { Zn as Board, Ot as BoardWrapper, kt as RoomWrapper, st as useAvailableActions, _t as useBoardConfig, U as useBoardPosition, vt as useBoardState, ke as useDebouncedItems, Re as useGetSelectedItems, W as useItemActions, rt as useItemInteraction, Oe as useItems, Et as useMessage, Le as useSelectedItems, ct as useSelectionBox, yt as useSessionInfo, gt as useUsers, E as useWire };
2565
+ export { Mn as Board, it as BoardWrapper, at as RoomWrapper, Le as useAvailableActions, qe as useBoardConfig, L as useBoardPosition, Je as useBoardState, Se as useDebouncedItems, je as useGetSelectedItems, z as useItemActions, R as useItemInteraction, xe as useItems, nt as useMessage, Ae as useSelectedItems, Re as useSelectionBox, Ye as useSessionInfo, Ke as useUsers, D as useWire };
2955
2566
 
2956
2567
  //# sourceMappingURL=react-sync-board.js.map