react-sync-board 1.3.1 → 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -14,12 +14,19 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
14
14
  }, S = (e, t, n) => (n = e == null ? {} : m(v(e)), x(t || !e || !e.__esModule || !y.call(e, "default") ? h(n, "default", {
15
15
  value: e,
16
16
  enumerable: !0
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 {
17
+ }) : n, e)), C = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict", w = (e = 21) => {
18
+ let t = "", n = crypto.getRandomValues(new Uint8Array(e |= 0));
19
+ for (; e--;) t += C[n[e] & 63];
20
+ return t;
21
+ }, ee = 128, T = (e) => typeof e == "string" && e.length > 0 && e.length <= ee && !/[\u0000-\u001f\u007f]/u.test(e), E = (e, t) => {
22
+ if (!T(e)) throw Error(`Invalid ${t}`);
23
+ }, D = class {
18
24
  constructor(e, t, n = null) {
19
25
  this._socket = e, this.userId = n, this.room = t, this.toUnregister = [() => {
20
26
  this._socket.off(`${this.room}.isMaster`), this._socket.off(`${this.room}.roomJoined`), this._socket.off(`${this.room}._call`);
21
- }], this._left = !1, this.registeredRPC = {}, this._socket.on(`${this.room}._call`, async ({ callId: t, name: n, params: r }) => {
27
+ }], this._left = !1, this.registeredRPC = Object.create(null), this._socket.on(`${this.room}._call`, async ({ callId: t, name: n, params: r }) => {
22
28
  try {
29
+ if (!Object.hasOwn(this.registeredRPC, n)) throw Error(`Function ${n} is not registered`);
23
30
  let i = await this.registeredRPC[n](r);
24
31
  e.emit(`${this.room}._result.${t}`, { ok: i || null });
25
32
  } catch (n) {
@@ -28,10 +35,10 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
28
35
  });
29
36
  }
30
37
  async _callServerRPC(e, t) {
31
- let n = C();
38
+ let n = w();
32
39
  return new Promise((r, i) => {
33
40
  this._socket.once(`${this.room}._result.${n}`, (e) => {
34
- e.hasOwnProperty("ok") ? r(e.ok) : i(e.err);
41
+ Object.hasOwn(e, "ok") ? r(e.ok) : i(e.err);
35
42
  }), this._socket.emit(`${this.room}._call`, {
36
43
  callId: n,
37
44
  name: e,
@@ -45,13 +52,14 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
45
52
  }), this._socket.emit(`${this.room}.leave`);
46
53
  }
47
54
  publish(e, t, n = !1) {
48
- this._socket.emit(`${this.room}.publish`, {
55
+ E(e, "event name"), this._socket.emit(`${this.room}.publish`, {
49
56
  name: e,
50
57
  params: t,
51
58
  self: n
52
59
  });
53
60
  }
54
61
  subscribe(e, t) {
62
+ if (E(e, "event name"), typeof t != "function") throw TypeError("Invalid callback");
55
63
  this._socket.on(`${this.room}.${e}`, t);
56
64
  let n = () => {
57
65
  this._socket.off(`${this.room}.${e}`, t);
@@ -59,6 +67,13 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
59
67
  return this.toUnregister.push(n), n;
60
68
  }
61
69
  async register(e, t, { invoke: n = "single" } = {}) {
70
+ if (E(e, "RPC name"), typeof t != "function") throw TypeError("Invalid callback");
71
+ if (![
72
+ "single",
73
+ "first",
74
+ "last",
75
+ "random"
76
+ ].includes(n)) throw Error("Invalid invoke mode");
62
77
  this.registeredRPC[e] = t, await this._callServerRPC("register", {
63
78
  name: e,
64
79
  invoke: n
@@ -74,8 +89,9 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
74
89
  params: t
75
90
  });
76
91
  }
77
- }, T = ({ socket: e, room: t, onJoined: n = () => {}, onMaster: r = () => {}, userId: i = null }) => {
78
- let a = new w(e, t, i);
92
+ }, te = ({ socket: e, room: t, onJoined: n = () => {}, onMaster: r = () => {}, userId: i = null }) => {
93
+ E(t, "room name"), i != null && E(i, "user id");
94
+ let a = new D(e, t, i);
79
95
  return new Promise((o) => {
80
96
  let s = !0;
81
97
  e.on(`${t}.isMaster`, () => {
@@ -92,7 +108,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
92
108
  userId: i
93
109
  });
94
110
  });
95
- }, E = e.createContext(), ee = () => /* @__PURE__ */ a("div", {
111
+ }, O = e.createContext(), ne = () => /* @__PURE__ */ a("div", {
96
112
  style: {
97
113
  position: "absolute",
98
114
  top: "0",
@@ -103,8 +119,8 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
103
119
  alignItems: "center"
104
120
  },
105
121
  children: /* @__PURE__ */ a("h2", { children: "🌀 Loading..." })
106
- }), D = ({ socket: t, room: n, channel: i = "default", LoadingComponent: o = ee, 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(E), _ = e.useRef(!1);
122
+ }), re = ({ socket: t, room: n, channel: i = "default", LoadingComponent: o = ne, children: s }) => {
123
+ 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(O), _ = e.useRef(!1);
108
124
  return e.useEffect(() => (h.current = !0, () => {
109
125
  h.current = !1;
110
126
  }), []), e.useEffect(() => {
@@ -115,7 +131,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
115
131
  return t.on("disconnect", e), () => {
116
132
  t.off("disconnect", e);
117
133
  };
118
- }, [i, t]), e.useEffect(() => t ? (t.connected || t.connect(), console.log(`Try to connect to wire ${n} on channel ${i}`), _.current || (_.current = !0, T({
134
+ }, [i, t]), e.useEffect(() => t ? (t.connected || t.connect(), console.log(`Try to connect to wire ${n} on channel ${i}`), _.current || (_.current = !0, te({
119
135
  socket: t,
120
136
  room: n,
121
137
  onMaster: () => {
@@ -130,7 +146,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
130
146
  i,
131
147
  n,
132
148
  t
133
- ]), !c || !f ? /* @__PURE__ */ a(o, {}) : /* @__PURE__ */ a(E.Provider, {
149
+ ]), !c || !f ? /* @__PURE__ */ a(o, {}) : /* @__PURE__ */ a(O.Provider, {
134
150
  value: {
135
151
  ...g,
136
152
  [i]: {
@@ -142,33 +158,22 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
142
158
  },
143
159
  children: s
144
160
  });
145
- }, O = (e = "default") => (r(E) || {})[e], k = (e, t) => e.classList && e.classList.contains(t), A = (e, t) => k(e, t) ? e : e.parentNode ? A(e.parentNode, t) : !1, j = ([e, t], [n, r]) => {
161
+ }, k = (e = "default") => (r(O) || {})[e], A = (e, t) => e.classList && e.classList.contains(t), j = (e, t) => A(e, t) ? e : e.parentNode ? j(e.parentNode, t) : !1, ie = ([e, t], [n, r]) => {
146
162
  let i = Math.abs(e - n), a = Math.abs(t - r);
147
163
  return Math.hypot(i, a);
148
- }, te = (e, t, n) => {
164
+ }, ae = (e, t, n) => {
149
165
  let r = n * Math.PI / 180;
150
166
  return [e * Math.cos(r) - t * Math.sin(r), e * Math.sin(r) + t * Math.cos(r)];
151
- }, ne = ([e, t], { scale: n, rotate: r, translateX: i, translateY: a }) => te((e - i) / n, (t - a) / n, -r), M = ([e, t], { scale: n, rotate: r, translateX: i, translateY: a }) => {
152
- let [o, s] = te(e, t, r);
167
+ }, oe = ([e, t], { scale: n, rotate: r, translateX: i, translateY: a }) => ae((e - i) / n, (t - a) / n, -r), M = ([e, t], { scale: n, rotate: r, translateX: i, translateY: a }) => {
168
+ let [o, s] = ae(e, t, r);
153
169
  return [o * n + i, s * n + a];
154
- }, re = (e, t, n, r) => {
155
- 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;
156
- if (_ < 0) return [];
157
- let v = (-h + Math.sqrt(_)) / (2 * m), y = (-h - Math.sqrt(_)) / (2 * m), b = [];
158
- return v >= 0 && v <= 1 && b.push({
159
- x: i + v * u,
160
- y: a + v * d
161
- }), y >= 0 && y <= 1 && b.push({
162
- x: i + y * u,
163
- y: a + y * d
164
- }), b;
165
- }, N = (e, t) => e.x > t.left && e.x < t.left + t.width && e.y > t.top && e.y < t.top + t.height, ie = (e, t) => Array.from(e.querySelectorAll(".corner")).every((e) => {
170
+ }, N = (e, t) => e.x > t.left && e.x < t.left + t.width && e.y > t.top && e.y < t.top + t.height, se = (e, t) => Array.from(e.querySelectorAll(".corner")).every((e) => {
166
171
  let { top: n, left: r } = e.getBoundingClientRect();
167
172
  return N({
168
173
  x: r,
169
174
  y: n
170
175
  }, t);
171
- }), ae = (e, t) => ie(e, t.getBoundingClientRect()), P = (e, t) => {
176
+ }), ce = (e, t) => se(e, t.getBoundingClientRect()), P = (e, t) => {
172
177
  try {
173
178
  return document.getElementById(`${e}__${t}`);
174
179
  } catch {
@@ -178,7 +183,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
178
183
  }, F = (e) => {
179
184
  let t = e?.dataset?.id;
180
185
  return t || console.error("getIdFromElem call fails", e, JSON.stringify(e?.dataset), e?.dataset?.id), t;
181
- }, oe = (e, t) => {
186
+ }, le = (e, t) => {
182
187
  let n = e.reduce((e, n) => {
183
188
  let r = P(t, n);
184
189
  if (!r) return e || null;
@@ -191,10 +196,10 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
191
196
  }, 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;
192
197
  }, null);
193
198
  return n && (n.width = n.right - n.left, n.height = n.bottom - n.top, n);
194
- }, se = (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, ...se(e, e[t].linkedItems, n)] : [])).flat()), ce = (e, t, n) => {
195
- let r = new Set(se(e, n));
199
+ }, ue = (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, ...ue(e, e[t].linkedItems, n)] : [])).flat()), de = (e, t, n) => {
200
+ let r = new Set(ue(e, n));
196
201
  return t.filter((e) => r.has(e));
197
- }, le = ({ x: e, y: t, width: n, height: r }, { type: i = "grid", size: a = 1, offset: o = {
202
+ }, fe = ({ x: e, y: t, width: n, height: r }, { type: i = "grid", size: a = 1, offset: o = {
198
203
  x: 0,
199
204
  y: 0
200
205
  } }) => {
@@ -215,7 +220,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
215
220
  x: l + o.x - n / 2,
216
221
  y: u + o.y - r / 2
217
222
  };
218
- }, ue = /* @__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("."), de = () => ue[Math.floor(Math.random() * ue.length)], fe = ({ wire: e, storeName: t, noSync: n = [], defaultValue: r }, i) => (a, o, s) => {
223
+ }, pe = /* @__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("."), me = () => pe[Math.floor(Math.random() * pe.length)], I = ({ wire: e, storeName: t, noSync: n = [], defaultValue: r }, i) => (a, o, s) => {
219
224
  a({ ready: !1 });
220
225
  let c = [];
221
226
  (async () => {
@@ -239,7 +244,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
239
244
  return d.unsub = () => {
240
245
  c.forEach((e) => e());
241
246
  }, d;
242
- }, pe = e.createContext(), me = (e, t) => ({
247
+ }, he = e.createContext(), ge = (e, t) => ({
243
248
  items: {},
244
249
  getItems: () => t().items,
245
250
  setItems: (t) => e({ items: t }),
@@ -262,7 +267,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
262
267
  });
263
268
  }), { items: r };
264
269
  })
265
- }), he = (e, t) => ({
270
+ }), _e = (e, t) => ({
266
271
  itemIds: [],
267
272
  setItemIds: (t) => e({ itemIds: t }),
268
273
  getItemIds: () => t().itemIds,
@@ -279,7 +284,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
279
284
  return r[t] = n, { itemIds: r };
280
285
  }),
281
286
  updateManyItemIds: (t) => e((e) => ({ itemIds: e.itemIds.map((e, n) => t[n] === void 0 ? e : t[n]) }))
282
- }), ge = (e, t) => ({
287
+ }), ve = (e, t) => ({
283
288
  removeItemsById: (t) => e((e) => ({
284
289
  itemIds: e.itemIds.filter((e) => !t.includes(e)),
285
290
  items: Object.fromEntries(Object.entries(e.items).filter(([e]) => !t.includes(e)))
@@ -306,7 +311,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
306
311
  itemIds: r
307
312
  };
308
313
  })
309
- }), _e = (e, t) => ({
314
+ }), ye = (e, t) => ({
310
315
  boardConfig: {},
311
316
  getBoardConfig: () => t().boardConfig,
312
317
  setBoardConfig: (t) => e({ boardConfig: t }),
@@ -314,7 +319,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
314
319
  ...e.boardConfig,
315
320
  ...t
316
321
  } }))
317
- }), ve = (e, t) => ({
322
+ }), be = (e, t) => ({
318
323
  session: {},
319
324
  getSessionInfo: () => t().session,
320
325
  setSessionInfo: (t) => e({ session: t }),
@@ -322,34 +327,34 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
322
327
  ...e.session,
323
328
  ...t
324
329
  } }))
325
- }), ye = ({ storeName: t, children: n, defaultValue: r }) => {
326
- let { wire: i } = O("room"), [o, c] = e.useState(!1), [l] = e.useState(() => s(fe({
330
+ }), xe = ({ storeName: t, children: n, defaultValue: r }) => {
331
+ let { wire: i } = k("room"), [o, c] = e.useState(!1), [l] = e.useState(() => s(I({
327
332
  wire: i,
328
333
  storeName: t,
329
334
  defaultValue: r
330
335
  }, (...e) => ({
331
- ...me(...e),
332
- ...he(...e),
333
336
  ...ge(...e),
334
337
  ..._e(...e),
335
- ...ve(...e)
338
+ ...ve(...e),
339
+ ...ye(...e),
340
+ ...be(...e)
336
341
  }))));
337
342
  return e.useEffect(() => {
338
343
  let e = l.subscribe((t) => {
339
344
  t.ready && (e(), c(!0));
340
345
  });
341
- }, [l]), o ? /* @__PURE__ */ a(pe.Provider, {
346
+ }, [l]), o ? /* @__PURE__ */ a(he.Provider, {
342
347
  value: l,
343
348
  children: n
344
349
  }) : null;
345
- }, I = (e) => {
346
- let t = r(pe);
350
+ }, L = (e) => {
351
+ let t = r(he);
347
352
  return c(t, e, l);
348
- }, be = () => {
349
- let [t, n] = I((e) => [e.itemIds, e.items]);
353
+ }, Se = () => {
354
+ let [t, n] = L((e) => [e.itemIds, e.items]);
350
355
  return e.useMemo(() => t.map((e) => n[e]), [t, n]);
351
- }, xe = () => {
352
- let [t, n, r] = I((e) => [
356
+ }, Ce = () => {
357
+ let [t, n, r] = L((e) => [
353
358
  e.items,
354
359
  e.itemIds,
355
360
  e.getItemList
@@ -364,7 +369,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
364
369
  n,
365
370
  r
366
371
  ]), i;
367
- }, Se = 5e4, Ce = e.createContext(), we = (e, t) => ({
372
+ }, we = 5e4, Te = e.createContext(), Ee = (e, t) => ({
368
373
  config: {
369
374
  itemTemplates: {},
370
375
  actions: {},
@@ -375,14 +380,14 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
375
380
  radius: 0
376
381
  },
377
382
  boardWrapperRect: {},
378
- boardSize: Se
383
+ boardSize: we
379
384
  },
380
385
  updateConfiguration: (t) => e((e) => ({ config: {
381
386
  ...e.config,
382
387
  ...t
383
388
  } })),
384
389
  getConfiguration: () => t().config
385
- }), Te = (e, t) => ({
390
+ }), De = (e, t) => ({
386
391
  boardState: {
387
392
  movingItems: !1,
388
393
  selecting: !1,
@@ -398,7 +403,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
398
403
  ...t
399
404
  } })),
400
405
  getBoardState: () => t().boardState
401
- }), Ee = (e, t) => ({
406
+ }), Oe = (e, t) => ({
402
407
  interactions: {},
403
408
  getInteractions: () => t().interactions,
404
409
  register: (t, n) => e((e) => {
@@ -420,7 +425,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
420
425
  setTimeout(() => e(n), 0);
421
426
  });
422
427
  }
423
- }), De = (e, t) => ({
428
+ }), ke = (e, t) => ({
424
429
  selection: [],
425
430
  setSelection: (t) => e((e) => JSON.stringify(e.selection) === JSON.stringify(t) ? {} : { selection: t }),
426
431
  getSelection: () => t().selection,
@@ -436,76 +441,34 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
436
441
  let n = e.selectionBox;
437
442
  return !n || !t || n.top !== t.top || n.left !== t.left || n.width !== t.width || n.height !== t.height ? { selectionBox: t } : {};
438
443
  })
439
- }), Oe = ({ children: t }) => {
444
+ }), Ae = ({ children: t }) => {
440
445
  let [n] = e.useState(() => s((...e) => ({
441
- ...we(...e),
442
- ...Te(...e),
443
446
  ...Ee(...e),
444
- ...De(...e)
447
+ ...De(...e),
448
+ ...Oe(...e),
449
+ ...ke(...e)
445
450
  })));
446
- return /* @__PURE__ */ a(Ce.Provider, {
451
+ return /* @__PURE__ */ a(Te.Provider, {
447
452
  value: n,
448
453
  children: t
449
454
  });
450
- }, L = (e) => {
451
- let t = r(Ce);
455
+ }, R = (e) => {
456
+ let t = r(Te);
452
457
  return c(t, e, l);
453
- }, ke = () => {
454
- let [e] = L((e) => [e.selection]);
458
+ }, je = () => {
459
+ let [e] = R((e) => [e.selection]);
455
460
  return e;
456
- }, Ae = () => {
457
- let [e] = L((e) => [e.getSelection]);
461
+ }, Me = () => {
462
+ let [e] = R((e) => [e.getSelection]);
458
463
  return e;
459
- }, je = 100, Me = 1e3, Ne = .8, R = !1, Pe = ({ x: e, y: t, scale: n, rotate: r, itemExtent: i, boardWrapperRect: a, boardSize: o }) => {
460
- let [s, c] = [e, t], l = ne([a.width / 2, a.height / 2], {
461
- translateX: s,
462
- translateY: c,
463
- scale: n,
464
- rotate: r
465
- }), u = {
466
- x: i.x + o / 2,
467
- y: i.y + o / 2
468
- }, d = {
469
- x: o / 2,
470
- y: o / 2
471
- }, f = j(l, [u.x, u.y]), p = Math.min(a.width, a.height), m = i.radius + p / 2 / n - je / n;
472
- if (f > m) {
473
- let e = re({
474
- x: l[0],
475
- y: l[1]
476
- }, u, u, m - 1 / n)[0], [t, i] = M([-e.x, -e.y], {
477
- translateX: a.width / 2,
478
- translateY: a.height / 2,
479
- scale: n,
480
- rotate: r
481
- });
482
- s = t, c = i;
483
- }
484
- let h = j(l, [d.x, d.y]), g = o / 2 - j([0, 0], [a.width, a.height]) / n;
485
- if (h > g) {
486
- let e = re({
487
- x: l[0],
488
- y: l[1]
489
- }, d, d, g - 1 / n)[0];
490
- if (e) {
491
- let [t, i] = M([-e.x, -e.y], {
492
- translateX: a.width / 2,
493
- translateY: a.height / 2,
494
- scale: n,
495
- rotate: r
496
- });
497
- s = t, c = i;
498
- }
499
- }
500
- return [s, c];
501
- }, z = () => {
502
- let [t, n, r, i, a] = L((e) => [
464
+ }, Ne = 1e3, Pe = .8, z = !1, B = () => {
465
+ let [t, n, r, i, a] = R((e) => [
503
466
  e.getBoardState,
504
467
  e.updateBoardState,
505
468
  e.config.itemExtent,
506
469
  e.getConfiguration,
507
470
  e.updateConfiguration
508
- ]), o = e.useRef([.15, 5]), [s] = I((e) => [e.getItemList]), c = e.useCallback(() => {
471
+ ]), o = e.useRef([.15, 5]), [s] = L((e) => [e.getItemList]), c = e.useCallback(() => {
509
472
  let { translateX: e, translateY: n, scale: r, rotate: i } = t();
510
473
  return {
511
474
  translateX: e,
@@ -513,39 +476,30 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
513
476
  scale: r,
514
477
  rotate: i
515
478
  };
516
- }, [t]), l = e.useCallback((e, n) => ne([e, n], t()), [t]), d = e.useCallback((e, n) => M([e, n], t()), [t]), f = e.useCallback((e, n) => {
479
+ }, [t]), l = e.useCallback((e, n) => oe([e, n], t()), [t]), d = e.useCallback((e, n) => M([e, n], t()), [t]), f = e.useCallback((e, n) => {
517
480
  let { scale: r, rotate: i } = t();
518
- return ne([e, n], {
481
+ return oe([e, n], {
519
482
  translateX: 0,
520
483
  translateY: 0,
521
484
  rotate: i,
522
485
  scale: r
523
486
  });
524
487
  }, [t]), p = e.useCallback((e) => e > o.current[1] ? o.current[1] : e < o.current[0] ? o.current[0] : e, []), m = e.useCallback((e) => {
525
- let { itemExtent: r, boardWrapperRect: a, boardSize: o } = i(), s = t(), { translateX: c, translateY: l, scale: u, rotate: d } = {
526
- ...s,
527
- ...e(s)
488
+ let r = t(), { translateX: i, translateY: a, scale: o, rotate: s } = {
489
+ ...r,
490
+ ...e(r)
528
491
  };
529
- R && console.log("New expected values: ", c, l, u, d);
530
- let f = p(u), [m, h] = [c, l];
531
- (c !== s.translateX || l !== s.translateY) && ([m, h] = Pe({
532
- x: c,
533
- y: l,
534
- scale: f,
535
- rotate: d,
536
- itemExtent: r,
537
- boardWrapperRect: a,
538
- boardSize: o
539
- })), R && console.log("New fixed values: ", m, h, f, d), n({
540
- translateX: isNaN(m) ? 0 : m,
541
- translateY: isNaN(h) ? 0 : h,
542
- scale: isNaN(f) ? p(1) : f,
543
- rotate: isNaN(d) ? 0 : d
492
+ z && console.log("New expected values: ", i, a, o, s);
493
+ let c = p(o), l = i, u = a;
494
+ z && console.log("New fixed values: ", l, u, c, s), n({
495
+ translateX: Number.isFinite(l) ? l : r.translateX,
496
+ translateY: Number.isFinite(u) ? u : r.translateY,
497
+ scale: Number.isFinite(c) ? c : p(1),
498
+ rotate: Number.isFinite(s) ? s : r.rotate
544
499
  });
545
500
  }, [
546
501
  p,
547
502
  t,
548
- i,
549
503
  n
550
504
  ]), h = e.useCallback((e) => {
551
505
  let t = (t) => ({
@@ -578,21 +532,21 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
578
532
  i,
579
533
  m
580
534
  ]), _ = e.useCallback(({ x: e, y: n, radius: r }) => {
581
- let { rotate: a } = t(), { boardWrapperRect: o, boardSize: s } = i(), [c, l, u] = [
535
+ let { rotate: a } = t(), { boardWrapperRect: o } = i(), [s, c, l] = [
582
536
  e || 0,
583
537
  n || 0,
584
538
  r || 2e3
585
- ], d = o.width / (u * 2), f = o.height / (u * 2), h = p(Math.min(d, f) * Ne), [g, _] = M([-s / 2 - c, -s / 2 - l], {
539
+ ], u = o.width / (l * 2), d = o.height / (l * 2), f = p(Math.min(u, d) * Pe), [h, g] = M([-s, -c], {
586
540
  translateX: o.width / 2,
587
541
  translateY: o.height / 2,
588
- scale: h,
542
+ scale: f,
589
543
  rotate: a
590
544
  });
591
545
  m((e) => ({
592
546
  ...e,
593
- translateX: g,
594
- translateY: _,
595
- scale: h
547
+ translateX: h,
548
+ translateY: g,
549
+ scale: f
596
550
  }));
597
551
  }, [
598
552
  p,
@@ -600,25 +554,34 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
600
554
  i,
601
555
  m
602
556
  ]), v = e.useCallback(() => {
603
- let { boardWrapperRect: e, boardSize: t } = i(), [n, r] = l(e.width / 2, e.height / 2);
557
+ let { boardWrapperRect: e } = i(), [t, n] = l(e.width / 2, e.height / 2);
604
558
  return {
605
- x: n - t / 2,
606
- y: r - t / 2
559
+ x: t,
560
+ y: n
607
561
  };
608
562
  }, [l, i]), y = e.useCallback(() => {
609
- let e = s(), { boardSize: t, uid: n } = i(), r = e.reduce((e, t) => {
610
- let r = P(n, t.id);
611
- 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;
563
+ let e = s(), { uid: t } = i(), n = e.reduce((e, n) => {
564
+ let r = P(t, n.id);
565
+ 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;
612
566
  }, {
613
- left: t / 2,
614
- top: t / 2,
615
- right: -t / 2,
616
- bottom: -t / 2
617
- }), o = {
618
- x: (r.right + r.left) / 2,
619
- y: (r.bottom + r.top) / 2
567
+ left: Infinity,
568
+ top: Infinity,
569
+ right: -Infinity,
570
+ bottom: -Infinity
571
+ });
572
+ if (!Number.isFinite(n.left)) {
573
+ a({ itemExtent: {
574
+ x: 0,
575
+ y: 0,
576
+ radius: Ne
577
+ } });
578
+ return;
579
+ }
580
+ let r = {
581
+ x: (n.right + n.left) / 2,
582
+ y: (n.bottom + n.top) / 2
620
583
  };
621
- o.radius = Math.max(j([o.x, o.y], [r.left, r.top]), Me), a({ itemExtent: o });
584
+ r.radius = Math.max(ie([r.x, r.y], [n.left, n.top]), Ne), a({ itemExtent: r });
622
585
  }, [
623
586
  i,
624
587
  s,
@@ -637,7 +600,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
637
600
  ]), x = u(() => y(), [y], 200);
638
601
  return e.useEffect(() => {
639
602
  window.debugUpdateExtent = () => y(), window.debugDisplayExtent = () => console.log(i().itemExtent), window.debugSetDebug = () => {
640
- R = !0;
603
+ z = !0;
641
604
  };
642
605
  }, [i, y]), {
643
606
  setDim: m,
@@ -653,8 +616,8 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
653
616
  fromWrapperToBoard: l,
654
617
  fromBoardToWrapper: d
655
618
  };
656
- }, B = (t) => {
657
- let [n, r, i] = L(({ register: e, unregister: t, callInteractions: n }) => [
619
+ }, V = (t) => {
620
+ let [n, r, i] = R(({ register: e, unregister: t, callInteractions: n }) => [
658
621
  e,
659
622
  t,
660
623
  n
@@ -671,13 +634,13 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
671
634
  i(t, e);
672
635
  }, [i, t])
673
636
  };
674
- }, V = () => {
675
- let { call: t } = B("place"), { call: n } = B("delete"), { getCenter: r, updateItemExtent: i } = z(), [a, o, s, c] = L((e) => [
637
+ }, H = () => {
638
+ let { call: t } = V("place"), { call: n } = V("delete"), { getCenter: r, updateItemExtent: i } = B(), [a, o, s, c] = R((e) => [
676
639
  e.clear,
677
640
  e.reverse,
678
641
  e.unselect,
679
642
  e.getConfiguration
680
- ]), { getItems: l, getItemIds: u, setItemIds: d, updateItems: f, moveItems: p, removeItemsById: m, getItemList: h, insertItems: g, setItemList: _ } = I(({ getItems: e, getItemIds: t, setItemIds: n, updateItems: r, moveItems: i, removeItemsById: a, getItemList: o, insertItems: s, setItemList: c }) => ({
643
+ ]), { getItems: l, getItemIds: u, setItemIds: d, updateItems: f, moveItems: p, removeItemsById: m, getItemList: h, insertItems: g, setItemList: _ } = L(({ getItems: e, getItemIds: t, setItemIds: n, updateItems: r, moveItems: i, removeItemsById: a, getItemList: o, insertItems: s, setItemList: c }) => ({
681
644
  getItems: e,
682
645
  getItemIds: t,
683
646
  setItemIds: n,
@@ -711,7 +674,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
711
674
  ]), b = e.useCallback((e, t, n = !1) => {
712
675
  v([e], t, n);
713
676
  }, [v]), x = e.useCallback((e, t) => {
714
- p(ce(l(), u(), e), t);
677
+ p(de(l(), u(), e), t);
715
678
  }, [
716
679
  u,
717
680
  l,
@@ -733,7 +696,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
733
696
  },
734
697
  ...e.grid
735
698
  };
736
- return le({
699
+ return fe({
737
700
  x: e.x,
738
701
  y: e.y,
739
702
  width: i.clientWidth,
@@ -741,7 +704,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
741
704
  }, a);
742
705
  }, !0);
743
706
  }, [c, v]), w = e.useCallback((e, n) => {
744
- let r = ce(l(), u(), e);
707
+ let r = de(l(), u(), e);
745
708
  S(r), v(r, { moving: !1 }, !0), C(r, n), t(e), i();
746
709
  }, [
747
710
  v,
@@ -751,16 +714,16 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
751
714
  S,
752
715
  C,
753
716
  i
754
- ]), T = e.useCallback((e) => {
717
+ ]), ee = e.useCallback((e) => {
755
718
  d(e);
756
- }, [d]), E = e.useCallback((e) => {
719
+ }, [d]), T = e.useCallback((e) => {
757
720
  let t = u(), n = t.filter((t) => e.includes(t)), r = t.map((t) => e.includes(t) ? n.pop() : t);
758
721
  d(r), o();
759
722
  }, [
760
723
  u,
761
724
  o,
762
725
  d
763
- ]), ee = e.useCallback((e, t) => {
726
+ ]), E = e.useCallback((e, t) => {
764
727
  let n = l(), r = Object.fromEntries(t.map((t, r) => {
765
728
  let i = n[e[r]];
766
729
  return [t, {
@@ -777,7 +740,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
777
740
  u,
778
741
  d
779
742
  ]), D = e.useCallback((e, t) => {
780
- let n = r(), i = e.map((e, t) => !e.x || !e.y ? {
743
+ let n = r(), i = e.map((e, t) => e.x === void 0 || e.x === null || e.y === void 0 || e.y === null ? {
781
744
  ...e,
782
745
  x: n.x + 2 * t,
783
746
  y: n.y + 2 * t
@@ -789,39 +752,39 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
789
752
  r,
790
753
  g,
791
754
  w
792
- ]), O = e.useCallback((e, t) => {
755
+ ]), te = e.useCallback((e, t) => {
793
756
  D([e], t);
794
- }, [D]), j = e.useCallback((e) => {
757
+ }, [D]), O = e.useCallback((e) => {
795
758
  s(e), m(e), n(e);
796
759
  }, [
797
760
  s,
798
761
  m,
799
762
  n
800
- ]), te = e.useCallback((e) => {
763
+ ]), ne = e.useCallback((e) => {
801
764
  let t = l();
802
765
  return e.map((e) => t[e]);
803
766
  }, [l]);
804
767
  return {
805
768
  putItemsOnTop: S,
806
769
  batchUpdateItems: v,
807
- updateItemOrder: T,
770
+ updateItemOrder: ee,
808
771
  moveItems: x,
809
772
  placeItems: w,
810
773
  updateItem: b,
811
- swapItems: ee,
812
- reverseItemsOrder: E,
774
+ swapItems: E,
775
+ reverseItemsOrder: T,
813
776
  setItemList: y,
814
- pushItem: O,
777
+ pushItem: te,
815
778
  pushItems: D,
816
- removeItems: j,
779
+ removeItems: O,
817
780
  getItemList: h,
818
781
  findElementUnderPointer: e.useCallback(({ target: e, clientX: t, clientY: n }, { returnLocked: r = !1, passLocked: i = !1 } = {}) => {
819
782
  if (["INPUT", "TEXTAREA"].includes(e.tagName)) return null;
820
- let a = A(e, "item");
783
+ let a = j(e, "item");
821
784
  if (a) {
822
- if (k(a, "selected")) return a;
823
- if (!i && k(a, "locked") && !k(e, "passthrough")) return r ? a : null;
824
- if (k(e, "passthrough")) {
785
+ if (A(a, "selected")) return a;
786
+ if (!i && A(a, "locked") && !A(e, "passthrough")) return r ? a : null;
787
+ if (A(e, "passthrough")) {
825
788
  let e = u(), { uid: r } = c(), o = e.reduce((e, i) => {
826
789
  let a = P(r, i), o = a.getBoundingClientRect();
827
790
  return N({
@@ -831,14 +794,14 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
831
794
  }, []);
832
795
  for (let e = 0; e < o.length; e += 1) {
833
796
  let t = o[e];
834
- if (t !== a && (i || !k(t, "locked"))) return t;
797
+ if (t !== a && (i || !A(t, "locked"))) return t;
835
798
  }
836
799
  return null;
837
800
  }
838
801
  }
839
802
  return a;
840
803
  }, [c, u]),
841
- getItems: te
804
+ getItems: ne
842
805
  };
843
806
  }, Fe = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
844
807
  t.exports = function e(t, n) {
@@ -890,7 +853,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
890
853
  let { actions: n = Ie(e, t) } = e;
891
854
  return n.map((e) => typeof e == "string" ? { name: e } : e);
892
855
  }, Re = () => {
893
- let [t, r] = I((e) => [e.items, e.getItems]), [i, a, o] = L((e) => [
856
+ let [t, r] = L((e) => [e.items, e.getItems]), [i, a, o] = R((e) => [
894
857
  e.config.itemTemplates,
895
858
  e.selection,
896
859
  e.getSelection
@@ -924,31 +887,27 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
924
887
  p
925
888
  ], 100), { availableActions: s };
926
889
  }, ze = () => {
927
- let [e] = L((e) => [e.selectionBox]);
890
+ let [e] = R((e) => [e.selectionBox]);
928
891
  return e;
929
- }, Be = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict", H = (e = 21) => {
930
- let t = "", n = crypto.getRandomValues(new Uint8Array(e |= 0));
931
- for (; e--;) t += Be[n[e] & 63];
932
- return t;
933
- }, Ve = e.createContext(), He = (e) => {
892
+ }, Be = e.createContext(), Ve = (e) => {
934
893
  localStorage.setItem("user", JSON.stringify(e));
935
- }, Ue = () => {
894
+ }, He = () => {
936
895
  if (localStorage.user) {
937
896
  let e = {
938
897
  name: "Player",
939
- color: de(),
940
- uid: H(),
898
+ color: me(),
899
+ uid: w(),
941
900
  ...JSON.parse(localStorage.user)
942
901
  };
943
- return He(e), e;
902
+ return Ve(e), e;
944
903
  }
945
904
  let e = {
946
905
  name: "Player",
947
- color: de(),
948
- uid: H()
906
+ color: me(),
907
+ uid: w()
949
908
  };
950
- return He(e), e;
951
- }, We = (e) => (t, n) => ({
909
+ return Ve(e), e;
910
+ }, Ue = (e) => (t, n) => ({
952
911
  isSpaceMaster: !1,
953
912
  users: {},
954
913
  getUser: () => n().users[e],
@@ -971,7 +930,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
971
930
  id: r,
972
931
  uid: t.users[r].uid
973
932
  };
974
- return a.id === e && He(a), setTimeout(() => n().electSpaceMaster(), 100), { users: {
933
+ return a.id === e && Ve(a), setTimeout(() => n().electSpaceMaster(), 100), { users: {
975
934
  ...t.users,
976
935
  [r]: a
977
936
  } };
@@ -994,7 +953,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
994
953
  e < i.timestamp && (i.id = t, i.timestamp = e);
995
954
  }), t({ isSpaceMaster: i.id === e });
996
955
  }
997
- }), Ge = (e) => ({
956
+ }), We = (e) => ({
998
957
  cursors: {},
999
958
  moveCursor: (t, n) => e((e) => ({ cursors: {
1000
959
  ...e.cursors,
@@ -1004,12 +963,12 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
1004
963
  let n = { ...e.cursors };
1005
964
  return delete n[t], { cursors: n };
1006
965
  })
1007
- }), Ke = ({ storeName: t, children: n }) => {
1008
- let { wire: r, isMaster: i } = O("room"), [o, c] = e.useState(null), [l, u] = e.useState(!1), d = e.useRef(!1);
966
+ }), Ge = ({ storeName: t, children: n }) => {
967
+ let { wire: r, isMaster: i } = k("room"), [o, c] = e.useState(null), [l, u] = e.useState(!1), d = e.useRef(!1);
1009
968
  return e.useEffect(() => {
1010
969
  let e = !0, n = [];
1011
970
  if (!o && !d.current) return d.current = !0, (() => {
1012
- let n = s(fe({
971
+ let n = s(I({
1013
972
  wire: r,
1014
973
  storeName: t,
1015
974
  noSync: [
@@ -1019,8 +978,8 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
1019
978
  "electSpaceMaster"
1020
979
  ]
1021
980
  }, (...e) => ({
1022
- ...We(r.userId)(...e),
1023
- ...Ge(...e)
981
+ ...Ue(r.userId)(...e),
982
+ ...We(...e)
1024
983
  }), r, t)), i = n.subscribe((t) => {
1025
984
  t.ready && (i(), e && c(n));
1026
985
  });
@@ -1034,7 +993,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
1034
993
  r.userId
1035
994
  ]), e.useEffect(() => {
1036
995
  if (o) return o.getState().addUser({
1037
- ...Ue(),
996
+ ...He(),
1038
997
  id: r.userId
1039
998
  }), u(!0), () => {
1040
999
  o.getState().removeUser(r.userId);
@@ -1062,14 +1021,14 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
1062
1021
  i,
1063
1022
  o,
1064
1023
  r
1065
- ]), l ? /* @__PURE__ */ a(Ve.Provider, {
1024
+ ]), l ? /* @__PURE__ */ a(Be.Provider, {
1066
1025
  value: o,
1067
1026
  children: n
1068
1027
  }) : null;
1069
1028
  }, U = (e) => {
1070
- let t = r(Ve);
1029
+ let t = r(Be);
1071
1030
  return c(t, e, l);
1072
- }, qe = () => {
1031
+ }, Ke = () => {
1073
1032
  let [t, n, r, i, a] = U((e) => [
1074
1033
  e.isSpaceMaster,
1075
1034
  e.getUser(),
@@ -1088,8 +1047,8 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
1088
1047
  }, [n, o]),
1089
1048
  joinSpace: a
1090
1049
  };
1091
- }, Je = () => {
1092
- let [t, n, r] = I((e) => [
1050
+ }, qe = () => {
1051
+ let [t, n, r] = L((e) => [
1093
1052
  e.boardConfig,
1094
1053
  e.getBoardConfig,
1095
1054
  e.setBoardConfig
@@ -1100,11 +1059,11 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
1100
1059
  let i = n(), a = t(i);
1101
1060
  r(a);
1102
1061
  }, [n, r])];
1103
- }, Ye = () => {
1104
- let [e] = L((e) => [e.boardState]);
1062
+ }, Je = () => {
1063
+ let [e] = R((e) => [e.boardState]);
1105
1064
  return e;
1106
- }, Xe = () => {
1107
- let [e, t, n, r] = I((e) => [
1065
+ }, Ye = () => {
1066
+ let [e, t, n, r] = L((e) => [
1108
1067
  e.getSessionInfo,
1109
1068
  e.setSessionInfo,
1110
1069
  e.updateSessionInfo,
@@ -1116,7 +1075,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
1116
1075
  sessionInfo: r,
1117
1076
  updateSessionInfo: n
1118
1077
  };
1119
- }, Ze = e.createContext(), Qe = ({ user: { name: e, uid: t, color: n }, content: r }) => ({
1078
+ }, Xe = e.createContext(), Ze = ({ user: { name: e, uid: t, color: n }, content: r }) => ({
1120
1079
  type: "message",
1121
1080
  user: {
1122
1081
  name: e,
@@ -1124,9 +1083,9 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
1124
1083
  color: n
1125
1084
  },
1126
1085
  content: r,
1127
- uid: H(),
1086
+ uid: w(),
1128
1087
  timestamp: (/* @__PURE__ */ new Date()).toISOString()
1129
- }), $e = (e, t) => ({
1088
+ }), Qe = (e, t) => ({
1130
1089
  messages: [],
1131
1090
  setMessages: (t) => e({ messages: t.map((e) => ({
1132
1091
  ...e,
@@ -1137,28 +1096,28 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
1137
1096
  timestamp: Date.parse(t.timestamp)
1138
1097
  }] })),
1139
1098
  sendMessage: (e, n) => {
1140
- let r = Qe({
1099
+ let r = Ze({
1141
1100
  user: e,
1142
1101
  content: n
1143
1102
  });
1144
1103
  r && t().addMessage(r);
1145
1104
  }
1146
- }), et = ({ storeName: t, children: n, defaultValue: r = [] }) => {
1147
- let { wire: i } = O("room"), [o] = e.useState(() => s(fe({
1105
+ }), $e = ({ storeName: t, children: n, defaultValue: r = [] }) => {
1106
+ let { wire: i } = k("room"), [o] = e.useState(() => s(I({
1148
1107
  wire: i,
1149
1108
  storeName: t,
1150
1109
  defaultValue: r,
1151
1110
  noSync: ["sendMessage"]
1152
- }, (...e) => ({ ...$e(...e) }))));
1153
- return /* @__PURE__ */ a(Ze.Provider, {
1111
+ }, (...e) => ({ ...Qe(...e) }))));
1112
+ return /* @__PURE__ */ a(Xe.Provider, {
1154
1113
  value: o,
1155
1114
  children: n
1156
1115
  });
1157
- }, tt = (e) => {
1158
- let t = r(Ze);
1116
+ }, et = (e) => {
1117
+ let t = r(Xe);
1159
1118
  return c(t, e, l);
1160
- }, nt = () => {}, rt = (t = nt) => {
1161
- let n = U((e) => e.getUser()), [r, i, a] = tt((e) => [
1119
+ }, tt = () => {}, nt = (t = tt) => {
1120
+ let n = U((e) => e.getUser()), [r, i, a] = et((e) => [
1162
1121
  e.messages,
1163
1122
  e.setMessages,
1164
1123
  e.sendMessage
@@ -1172,41 +1131,41 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
1172
1131
  a(n, e);
1173
1132
  }, [n, a])
1174
1133
  };
1175
- }, it = ({ children: t, session: n }) => {
1134
+ }, rt = ({ children: t, session: n }) => {
1176
1135
  let r = U((e) => e.joinSpace);
1177
1136
  return e.useEffect(() => (r(n), () => {
1178
1137
  r(null);
1179
1138
  }), [r, n]), t;
1180
- }, at = ({ socket: t, room: n, session: r, items: i = [], messages: o = [], LoadingComponent: s, ...c }) => {
1181
- let [l] = e.useState(n || H()), [u] = e.useState(r || H()), [d] = e.useState(() => ({
1139
+ }, it = ({ socket: t, room: n, session: r, items: i = [], messages: o = [], LoadingComponent: s, ...c }) => {
1140
+ let [l] = e.useState(n || w()), [u] = e.useState(r || w()), [d] = e.useState(() => ({
1182
1141
  itemIds: i.map(({ id: e }) => e),
1183
1142
  items: Object.fromEntries(i.map((e) => [e.id, e]))
1184
1143
  }));
1185
- return O("room") ? /* @__PURE__ */ a(et, {
1144
+ return k("room") ? /* @__PURE__ */ a($e, {
1186
1145
  storeName: `${u}_messages`,
1187
1146
  defaultValue: o,
1188
- children: /* @__PURE__ */ a(Oe, { children: /* @__PURE__ */ a(ye, {
1147
+ children: /* @__PURE__ */ a(Ae, { children: /* @__PURE__ */ a(xe, {
1189
1148
  storeName: `${u}_item`,
1190
1149
  defaultValue: d,
1191
- children: /* @__PURE__ */ a(it, {
1150
+ children: /* @__PURE__ */ a(rt, {
1192
1151
  ...c,
1193
1152
  session: u
1194
1153
  })
1195
1154
  }) })
1196
- }) : /* @__PURE__ */ a(D, {
1155
+ }) : /* @__PURE__ */ a(re, {
1197
1156
  room: l,
1198
1157
  channel: "room",
1199
1158
  socket: t,
1200
1159
  LoadingComponent: s,
1201
- children: /* @__PURE__ */ a(Ke, {
1160
+ children: /* @__PURE__ */ a(Ge, {
1202
1161
  storeName: `${l}_users`,
1203
- children: /* @__PURE__ */ a(et, {
1162
+ children: /* @__PURE__ */ a($e, {
1204
1163
  storeName: `${u}_messages`,
1205
1164
  defaultValue: o,
1206
- children: /* @__PURE__ */ a(Oe, { children: /* @__PURE__ */ a(ye, {
1165
+ children: /* @__PURE__ */ a(Ae, { children: /* @__PURE__ */ a(xe, {
1207
1166
  storeName: `${u}_item`,
1208
1167
  defaultValue: d,
1209
- children: /* @__PURE__ */ a(it, {
1168
+ children: /* @__PURE__ */ a(rt, {
1210
1169
  ...c,
1211
1170
  session: u
1212
1171
  })
@@ -1214,19 +1173,19 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
1214
1173
  })
1215
1174
  })
1216
1175
  });
1217
- }, ot = ({ socket: t, room: n, children: r, LoadingComponent: i }) => {
1218
- let [o] = e.useState(n || H());
1219
- return /* @__PURE__ */ a(D, {
1176
+ }, at = ({ socket: t, room: n, children: r, LoadingComponent: i }) => {
1177
+ let [o] = e.useState(n || w());
1178
+ return /* @__PURE__ */ a(re, {
1220
1179
  room: o,
1221
1180
  channel: "room",
1222
1181
  socket: t,
1223
1182
  LoadingComponent: i,
1224
- children: /* @__PURE__ */ a(Ke, {
1183
+ children: /* @__PURE__ */ a(Ge, {
1225
1184
  storeName: `${o}_users`,
1226
1185
  children: r
1227
1186
  })
1228
1187
  });
1229
- }, st = { data: "" }, ct = (e) => {
1188
+ }, ot = { data: "" }, st = (e) => {
1230
1189
  if (typeof window == "object") {
1231
1190
  let t = (e ? e.querySelector("#_goober") : window._goober) || Object.assign(document.createElement("style"), {
1232
1191
  innerHTML: " ",
@@ -1234,23 +1193,23 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
1234
1193
  });
1235
1194
  return t.nonce = window.__nonce__, t.parentNode || (e || document.head).appendChild(t), t.firstChild;
1236
1195
  }
1237
- return e || st;
1238
- }, lt = /(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g, ut = /\/\*[^]*?\*\/| +/g, dt = /\n+/g, W = (e, t) => {
1196
+ return e || ot;
1197
+ }, ct = /(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g, lt = /\/\*[^]*?\*\/| +/g, ut = /\n+/g, W = (e, t) => {
1239
1198
  let n = "", r = "", i = "";
1240
1199
  for (let a in e) {
1241
1200
  let o = e[a];
1242
1201
  a[0] == "@" ? a[1] == "i" ? n = a + " " + o + ";" : r += a[1] == "f" ? W(o, a) : a + "{" + W(o, a[1] == "k" ? "" : t) + "}" : typeof o == "object" ? r += W(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 += W.p ? W.p(a, o) : a + ":" + o + ";");
1243
1202
  }
1244
1203
  return n + (t && i ? t + "{" + i + "}" : i) + r;
1245
- }, G = {}, ft = (e) => {
1204
+ }, G = {}, dt = (e) => {
1246
1205
  if (typeof e == "object") {
1247
1206
  let t = "";
1248
- for (let n in e) t += n + ft(e[n]);
1207
+ for (let n in e) t += n + dt(e[n]);
1249
1208
  return t;
1250
1209
  }
1251
1210
  return e;
1252
- }, pt = (e, t, n, r, i) => {
1253
- let a = ft(e), o = G[a] || (G[a] = ((e) => {
1211
+ }, ft = (e, t, n, r, i) => {
1212
+ let a = dt(e), o = G[a] || (G[a] = ((e) => {
1254
1213
  let t = 0, n = 11;
1255
1214
  for (; t < e.length;) n = 101 * n + e.charCodeAt(t++) >>> 0;
1256
1215
  return "go" + n;
@@ -1258,7 +1217,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
1258
1217
  if (!G[o]) {
1259
1218
  let t = a === e ? ((e) => {
1260
1219
  let t, n, r = [{}];
1261
- for (; t = lt.exec(e.replace(ut, ""));) t[4] ? r.shift() : t[3] ? (n = t[3].replace(dt, " ").trim(), r.unshift(r[0][n] = r[0][n] || {})) : r[0][t[1]] = t[2].replace(dt, " ").trim();
1220
+ 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();
1262
1221
  return r[0];
1263
1222
  })(e) : e;
1264
1223
  G[o] = W(i ? { ["@keyframes " + o]: t } : t, n ? "" : "." + o);
@@ -1267,7 +1226,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
1267
1226
  return n && (G.g = G[o]), ((e, t, n, r) => {
1268
1227
  r ? t.data = t.data.replace(r, e) : t.data.indexOf(e) === -1 && (t.data = n ? e + t.data : t.data + e);
1269
1228
  })(G[o], t, r, s), o;
1270
- }, mt = (e, t, n) => e.reduce((e, r, i) => {
1229
+ }, pt = (e, t, n) => e.reduce((e, r, i) => {
1271
1230
  let a = t[i];
1272
1231
  if (a && a.call) {
1273
1232
  let e = a(n), t = e && e.props && e.props.className || /^go/.test(e) && e;
@@ -1277,15 +1236,15 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
1277
1236
  }, "");
1278
1237
  function K(e) {
1279
1238
  let t = this || {}, n = e.call ? e(t.p) : e;
1280
- return pt(n.unshift ? n.raw ? mt(n, [].slice.call(arguments, 1), t.p) : n.reduce((e, n) => Object.assign(e, n && n.call ? n(t.p) : n), {}) : n, ct(t.target), t.g, t.o, t.k);
1239
+ 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);
1281
1240
  }
1282
1241
  K.bind({ g: 1 }), K.bind({ k: 1 });
1283
- function ht(e, t, n, r) {
1242
+ function mt(e, t, n, r) {
1284
1243
  W.p = t;
1285
1244
  }
1286
1245
  //#endregion
1287
1246
  //#region src/lib/board/Gesture.jsx
1288
- var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1247
+ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1289
1248
  t.exports = function e(t, n) {
1290
1249
  if (t === n) return !0;
1291
1250
  if (t && n && typeof t == "object" && typeof n == "object") {
@@ -1309,23 +1268,23 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1309
1268
  }
1310
1269
  return t !== t && n !== n;
1311
1270
  };
1312
- })))(), 1), _t = () => {
1271
+ })))(), 1), gt = () => {
1313
1272
  let e = navigator.userAgent.toLowerCase();
1314
1273
  return /mac os ?x 10/.test(e);
1315
- }, vt = (() => {
1274
+ }, _t = (() => {
1316
1275
  let e = document.createElement("iframe");
1317
1276
  e.src = "#", document.body.appendChild(e);
1318
1277
  let t = e.contentWindow.document;
1319
1278
  t.open(), t.write("<!DOCTYPE html><html><head></head><body><span>a</span></body></html>"), t.close();
1320
1279
  let n = t.body.firstElementChild.offsetHeight;
1321
1280
  return document.body.removeChild(e), n;
1322
- })(), yt = 800, bt = (e, t) => e[Object.keys(e).map((e) => Number(e)).find((e) => e !== t)], xt = ([e, t], [n, r]) => {
1281
+ })(), vt = 800, yt = (e, t) => e[Object.keys(e).map((e) => Number(e)).find((e) => e !== t)], bt = ([e, t], [n, r]) => {
1323
1282
  let i = Math.abs(e - n), a = Math.abs(t - r);
1324
1283
  return Math.hypot(i, a);
1325
- }, q = () => {}, St = (e) => (t) => {
1284
+ }, q = () => {}, xt = (e) => (t) => {
1326
1285
  let { event: n } = t;
1327
1286
  return n.isPropagationStopped() ? null : e(t);
1328
- }, Ct = (e) => async (...t) => {
1287
+ }, St = (e) => async (...t) => {
1329
1288
  try {
1330
1289
  await e(...t);
1331
1290
  } catch (e) {
@@ -1335,18 +1294,18 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1335
1294
  lastPromise = Promise.resolve(!0);
1336
1295
  add(e, ...t) {
1337
1296
  return new Promise((n, r) => {
1338
- this.lastPromise = this.lastPromise.then(() => St(Ct(e))(...t)).then(n).catch(r);
1297
+ this.lastPromise = this.lastPromise.then(() => xt(St(e))(...t)).then(n).catch(r);
1339
1298
  });
1340
1299
  }
1341
- }(), Y = ({ children: t, onDrag: n = q, onDragStart: r = q, onDragEnd: i = q, onPan: o = q, onTap: s = q, onLongTap: c = q, onDoubleTap: l = q, onZoom: u, mainAction: d = "drag" }) => {
1342
- let f = e.useRef(null), p = e.useRef({
1300
+ }(), Y = ({ children: t, onDrag: n = q, onDragStart: r = q, onDragEnd: i = q, onPan: o = q, onTap: s = q, onLongTap: c = q, onDoubleTap: l = q, onZoom: u, mainAction: d = "drag", fill: f = !1 }) => {
1301
+ let p = e.useRef(null), m = e.useRef({
1343
1302
  moving: !1,
1344
1303
  pointers: {},
1345
1304
  mainPointer: void 0
1346
- }), m = (e) => {
1305
+ }), h = (e) => {
1347
1306
  let { deltaX: t, deltaY: n, clientX: r, clientY: i, deltaMode: a, ctrlKey: s, altKey: c, metaKey: l, target: d } = e;
1348
- if (!(c || s && !_t())) {
1349
- if (_t() && !s) J.add(o, {
1307
+ if (!(c || s && !gt())) {
1308
+ if (gt() && !s) J.add(o, {
1350
1309
  deltaX: -2 * t,
1351
1310
  deltaY: -2 * n,
1352
1311
  button: 1,
@@ -1360,11 +1319,11 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1360
1319
  let t = n;
1361
1320
  switch (a) {
1362
1321
  case 1:
1363
- t *= vt;
1322
+ t *= _t;
1364
1323
  break;
1365
- case 2: t *= yt;
1324
+ case 2: t *= vt;
1366
1325
  }
1367
- _t() && (t *= 2), J.add(u, {
1326
+ gt() && (t *= 2), J.add(u, {
1368
1327
  scale: t,
1369
1328
  clientX: r,
1370
1329
  clientY: i,
@@ -1372,15 +1331,15 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1372
1331
  });
1373
1332
  }
1374
1333
  }
1375
- }, h = (e) => {
1334
+ }, g = (e) => {
1376
1335
  let { target: t, button: n, clientX: r, clientY: i, pointerId: a, altKey: o, ctrlKey: s, metaKey: l, isPrimary: u } = e;
1377
- if (p.current.pointers[a] = {
1336
+ if (m.current.pointers[a] = {
1378
1337
  clientX: r,
1379
1338
  clientY: i
1380
- }, u && (p.current.mainPointer = void 0), p.current.mainPointer !== void 0) {
1381
- if (p.current.mainPointer !== a) try {
1382
- let { clientX: e, clientY: t } = bt(p.current.pointers, a), n = (e + r) / 2, o = (t + i) / 2, s = xt([e, t], [r, i]);
1383
- Object.assign(p.current, {
1339
+ }, u && (m.current.mainPointer = void 0), m.current.mainPointer !== void 0) {
1340
+ if (m.current.mainPointer !== a) try {
1341
+ let { clientX: e, clientY: t } = yt(m.current.pointers, a), n = (e + r) / 2, o = (t + i) / 2, s = bt([e, t], [r, i]);
1342
+ Object.assign(m.current, {
1384
1343
  pressed: !0,
1385
1344
  moving: !1,
1386
1345
  gestureStart: !1,
@@ -1392,11 +1351,11 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1392
1351
  prevDistance: s
1393
1352
  });
1394
1353
  } catch (e) {
1395
- console.log("Error while getting other pointer. Ignoring", e), p.current.mainPointer;
1354
+ console.log("Error while getting other pointer. Ignoring", e), m.current.mainPointer;
1396
1355
  }
1397
1356
  return;
1398
1357
  }
1399
- p.current.mainPointer = a, Object.assign(p.current, {
1358
+ m.current.mainPointer = a, Object.assign(m.current, {
1400
1359
  pressed: !0,
1401
1360
  moving: !1,
1402
1361
  gestureStart: !1,
@@ -1411,7 +1370,7 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1411
1370
  target: t,
1412
1371
  timeStart: Date.now(),
1413
1372
  longTapTimeout: setTimeout(async () => {
1414
- p.current.noTap = !0, J.add(c, {
1373
+ m.current.noTap = !0, J.add(c, {
1415
1374
  clientX: r,
1416
1375
  clientY: i,
1417
1376
  altKey: o,
@@ -1427,89 +1386,89 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1427
1386
  } catch (e) {
1428
1387
  console.log("Fail to capture pointer", e);
1429
1388
  }
1430
- }, g = (e) => {
1431
- if (p.current.pressed) {
1432
- let { pointerId: t, clientX: i, clientY: a, altKey: s, shiftKey: c, ctrlKey: l, metaKey: m, buttons: h } = e;
1433
- p.current.pointers[t] = {
1389
+ }, _ = (e) => {
1390
+ if (m.current.pressed) {
1391
+ let { pointerId: t, clientX: i, clientY: a, altKey: s, shiftKey: c, ctrlKey: l, metaKey: f, buttons: h } = e;
1392
+ m.current.pointers[t] = {
1434
1393
  clientX: i,
1435
1394
  clientY: a
1436
- }, p.current.moving = !0;
1437
- let g = Object.keys(p.current.pointers).length === 2, _, v, y = 0;
1395
+ }, m.current.moving = !0;
1396
+ let g = Object.keys(m.current.pointers).length === 2, _, v, y = 0;
1438
1397
  if (g) {
1439
- let { clientX: e, clientY: n } = bt(p.current.pointers, t);
1440
- _ = (e + i) / 2, v = (n + a) / 2, y = xt([e, n], [i, a]);
1398
+ let { clientX: e, clientY: n } = yt(m.current.pointers, t);
1399
+ _ = (e + i) / 2, v = (n + a) / 2, y = bt([e, n], [i, a]);
1441
1400
  } else _ = i, v = a;
1442
- let b = c || s || l || m || h !== 1;
1401
+ let b = c || s || l || f || h !== 1;
1443
1402
  d !== "drag" && (b = !b);
1444
1403
  let x = !b, S = b;
1445
1404
  if (x) {
1446
- p.current.gestureStart || (f.current.style.cursor = "move", p.current.gestureStart = !0, clearTimeout(p.current.longTapTimeout), J.add(r, {
1405
+ m.current.gestureStart || (p.current.style.cursor = "move", m.current.gestureStart = !0, clearTimeout(m.current.longTapTimeout), J.add(r, {
1447
1406
  deltaX: 0,
1448
1407
  deltaY: 0,
1449
- startX: p.current.startX,
1450
- startY: p.current.startY,
1451
- clientX: p.current.startX,
1452
- clientY: p.current.startY,
1408
+ startX: m.current.startX,
1409
+ startY: m.current.startY,
1410
+ clientX: m.current.startX,
1411
+ clientY: m.current.startY,
1453
1412
  distanceX: 0,
1454
1413
  distanceY: 0,
1455
- button: p.current.currentButton,
1414
+ button: m.current.currentButton,
1456
1415
  altKey: s,
1457
1416
  shiftKey: c,
1458
1417
  ctrlKey: l,
1459
- metaKey: m,
1460
- target: p.current.target,
1461
- event: p.current.pointerDownEvent
1418
+ metaKey: f,
1419
+ target: m.current.target,
1420
+ event: m.current.pointerDownEvent
1462
1421
  }));
1463
- let t = _ - p.current.prevX, i = v - p.current.prevY, a = _ - p.current.startX, o = v - p.current.startY;
1422
+ let t = _ - m.current.prevX, i = v - m.current.prevY, a = _ - m.current.startX, o = v - m.current.startY;
1464
1423
  J.add(n, {
1465
1424
  deltaX: t,
1466
1425
  deltaY: i,
1467
- startX: p.current.startX,
1468
- startY: p.current.startY,
1426
+ startX: m.current.startX,
1427
+ startY: m.current.startY,
1469
1428
  clientX: _,
1470
1429
  clientY: v,
1471
1430
  distanceX: a,
1472
1431
  distanceY: o,
1473
- button: p.current.currentButton,
1432
+ button: m.current.currentButton,
1474
1433
  altKey: s,
1475
1434
  shiftKey: c,
1476
1435
  ctrlKey: l,
1477
- metaKey: m,
1478
- target: p.current.target,
1436
+ metaKey: f,
1437
+ target: m.current.target,
1479
1438
  event: e
1480
1439
  });
1481
1440
  }
1482
1441
  if (S) {
1483
- p.current.gestureStart || (f.current.style.cursor = "move", p.current.gestureStart = !0, clearTimeout(p.current.longTapTimeout));
1484
- let t = _ - p.current.prevX, n = v - p.current.prevY, { target: r } = p.current;
1442
+ m.current.gestureStart || (p.current.style.cursor = "move", m.current.gestureStart = !0, clearTimeout(m.current.longTapTimeout));
1443
+ let t = _ - m.current.prevX, n = v - m.current.prevY, { target: r } = m.current;
1485
1444
  if (J.add(o, {
1486
1445
  deltaX: t,
1487
1446
  deltaY: n,
1488
- button: p.current.currentButton,
1447
+ button: m.current.currentButton,
1489
1448
  altKey: s,
1490
1449
  shiftKey: c,
1491
1450
  ctrlKey: l,
1492
- metaKey: m,
1451
+ metaKey: f,
1493
1452
  target: r,
1494
1453
  event: e
1495
- }), y !== p.current.prevDistance && u) {
1496
- let t = p.current.prevDistance - y;
1454
+ }), y !== m.current.prevDistance && u) {
1455
+ let t = m.current.prevDistance - y;
1497
1456
  Math.abs(t) > 0 && (J.add(u, {
1498
1457
  scale: t * 3,
1499
1458
  clientX: _,
1500
1459
  clientY: v,
1501
1460
  event: e
1502
- }), p.current.prevDistance = y);
1461
+ }), m.current.prevDistance = y);
1503
1462
  }
1504
1463
  }
1505
- p.current.prevX = _, p.current.prevY = v;
1464
+ m.current.prevX = _, m.current.prevY = v;
1506
1465
  }
1507
- }, _ = (e) => {
1466
+ }, v = (e) => {
1508
1467
  let { clientX: t, clientY: n, altKey: r, shiftKey: a, ctrlKey: o, metaKey: c, target: l, pointerId: u } = e;
1509
- if (p.current.pointers[u]) {
1510
- if (delete p.current.pointers[u], p.current.mainPointer !== u) {
1511
- let { clientX: e, clientY: t } = p.current.pointers[p.current.mainPointer];
1512
- Object.assign(p.current, {
1468
+ if (m.current.pointers[u]) {
1469
+ if (delete m.current.pointers[u], m.current.mainPointer !== u) {
1470
+ let { clientX: e, clientY: t } = m.current.pointers[m.current.mainPointer];
1471
+ Object.assign(m.current, {
1513
1472
  prevX: e,
1514
1473
  prevY: t,
1515
1474
  prevDistance: 0,
@@ -1517,12 +1476,12 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1517
1476
  });
1518
1477
  return;
1519
1478
  }
1520
- for (; Object.keys(p.current.pointers).length > 0;) {
1521
- p.current.mainPointer = Number(Object.keys(p.current.pointers)[0]);
1479
+ for (; Object.keys(m.current.pointers).length > 0;) {
1480
+ m.current.mainPointer = Number(Object.keys(m.current.pointers)[0]);
1522
1481
  try {
1523
- p.current.target.setPointerCapture(p.current.mainPointer);
1524
- let { clientX: e, clientY: t } = p.current.pointers[p.current.mainPointer];
1525
- Object.assign(p.current, {
1482
+ m.current.target.setPointerCapture(m.current.mainPointer);
1483
+ let { clientX: e, clientY: t } = m.current.pointers[m.current.mainPointer];
1484
+ Object.assign(m.current, {
1526
1485
  prevX: e,
1527
1486
  prevY: t,
1528
1487
  prevDistance: 0,
@@ -1530,28 +1489,28 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1530
1489
  });
1531
1490
  return;
1532
1491
  } catch (e) {
1533
- console.log("Fails to set pointer capture", e), p.current.mainPointer = void 0, delete p.current.pointers[Object.keys(p.current.pointers)[0]];
1492
+ console.log("Fails to set pointer capture", e), m.current.mainPointer = void 0, delete m.current.pointers[Object.keys(m.current.pointers)[0]];
1534
1493
  }
1535
1494
  }
1536
- if (p.current.mainPointer = void 0, p.current.pressed = !1, clearTimeout(p.current.longTapTimeout), p.current.moving) p.current.moving = !1, J.add(i, {
1537
- deltaX: t - p.current.prevX,
1538
- deltaY: n - p.current.prevY,
1539
- startX: p.current.startX,
1540
- startY: p.current.startY,
1495
+ if (m.current.mainPointer = void 0, m.current.pressed = !1, clearTimeout(m.current.longTapTimeout), m.current.moving) m.current.moving = !1, J.add(i, {
1496
+ deltaX: t - m.current.prevX,
1497
+ deltaY: n - m.current.prevY,
1498
+ startX: m.current.startX,
1499
+ startY: m.current.startY,
1541
1500
  clientX: t,
1542
1501
  clientY: n,
1543
- distanceX: t - p.current.startX,
1544
- distanceY: n - p.current.startY,
1545
- button: p.current.currentButton,
1502
+ distanceX: t - m.current.startX,
1503
+ distanceY: n - m.current.startY,
1504
+ button: m.current.currentButton,
1546
1505
  altKey: r,
1547
1506
  shiftKey: a,
1548
1507
  ctrlKey: o,
1549
1508
  metaKey: c,
1550
1509
  event: e
1551
- }), f.current.style.cursor = "auto";
1510
+ }), p.current.style.cursor = "auto";
1552
1511
  else {
1553
1512
  let i = Date.now();
1554
- p.current.noTap ? p.current.noTap = !1 : p.current.timeStart - i < 300 && J.add(s, {
1513
+ m.current.noTap ? m.current.noTap = !1 : m.current.timeStart - i < 300 && J.add(s, {
1555
1514
  clientX: t,
1556
1515
  clientY: n,
1557
1516
  altKey: r,
@@ -1565,13 +1524,11 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1565
1524
  }
1566
1525
  };
1567
1526
  return /* @__PURE__ */ a("div", {
1568
- onWheel: m,
1569
- onPointerDown: h,
1570
- onPointerMove: g,
1571
- onPointerUp: _,
1572
- onPointerOut: _,
1573
- onPointerLeave: _,
1574
- onPointerCancel: _,
1527
+ onWheel: h,
1528
+ onPointerDown: g,
1529
+ onPointerMove: _,
1530
+ onPointerUp: v,
1531
+ onPointerCancel: v,
1575
1532
  onDoubleClick: (e) => {
1576
1533
  let { clientX: t, clientY: n, altKey: r, shiftKey: i, ctrlKey: a, metaKey: o, target: s } = e;
1577
1534
  J.add(l, {
@@ -1585,12 +1542,18 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1585
1542
  event: e
1586
1543
  });
1587
1544
  },
1588
- style: { touchAction: "none" },
1589
- ref: f,
1545
+ style: {
1546
+ touchAction: "none",
1547
+ ...f ? {
1548
+ position: "absolute",
1549
+ inset: 0
1550
+ } : {}
1551
+ },
1552
+ ref: p,
1590
1553
  children: t
1591
1554
  });
1592
- }, wt = ({ onResize: e, ...t }) => {
1593
- let [n] = L((e) => [e.getBoardState]);
1555
+ }, Ct = ({ onResize: e, ...t }) => {
1556
+ let [n] = R((e) => [e.getBoardState]);
1594
1557
  return /* @__PURE__ */ a(Y, {
1595
1558
  onDrag: ({ deltaX: t, deltaY: r, event: i }) => {
1596
1559
  i.stopPropagation();
@@ -1602,13 +1565,13 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1602
1565
  },
1603
1566
  children: /* @__PURE__ */ a("div", { ...t })
1604
1567
  });
1605
- }, Tt = K`
1568
+ }, wt = K`
1606
1569
  display: inline-block;
1607
1570
  transition: transform 150ms;
1608
1571
  user-select: none;
1609
1572
  padding: 2px;
1610
1573
  box-sizing: border-box;
1611
- `, Et = K`
1574
+ `, Tt = K`
1612
1575
  border: 2px dashed #db5034;
1613
1576
  padding: 0px;
1614
1577
  cursor: pointer;
@@ -1616,22 +1579,22 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1616
1579
  position: absolute;
1617
1580
  width: 0px;
1618
1581
  height: 0px;
1619
- `, Dt = K`
1582
+ `, Et = K`
1620
1583
  top: 0;
1621
1584
  left: 0;
1622
- `, Ot = K`
1585
+ `, Dt = K`
1623
1586
  top: 0;
1624
1587
  right: 0;
1625
- `, kt = K`
1588
+ `, Ot = K`
1626
1589
  bottom: 0;
1627
1590
  left: 0;
1628
- `, At = K`
1591
+ `, kt = K`
1629
1592
  bottom: 0;
1630
1593
  right: 0;
1631
- `, jt = K`
1594
+ `, At = K`
1632
1595
  top: 50%;
1633
1596
  left: 50%;
1634
- `, Z = K`
1597
+ `, jt = K`
1635
1598
  position: absolute;
1636
1599
 
1637
1600
  width: 10px;
@@ -1706,16 +1669,16 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1706
1669
  h: !0,
1707
1670
  b: !0
1708
1671
  }, Bt = 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 }) => {
1709
- let h = e.useRef(null), [g] = L((e) => [e.config.uid]), { component: _ = () => null, resizeDirections: v = zt, resize: y = Rt } = p[n], b = e.useCallback((e, n = !1) => t(s, e, n), [t, s]);
1672
+ let h = e.useRef(null), [g] = R((e) => [e.config.uid]), { component: _ = () => null, resizeDirections: v = zt, resize: y = Rt } = p[n], b = e.useCallback((e, n = !1) => t(s, e, n), [t, s]);
1710
1673
  e.useEffect(() => {
1711
1674
  h.current.className = d;
1712
1675
  }, [d]);
1713
1676
  let x = [
1714
1677
  "item",
1715
1678
  s,
1716
- Tt
1679
+ wt
1717
1680
  ];
1718
- c && x.push("locked"), f && (x.push("selected"), x.push(Et)), Array.isArray(l) && x.concat(l);
1681
+ c && x.push("locked"), f && (x.push("selected"), x.push(Tt)), Array.isArray(l) && x.concat(l);
1719
1682
  let S = x.join(" "), C = ({ width: e = 0, height: t = 0, keepRatio: n }) => {
1720
1683
  b((r) => {
1721
1684
  let { offsetWidth: i, offsetHeight: a } = h.current;
@@ -1730,9 +1693,9 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1730
1693
  });
1731
1694
  }, w = ({ width: e }) => {
1732
1695
  C({ width: e });
1733
- }, T = ({ height: e }) => {
1696
+ }, ee = ({ height: e }) => {
1734
1697
  C({ height: e });
1735
- }, E = ({ width: e }) => {
1698
+ }, T = ({ width: e }) => {
1736
1699
  C({
1737
1700
  height: e,
1738
1701
  width: e,
@@ -1761,29 +1724,29 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1761
1724
  setState: b
1762
1725
  })
1763
1726
  }),
1727
+ /* @__PURE__ */ a("div", { className: `corner ${X} ${Et}` }),
1764
1728
  /* @__PURE__ */ a("div", { className: `corner ${X} ${Dt}` }),
1765
- /* @__PURE__ */ a("div", { className: `corner ${X} ${Ot}` }),
1766
- /* @__PURE__ */ a("div", { className: `corner ${X} ${At}` }),
1767
1729
  /* @__PURE__ */ a("div", { className: `corner ${X} ${kt}` }),
1768
- /* @__PURE__ */ a("div", { className: `center ${X} ${jt}` }),
1730
+ /* @__PURE__ */ a("div", { className: `corner ${X} ${Ot}` }),
1731
+ /* @__PURE__ */ a("div", { className: `center ${X} ${At}` }),
1769
1732
  m && /* @__PURE__ */ o(i, { children: [
1770
- v.b && /* @__PURE__ */ a(wt, {
1771
- className: `${Z} ${Pt}`,
1772
- onResize: E
1773
- }),
1774
- v.h && /* @__PURE__ */ a(wt, {
1775
- className: `${Z} ${Nt}`,
1733
+ v.b && /* @__PURE__ */ a(Ct, {
1734
+ className: `${jt} ${Pt}`,
1776
1735
  onResize: T
1777
1736
  }),
1778
- v.w && /* @__PURE__ */ a(wt, {
1779
- className: `${Z} ${Mt}`,
1737
+ v.h && /* @__PURE__ */ a(Ct, {
1738
+ className: `${jt} ${Nt}`,
1739
+ onResize: ee
1740
+ }),
1741
+ v.w && /* @__PURE__ */ a(Ct, {
1742
+ className: `${jt} ${Mt}`,
1780
1743
  onResize: w
1781
1744
  })
1782
1745
  ] })
1783
1746
  ]
1784
1747
  })
1785
1748
  });
1786
- }, ({ state: e, setState: t, isSelected: n, showResizeHandle: r }, { state: i, setState: a, isSelected: o, showResizeHandle: s }) => n === o && r === s && t === a && (0, gt.default)(e, i)), Vt = (e) => e, Ht = t(({ state: e = {}, getCurrentUser: t, className: n, ...r }) => {
1749
+ }, ({ 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)), Vt = (e) => e, Ht = t(({ state: e = {}, getCurrentUser: t, className: n, ...r }) => {
1787
1750
  if (!r.itemMap[e.type]) return null;
1788
1751
  let { stateHook: i = Vt } = 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);
1789
1752
  return /* @__PURE__ */ a("div", {
@@ -1799,27 +1762,26 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1799
1762
  })
1800
1763
  });
1801
1764
  }), Ut = () => {
1802
- let { updateItem: e } = V(), [t, n] = I((e) => [e.itemIds, e.items]), [r, i, o, s] = L((e) => [
1803
- e.config.boardSize,
1765
+ let { updateItem: e } = H(), [t, n] = L((e) => [e.itemIds, e.items]), [r, i, o] = R((e) => [
1804
1766
  e.config.showResizeHandle,
1805
1767
  e.config.itemTemplates,
1806
1768
  e.selection
1807
- ]), [c] = U((e) => [e.getUser]), l = K({
1769
+ ]), [s] = U((e) => [e.getUser]), c = K({
1808
1770
  position: "absolute",
1809
- top: `${r / 2}px`,
1810
- left: `${r / 2}px`,
1771
+ top: 0,
1772
+ left: 0,
1773
+ pointerEvents: "auto",
1811
1774
  display: "inline-block",
1812
1775
  lineHeight: 0
1813
1776
  });
1814
1777
  return t.map((t) => /* @__PURE__ */ a(Ht, {
1815
1778
  state: n[t],
1816
1779
  setState: e,
1817
- isSelected: s.includes(t),
1818
- itemMap: o,
1819
- boardSize: r,
1820
- getCurrentUser: c,
1821
- showResizeHandle: i,
1822
- className: l
1780
+ isSelected: o.includes(t),
1781
+ itemMap: i,
1782
+ getCurrentUser: s,
1783
+ showResizeHandle: r,
1784
+ className: c
1823
1785
  }, t));
1824
1786
  }, Wt = K({
1825
1787
  zIndex: 210,
@@ -1832,18 +1794,17 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1832
1794
  let i = r[0];
1833
1795
  return Array.from(t.getElementsByClassName("item")).filter((t) => {
1834
1796
  let r = e[F(t)];
1835
- return !r || !n && r.locked ? !1 : ae(t, i);
1797
+ return !r || !n && r.locked ? !1 : ce(t, i);
1836
1798
  }).map((e) => F(e));
1837
1799
  }, Kt = ({ children: t, moveFirst: n }) => {
1838
- let [r, i, s, c, l, u] = L((e) => [
1800
+ let [r, i, s, c, l, u] = R((e) => [
1839
1801
  e.getSelection,
1840
1802
  e.clear,
1841
1803
  e.setSelection,
1842
1804
  e.select,
1843
1805
  e.getConfiguration,
1844
- e.getBoardState,
1845
1806
  e.updateBoardState
1846
- ]), { findElementUnderPointer: d } = V(), [p] = I((e) => [e.getItems]), [m, h] = e.useState({}), [, g] = e.useTransition(), [_, v] = e.useState(!1), y = e.useRef(null), b = e.useRef({ moving: !1 });
1807
+ ]), { findElementUnderPointer: d } = H(), [p] = L((e) => [e.getItems]), [m, h] = e.useState({}), [, g] = e.useTransition(), [_, v] = e.useState(!1), y = e.useRef(null), b = e.useRef({ moving: !1 });
1847
1808
  return f(document, "keydown", (e) => {
1848
1809
  e.key === "l" && v(!0);
1849
1810
  }), f(document, "keyup", (e) => {
@@ -1864,6 +1825,7 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1864
1825
  s,
1865
1826
  _
1866
1827
  ]), /* @__PURE__ */ a(Y, {
1828
+ fill: !0,
1867
1829
  onDragStart: async (e) => {
1868
1830
  await d(e) || (b.current.moving = !0, g(() => {
1869
1831
  u({ selecting: !0 });
@@ -1884,20 +1846,20 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1884
1846
  }), b.current.moving = !1, h({ moving: !1 }), y.current.style.cursor = "auto");
1885
1847
  },
1886
1848
  onTap: (e) => {
1887
- let { target: t, ctrlKey: n, metaKey: a } = e, o = d(e);
1888
- if (!o && A(t, "board")) i();
1849
+ let { ctrlKey: t, metaKey: n } = e, a = d(e);
1850
+ if (!a) i();
1889
1851
  else {
1890
- let e = F(o);
1852
+ let e = F(a);
1891
1853
  if (!e) {
1892
1854
  i();
1893
1855
  return;
1894
1856
  }
1895
- let t = r();
1896
- o && !t.includes(e) && (n || a ? c([e]) : s([e]));
1857
+ let o = r();
1858
+ a && !o.includes(e) && (t || n ? c([e]) : s([e]));
1897
1859
  }
1898
1860
  },
1899
1861
  onLongTap: ({ target: e }) => {
1900
- let t = A(e, "item");
1862
+ let t = j(e, "item");
1901
1863
  if (t) {
1902
1864
  let e = F(t);
1903
1865
  s([e]);
@@ -1906,6 +1868,10 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1906
1868
  mainAction: n ? "pan" : "drag",
1907
1869
  children: /* @__PURE__ */ o("div", {
1908
1870
  ref: y,
1871
+ style: {
1872
+ position: "absolute",
1873
+ inset: 0
1874
+ },
1909
1875
  children: [m.moving && /* @__PURE__ */ a("div", {
1910
1876
  style: {
1911
1877
  transform: `translate(${m.left}px, ${m.top}px)`,
@@ -1917,13 +1883,13 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1917
1883
  })
1918
1884
  });
1919
1885
  }, qt = ({ children: t }) => {
1920
- let { moveItems: n, placeItems: r, findElementUnderPointer: i } = V(), { vectorFromWrapperToBoard: o } = z(), [s, c, l, u, d] = L((e) => [
1886
+ let { moveItems: n, placeItems: r, findElementUnderPointer: i } = H(), { vectorFromWrapperToBoard: o } = B(), [s, c, l, u, d] = R((e) => [
1921
1887
  e.select,
1922
1888
  e.setSelection,
1923
1889
  e.getSelection,
1924
1890
  e.getBoardState,
1925
1891
  e.updateBoardState
1926
- ]), [p] = I((e) => [e.getBoardConfig]), m = e.useRef({}), h = e.useRef({ items: [] });
1892
+ ]), [p] = L((e) => [e.getBoardConfig]), m = e.useRef({}), h = e.useRef({ items: [] });
1927
1893
  return f(document, "keydown", (e) => {
1928
1894
  if (["INPUT", "TEXTAREA"].includes(e.target.tagName)) return;
1929
1895
  let t = l();
@@ -1954,6 +1920,7 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1954
1920
  }
1955
1921
  }
1956
1922
  }), /* @__PURE__ */ a(Y, {
1923
+ fill: !0,
1957
1924
  onDragStart: (e) => {
1958
1925
  let { ctrlKey: t, metaKey: n, event: r } = e, a = i(e);
1959
1926
  if (a) {
@@ -2006,7 +1973,7 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
2006
1973
  ,
2007
1974
  ,
2008
1975
  ].keys()].map((e) => `Digit${e + 1}`), Xt = () => {
2009
- let [t, n] = e.useState({}), [r, i] = L((e) => [e.getBoardState, e.updateBoardState]);
1976
+ let [t, n] = e.useState({}), [r, i] = R((e) => [e.getBoardState, e.updateBoardState]);
2010
1977
  return f(document, "keydown", (e) => {
2011
1978
  if (!["INPUT", "TEXTAREA"].includes(e.target.tagName) && Yt.includes(e.code)) {
2012
1979
  let a = e.code, { translateX: o, translateY: s, scale: c } = r();
@@ -2021,29 +1988,23 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
2021
1988
  }
2022
1989
  }), null;
2023
1990
  }, Zt = ({ children: t, moveFirst: n = !1 }) => {
2024
- let r = e.useRef(null), [i, o, s, c, l] = L((e) => [
2025
- {
2026
- translateX: e.boardState.translateX,
2027
- translateY: e.boardState.translateY,
2028
- scale: e.boardState.scale,
2029
- rotate: e.boardState.rotate
2030
- },
1991
+ let r = e.useRef(null), [i, o, s, c] = R((e) => [
2031
1992
  e.config.itemExtent,
2032
1993
  e.getConfiguration,
2033
1994
  e.updateBoardState,
2034
1995
  e.getSelection
2035
- ]), { zoomToCenter: u, zoomToExtent: d, moveBoard: p } = z(), [m, h] = e.useState(!1), g = e.useRef({}), _ = Jt(r);
1996
+ ]), { zoomToCenter: l, zoomToExtent: u, moveBoard: d } = B(), [p, m] = e.useState(!1), h = e.useRef({}), g = Jt(r);
2036
1997
  Xt();
2037
- let v = e.useCallback(() => {
2038
- let { itemExtent: e } = s();
2039
- d(e);
2040
- }, [s, d]);
1998
+ let _ = e.useCallback(() => {
1999
+ let { itemExtent: e } = o();
2000
+ u(e);
2001
+ }, [o, u]);
2041
2002
  return e.useEffect(() => {
2042
- !m && o.radius && (v(), h(!0));
2003
+ !p && i.radius && (_(), m(!0));
2043
2004
  }, [
2044
- v,
2045
- m,
2046
- o
2005
+ _,
2006
+ p,
2007
+ i
2047
2008
  ]), f(document, "keydown", (e) => {
2048
2009
  if (["INPUT", "TEXTAREA"].includes(e.target.tagName)) return;
2049
2010
  let t = 0, n = 0, r = 1;
@@ -2066,50 +2027,55 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
2066
2027
  case "PageDown": r = .8;
2067
2028
  }
2068
2029
  if (t || n || r !== 1) {
2069
- let i = l();
2030
+ let i = c();
2070
2031
  if (r === 1 && i.length) return;
2071
- e.shiftKey && (t *= 5, n *= 5), (e.ctrlKey || e.altKey || e.metaKey) && (t /= 5, n /= 5), p(({ translateX: e, translateY: r }) => ({
2032
+ e.shiftKey && (t *= 5, n *= 5), (e.ctrlKey || e.altKey || e.metaKey) && (t /= 5, n /= 5), d(({ translateX: e, translateY: r }) => ({
2072
2033
  translateX: e + t,
2073
2034
  translateY: r + n
2074
- })), u({ factor: r }), e.preventDefault();
2035
+ })), l({ factor: r }), e.preventDefault();
2075
2036
  }
2076
- e.key === " " && !e.repeat && _().hover && u({
2037
+ e.key === " " && !e.repeat && g().hover && l({
2077
2038
  factor: 3,
2078
- to: _()
2039
+ to: g()
2079
2040
  });
2080
2041
  }), f(document, "keyup", (e) => {
2081
- ["INPUT", "TEXTAREA"].includes(e.target.tagName) || e.key === " " && _().hover && u({
2042
+ ["INPUT", "TEXTAREA"].includes(e.target.tagName) || e.key === " " && g().hover && l({
2082
2043
  factor: 1 / 3,
2083
- to: _()
2044
+ to: g()
2084
2045
  });
2085
2046
  }), /* @__PURE__ */ a(Y, {
2086
- onPan: ({ deltaX: e, deltaY: t }) => {
2087
- p(({ translateX: n, translateY: r }) => ({
2047
+ fill: !0,
2048
+ onPan: ({ deltaX: e, deltaY: t, target: n }) => {
2049
+ let r = j(n, "item");
2050
+ r && A(r, "selected") || (d(({ translateX: n, translateY: r }) => ({
2088
2051
  translateX: n + e,
2089
2052
  translateY: r + t
2090
- })), clearTimeout(g.current.pan), g.current.pan = setTimeout(() => {
2091
- c({ panning: !1 });
2092
- }, 200), c({ panning: !0 });
2053
+ })), clearTimeout(h.current.pan), h.current.pan = setTimeout(() => {
2054
+ s({ panning: !1 });
2055
+ }, 200), s({ panning: !0 }));
2093
2056
  },
2094
2057
  onZoom: ({ clientX: e, clientY: t, scale: n }) => {
2095
- u({
2058
+ l({
2096
2059
  to: {
2097
2060
  x: e,
2098
2061
  y: t
2099
2062
  },
2100
2063
  factor: 1 - n / 500
2101
- }), clearTimeout(g.current.zoom), g.current.zoom = setTimeout(() => {
2102
- c({ zooming: !1 });
2103
- }, 200), c({ zooming: !0 });
2064
+ }), clearTimeout(h.current.zoom), h.current.zoom = setTimeout(() => {
2065
+ s({ zooming: !1 });
2066
+ }, 200), s({ zooming: !0 });
2104
2067
  },
2105
2068
  mainAction: n ? "pan" : "drag",
2106
2069
  children: /* @__PURE__ */ a("div", {
2107
2070
  style: {
2108
- display: "inline-block",
2109
- transformOrigin: "top left",
2110
- transform: `translate(${i.translateX}px, ${i.translateY}px) rotate(${i.rotate}deg) scale(${i.scale})`
2071
+ position: "absolute",
2072
+ top: 0,
2073
+ left: 0,
2074
+ display: "block",
2075
+ width: "100%",
2076
+ height: "100%"
2111
2077
  },
2112
- className: `board-pane${i.scale < .5 ? " board-pane__far" : ""}`,
2078
+ className: "board",
2113
2079
  ref: r,
2114
2080
  children: t
2115
2081
  })
@@ -2123,7 +2089,7 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
2123
2089
  border: "2px dashed hsl(20, 55%, 40%)",
2124
2090
  pointerEvents: "none"
2125
2091
  }), $t = () => {
2126
- let [t, n, r, i, o, { translateX: s, translateY: c, scale: l }] = L((e) => [
2092
+ let [t, n, r, i, o, { translateX: s, translateY: c, scale: l }] = R((e) => [
2127
2093
  e.selection,
2128
2094
  e.getSelection,
2129
2095
  e.selectionBox,
@@ -2134,13 +2100,13 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
2134
2100
  translateY: e.boardState.translateY,
2135
2101
  scale: e.boardState.scale
2136
2102
  }
2137
- ]), [d] = I((e) => [e.items]), f = e.useCallback(() => {
2103
+ ]), [d] = L((e) => [e.items]), f = e.useCallback(() => {
2138
2104
  let e = n(), { boardWrapperRect: t, uid: r } = o();
2139
2105
  if (e.length === 0) {
2140
2106
  i(null);
2141
2107
  return;
2142
2108
  }
2143
- let a = oe(e, r);
2109
+ let a = le(e, r);
2144
2110
  if (!a) {
2145
2111
  i(null);
2146
2112
  return;
@@ -2176,7 +2142,7 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
2176
2142
  className: `selection ${Qt}`
2177
2143
  });
2178
2144
  }, en = () => {
2179
- let [e] = L((e) => [e.boardState.movingItems]);
2145
+ let [e] = R((e) => [e.boardState.movingItems]);
2180
2146
  return e ? null : /* @__PURE__ */ a($t, {});
2181
2147
  };
2182
2148
  //#endregion
@@ -2184,13 +2150,13 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
2184
2150
  function tn(e, t, n) {
2185
2151
  return Math.min(Math.max(e, n), t);
2186
2152
  }
2187
- var Q = class extends Error {
2153
+ var Z = class extends Error {
2188
2154
  constructor(e) {
2189
2155
  super(`Failed to parse color: "${e}"`);
2190
2156
  }
2191
2157
  };
2192
2158
  function nn(e) {
2193
- if (typeof e != "string") throw new Q(e);
2159
+ if (typeof e != "string") throw new Z(e);
2194
2160
  if (e.trim().toLowerCase() === "transparent") return [
2195
2161
  0,
2196
2162
  0,
@@ -2202,7 +2168,7 @@ function nn(e) {
2202
2168
  let n = cn.exec(t);
2203
2169
  if (n) {
2204
2170
  let e = Array.from(n).slice(1);
2205
- return [...e.slice(0, 3).map((e) => parseInt($(e, 2), 16)), parseInt($(e[3] || "f", 2), 16) / 255];
2171
+ return [...e.slice(0, 3).map((e) => parseInt(Q(e, 2), 16)), parseInt(Q(e[3] || "f", 2), 16) / 255];
2206
2172
  }
2207
2173
  let r = ln.exec(t);
2208
2174
  if (r) {
@@ -2217,10 +2183,10 @@ function nn(e) {
2217
2183
  let a = dn.exec(t);
2218
2184
  if (a) {
2219
2185
  let [t, n, r, i] = Array.from(a).slice(1).map(parseFloat);
2220
- if (tn(0, 100, n) !== n || tn(0, 100, r) !== r) throw new Q(e);
2186
+ if (tn(0, 100, n) !== n || tn(0, 100, r) !== r) throw new Z(e);
2221
2187
  return [...mn(t, n, r), Number.isNaN(i) ? 1 : i];
2222
2188
  }
2223
- throw new Q(e);
2189
+ throw new Z(e);
2224
2190
  }
2225
2191
  function rn(e) {
2226
2192
  let t = 5381, n = e.length;
@@ -2234,10 +2200,10 @@ var an = (e) => parseInt(e.replace(/_/g, ""), 36), on = "1q29ehhb 1n09sgk7 1kl1e
2234
2200
  }, {});
2235
2201
  function sn(e) {
2236
2202
  let t = on[rn(e.toLowerCase().trim())];
2237
- if (!t) throw new Q(e);
2203
+ if (!t) throw new Z(e);
2238
2204
  return `#${t}`;
2239
2205
  }
2240
- var $ = (e, t) => Array.from(Array(t)).map(() => e).join(""), cn = RegExp(`^#${$("([a-f0-9])", 3)}([a-f0-9])?$`, "i"), ln = RegExp(`^#${$("([a-f0-9]{2})", 3)}([a-f0-9]{2})?$`, "i"), un = RegExp(`^rgba?\\(\\s*(\\d+)\\s*${$(",\\s*(\\d+)\\s*", 2)}(?:,\\s*([\\d.]+))?\\s*\\)$`, "i"), dn = /^hsla?\(\s*([\d.]+)\s*,\s*([\d.]+)%\s*,\s*([\d.]+)%(?:\s*,\s*([\d.]+))?\s*\)$/i, fn = /^[a-z]+$/i, pn = (e) => Math.round(e * 255), mn = (e, t, n) => {
2206
+ var Q = (e, t) => Array.from(Array(t)).map(() => e).join(""), cn = RegExp(`^#${Q("([a-f0-9])", 3)}([a-f0-9])?$`, "i"), ln = RegExp(`^#${Q("([a-f0-9]{2})", 3)}([a-f0-9]{2})?$`, "i"), un = RegExp(`^rgba?\\(\\s*(\\d+)\\s*${Q(",\\s*(\\d+)\\s*", 2)}(?:,\\s*([\\d.]+))?\\s*\\)$`, "i"), dn = /^hsla?\(\s*([\d.]+)\s*,\s*([\d.]+)%\s*,\s*([\d.]+)%(?:\s*,\s*([\d.]+))?\s*\)$/i, fn = /^[a-z]+$/i, pn = (e) => Math.round(e * 255), mn = (e, t, n) => {
2241
2207
  let r = n / 100;
2242
2208
  if (t === 0) return [
2243
2209
  r,
@@ -2325,7 +2291,7 @@ var _n = K({
2325
2291
  style: { transform: `translate(${e.x - 6}px, ${e.y - 15}px)` },
2326
2292
  children: /* @__PURE__ */ a(yn, { ...t })
2327
2293
  }), Sn = ({ children: e }) => {
2328
- let [t] = L((e) => [e.getConfiguration, e.boardState.scale]), { fromWrapperToBoard: n, fromBoardToWrapper: r } = z(), [i, s, c, l] = U((e) => [
2294
+ let [t] = R((e) => [e.getConfiguration, e.boardState.scale]), { fromWrapperToBoard: n, fromBoardToWrapper: r } = B(), [i, s, c, l] = U((e) => [
2329
2295
  e.getUser(),
2330
2296
  e.getLocalUsers(),
2331
2297
  e.cursors,
@@ -2354,76 +2320,261 @@ var _n = K({
2354
2320
  }, e) : null;
2355
2321
  })]
2356
2322
  });
2357
- }, Cn = ({ children: e }) => e, wn = {
2323
+ }, Cn = /[+-]?(?:\d*\.)?\d+(?:e[+-]?\d+)?(?:px|%)/gi;
2324
+ function wn(e, t = ",") {
2325
+ let n = 0, r = "", i = 0, a = [];
2326
+ for (let [o, s] of e.split("").entries()) if (r) s === r && e[o - 1] !== "\\" && (r = "");
2327
+ else if (s === "\"" || s === "'") r = s;
2328
+ else if (s === "(") n++;
2329
+ else if (s === ")") n--;
2330
+ else if (n === 0 && s === t) {
2331
+ let t = e.slice(i, o).trim();
2332
+ t && a.push(t), i = o + 1;
2333
+ }
2334
+ let o = e.slice(i).trim();
2335
+ return o && a.push(o), a;
2336
+ }
2337
+ function $(e, t) {
2338
+ return [...e.replace(/\s/g, "").matchAll(Cn)].reduce((e, [n]) => e + Number.parseFloat(n) * (n.endsWith("%") ? t / 100 : 1), 0);
2339
+ }
2340
+ function Tn(e, t, n, r) {
2341
+ let [i, a = "auto"] = wn(e, " "), o = r?.width, s = r?.height;
2342
+ if (i === "cover" || i === "contain") {
2343
+ if (!o || !s) return [t, n];
2344
+ let e = Math[i === "cover" ? "max" : "min"](t / o, n / s);
2345
+ return [o * e, s * e];
2346
+ }
2347
+ let c = i === "auto" ? null : $(i, t), l = a === "auto" ? null : $(a, n);
2348
+ 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]);
2349
+ }
2350
+ function En(e, t, n) {
2351
+ let r = [
2352
+ [0, 0],
2353
+ [e, 0],
2354
+ [0, t],
2355
+ [e, t]
2356
+ ].map((e) => oe(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] = M([o, s], n);
2357
+ return {
2358
+ left: o,
2359
+ top: s,
2360
+ width: c - o,
2361
+ height: l - s,
2362
+ x: u,
2363
+ y: d
2364
+ };
2365
+ }
2366
+ var Dn = (e, t, n) => ((e - t) % n + n) % n;
2367
+ function On(e, t, n, r) {
2368
+ let i = En(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] = M([u, d], n);
2369
+ return {
2370
+ tiles: Array.from({ length: l - c + 1 }, (e, t) => {
2371
+ let n = c + t;
2372
+ return Array.from({ length: s - o + 1 }, (e, t) => {
2373
+ let r = o + t;
2374
+ return {
2375
+ key: `${a}:${r}:${n}`,
2376
+ left: r * a,
2377
+ top: n * a
2378
+ };
2379
+ });
2380
+ }).flat(),
2381
+ size: a,
2382
+ left: u,
2383
+ top: d,
2384
+ x: f,
2385
+ y: p
2386
+ };
2387
+ }
2388
+ //#endregion
2389
+ //#region src/lib/board/WorldBackground.jsx
2390
+ var kn = {
2391
+ position: "absolute",
2392
+ inset: 0,
2393
+ pointerEvents: "none"
2394
+ };
2395
+ function An({ style: t, tileSizeOverride: n }) {
2396
+ let [r, i] = R((e) => [e.boardState, e.config.boardWrapperRect]), s = i.width || 1, c = i.height || 1, l = e.useRef(null), [u, d] = e.useState({
2397
+ color: "#333",
2398
+ layers: []
2399
+ }), [f, p] = e.useState({});
2400
+ e.useLayoutEffect(() => {
2401
+ let e = getComputedStyle(l.current), t = (t) => wn(e[t]), n = t("backgroundSize"), r = t("backgroundPositionX"), i = t("backgroundPositionY"), a = t("backgroundRepeat"), o = t("backgroundBlendMode");
2402
+ d({
2403
+ color: e.backgroundColor,
2404
+ layers: t("backgroundImage").map((e, t) => ({
2405
+ image: e,
2406
+ size: n[t % n.length],
2407
+ x: r[t % r.length],
2408
+ y: i[t % i.length],
2409
+ repeat: a[t % a.length],
2410
+ blend: o[t % o.length]
2411
+ }))
2412
+ });
2413
+ }, [
2414
+ t,
2415
+ s,
2416
+ c
2417
+ ]), e.useEffect(() => {
2418
+ let e = !0;
2419
+ return u.layers.forEach(({ image: t }) => {
2420
+ if (!t.startsWith("url(")) return;
2421
+ let n = new Image();
2422
+ n.onload = () => {
2423
+ e && p((e) => ({
2424
+ ...e,
2425
+ [t]: {
2426
+ width: n.naturalWidth,
2427
+ height: n.naturalHeight
2428
+ }
2429
+ }));
2430
+ }, n.src = t.slice(4, -1).replace(/^["']|["']$/g, "");
2431
+ }), () => {
2432
+ e = !1;
2433
+ };
2434
+ }, [u.layers]);
2435
+ let m = On(s, c, r, n), h = u.layers.map((e) => {
2436
+ let [t, n] = Tn(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);
2437
+ return {
2438
+ ...e,
2439
+ size: `${t}px ${n}px`,
2440
+ position: (e, s) => `${r && t ? Dn(a, e, t) : a - e}px ${i && n ? Dn(o, s, n) : o - s}px`
2441
+ };
2442
+ });
2443
+ return /* @__PURE__ */ o("div", {
2444
+ className: "world-background",
2445
+ "aria-hidden": "true",
2446
+ style: {
2447
+ ...kn,
2448
+ overflow: "hidden",
2449
+ backgroundColor: u.color
2450
+ },
2451
+ children: [/* @__PURE__ */ a("div", {
2452
+ ref: l,
2453
+ style: {
2454
+ backgroundColor: "#333",
2455
+ ...t,
2456
+ position: "absolute",
2457
+ width: s,
2458
+ height: c,
2459
+ visibility: "hidden",
2460
+ pointerEvents: "none"
2461
+ }
2462
+ }), /* @__PURE__ */ a("div", {
2463
+ className: "world-background-tiles",
2464
+ style: {
2465
+ position: "absolute",
2466
+ transformOrigin: "0 0",
2467
+ transform: `translate(${m.x}px, ${m.y}px) rotate(${r.rotate}deg) scale(${r.scale})`
2468
+ },
2469
+ children: m.tiles.map((e) => /* @__PURE__ */ a("div", {
2470
+ className: "world-background-tile",
2471
+ "data-tile": e.key,
2472
+ style: {
2473
+ position: "absolute",
2474
+ left: e.left - m.left,
2475
+ top: e.top - m.top,
2476
+ width: m.size,
2477
+ height: m.size,
2478
+ backgroundImage: h.map((e) => e.image).join(", "),
2479
+ backgroundSize: h.map((e) => e.size).join(", "),
2480
+ backgroundPosition: h.map((t) => t.position(e.left, e.top)).join(", "),
2481
+ backgroundRepeat: h.map((e) => e.repeat).join(", "),
2482
+ backgroundBlendMode: h.map((e) => e.blend).join(", ")
2483
+ }
2484
+ }, e.key))
2485
+ })]
2486
+ });
2487
+ }
2488
+ //#endregion
2489
+ //#region src/lib/board/Board.jsx
2490
+ var jn = ({ children: e }) => e, Mn = {}, Nn = {
2358
2491
  overflow: "hidden",
2359
2492
  position: "absolute",
2360
2493
  inset: 0
2361
- }, Tn = ({ moveFirst: t = !0, style: n, wrapperStyle: r, itemTemplates: i = {}, boardSize: s = Se, children: c, showResizeHandle: l = !1, Wrapper: u = Cn }) => {
2362
- let d = e.useRef(null), [f, m] = L((e) => [e.config.uid, e.updateConfiguration]), { updateItemExtent: h } = z(), g = {
2494
+ }, Pn = ({ moveFirst: t = !0, style: n, wrapperStyle: r, itemTemplates: i = Mn, boardSize: s = we, backgroundTileSize: c, children: l, showResizeHandle: u = !1, Wrapper: d = jn }) => {
2495
+ let f = e.useRef(null), [m, h] = R((e) => [e.config.uid, e.updateConfiguration]), [g, _, v, y] = R((e) => [
2496
+ e.boardState.translateX,
2497
+ e.boardState.translateY,
2498
+ e.boardState.scale,
2499
+ e.boardState.rotate
2500
+ ]), { updateItemExtent: b } = B(), x = {
2363
2501
  userSelect: "none",
2364
- width: `${s}px`,
2365
- height: `${s}px`,
2366
- backgroundColor: "#333",
2367
- ...n
2502
+ position: "absolute",
2503
+ inset: 0,
2504
+ width: "100%",
2505
+ height: "100%",
2506
+ transformOrigin: "0 0",
2507
+ transform: `translate(${g}px, ${_}px) rotate(${y}deg) scale(${v})`,
2508
+ pointerEvents: "none"
2368
2509
  };
2369
2510
  e.useEffect(() => {
2370
2511
  let e = (e) => {
2371
- A(e.target, "board") && e.preventDefault();
2512
+ f.current?.contains(e.target) && e.preventDefault();
2372
2513
  };
2373
2514
  return document.body.addEventListener("wheel", e, { passive: !1 }), () => {
2374
2515
  document.body.removeEventListener("wheel", e);
2375
2516
  };
2376
2517
  }, []), e.useEffect(() => {
2377
- m({ boardWrapper: d.current });
2378
- }, [m]), e.useEffect(() => {
2379
- f || m({ uid: H() });
2380
- }, [f, m]), e.useEffect(() => {
2381
- m({
2518
+ h({ boardWrapper: f.current });
2519
+ }, [h]), e.useEffect(() => {
2520
+ m || h({ uid: w() });
2521
+ }, [m, h]), e.useEffect(() => {
2522
+ h({
2382
2523
  itemTemplates: i,
2383
2524
  boardSize: s,
2384
- showResizeHandle: l
2525
+ showResizeHandle: u
2385
2526
  });
2386
2527
  }, [
2387
2528
  i,
2388
2529
  s,
2389
- l,
2390
- m
2530
+ u,
2531
+ h
2391
2532
  ]), e.useEffect(() => {
2392
- m({ boardWrapperRect: d.current.getBoundingClientRect() }), h(), setTimeout(h, 2e3);
2393
- }, [m, h]), p(d, () => {
2394
- d.current && m({ boardWrapperRect: d.current.getBoundingClientRect() });
2533
+ h({ boardWrapperRect: f.current.getBoundingClientRect() }), b(), setTimeout(b, 2e3);
2534
+ }, [h, b]), p(f, () => {
2535
+ f.current && h({ boardWrapperRect: f.current.getBoundingClientRect() });
2395
2536
  });
2396
- let _ = K({
2397
- ...wn,
2537
+ let S = K({
2538
+ ...Nn,
2398
2539
  ...r
2399
2540
  });
2400
2541
  return /* @__PURE__ */ o("div", {
2401
- ref: d,
2402
- id: f,
2403
- className: `sync-board ${_}`,
2404
- children: [/* @__PURE__ */ a(Sn, { children: /* @__PURE__ */ a(Kt, {
2405
- moveFirst: t,
2406
- children: /* @__PURE__ */ a(Zt, {
2542
+ ref: f,
2543
+ id: m,
2544
+ className: `sync-board ${S}`,
2545
+ children: [
2546
+ /* @__PURE__ */ a(An, {
2547
+ style: n,
2548
+ tileSizeOverride: c
2549
+ }),
2550
+ /* @__PURE__ */ a(Sn, { children: /* @__PURE__ */ a(Kt, {
2407
2551
  moveFirst: t,
2408
- children: /* @__PURE__ */ a(qt, {
2552
+ children: /* @__PURE__ */ a(Zt, {
2409
2553
  moveFirst: t,
2410
- children: /* @__PURE__ */ a(u, { children: /* @__PURE__ */ o("div", {
2411
- onContextMenu: (e) => {
2412
- e.preventDefault();
2413
- },
2414
- style: g,
2415
- className: "board",
2416
- children: [/* @__PURE__ */ a(Ut, {}), c]
2417
- }) })
2554
+ children: /* @__PURE__ */ a(qt, {
2555
+ moveFirst: t,
2556
+ children: /* @__PURE__ */ a(d, { children: /* @__PURE__ */ o("div", {
2557
+ onContextMenu: (e) => {
2558
+ e.preventDefault();
2559
+ },
2560
+ style: x,
2561
+ className: `board-pane${v < .5 ? " board-pane__far" : ""}`,
2562
+ children: [/* @__PURE__ */ a(Ut, {}), /* @__PURE__ */ a("div", {
2563
+ style: { pointerEvents: "auto" },
2564
+ children: l
2565
+ })]
2566
+ }) })
2567
+ })
2418
2568
  })
2419
- })
2420
- }) }), /* @__PURE__ */ a(en, {})]
2569
+ }) }),
2570
+ /* @__PURE__ */ a(en, {})
2571
+ ]
2421
2572
  });
2422
2573
  };
2423
2574
  //#endregion
2424
2575
  //#region src/lib/index.js
2425
- ht(e.createElement);
2576
+ mt(e.createElement);
2426
2577
  //#endregion
2427
- export { Tn as Board, at as BoardWrapper, ot as RoomWrapper, Re as useAvailableActions, Je as useBoardConfig, z as useBoardPosition, Ye as useBoardState, xe as useDebouncedItems, Ae as useGetSelectedItems, V as useItemActions, B as useItemInteraction, be as useItems, rt as useMessage, ke as useSelectedItems, ze as useSelectionBox, Xe as useSessionInfo, qe as useUsers, O as useWire };
2578
+ export { Pn as Board, it as BoardWrapper, at as RoomWrapper, Re as useAvailableActions, qe as useBoardConfig, B as useBoardPosition, Je as useBoardState, Ce as useDebouncedItems, Me as useGetSelectedItems, H as useItemActions, V as useItemInteraction, Se as useItems, nt as useMessage, je as useSelectedItems, ze as useSelectionBox, Ye as useSessionInfo, Ke as useUsers, k as useWire };
2428
2579
 
2429
2580
  //# sourceMappingURL=react-sync-board.js.map