react-sync-board 1.4.2 → 1.4.4

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.
@@ -18,9 +18,9 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
18
18
  let t = "", n = crypto.getRandomValues(new Uint8Array(e |= 0));
19
19
  for (; e--;) t += C[n[e] & 63];
20
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 {
21
+ }, T = 128, ee = (e) => typeof e == "string" && e.length > 0 && e.length <= T && !/[\u0000-\u001f\u007f]/u.test(e), E = (e, t) => {
22
+ if (!ee(e)) throw Error(`Invalid ${t}`);
23
+ }, te = class {
24
24
  constructor(e, t, n = null) {
25
25
  this._socket = e, this.userId = n, this.room = t, this.toUnregister = [() => {
26
26
  this._socket.off(`${this.room}.isMaster`), this._socket.off(`${this.room}.roomJoined`), this._socket.off(`${this.room}._call`);
@@ -89,9 +89,9 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
89
89
  params: t
90
90
  });
91
91
  }
92
- }, te = ({ socket: e, room: t, onJoined: n = () => {}, onMaster: r = () => {}, userId: i = null }) => {
92
+ }, D = ({ socket: e, room: t, onJoined: n = () => {}, onMaster: r = () => {}, userId: i = null }) => {
93
93
  E(t, "room name"), i != null && E(i, "user id");
94
- let a = new D(e, t, i);
94
+ let a = new te(e, t, i);
95
95
  return new Promise((o) => {
96
96
  let s = !0;
97
97
  e.on(`${t}.isMaster`, () => {
@@ -132,7 +132,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
132
132
  t.off("disconnect", e);
133
133
  };
134
134
  }, [i, t]), e.useEffect(() => {
135
- if (t) return t.connected || t.connect(), console.log(`Try to connect to wire ${n} on channel ${i}`), _.current || (_.current = !0, te({
135
+ if (t) return t.connected || t.connect(), console.log(`Try to connect to wire ${n} on channel ${i}`), _.current || (_.current = !0, D({
136
136
  socket: t,
137
137
  room: n,
138
138
  onMaster: () => {
@@ -160,34 +160,105 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
160
160
  },
161
161
  children: s
162
162
  });
163
- }, 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]) => {
163
+ }, k = (e = "default") => (r(O) || {})[e], ie = /* @__PURE__ */ new Set([
164
+ "grid",
165
+ "hexH",
166
+ "hexV"
167
+ ]), A = (e, t = 0) => Number.isFinite(Number(e)) ? Number(e) : t, j = (e) => {
168
+ if (!ie.has(e?.type)) return null;
169
+ let t = A(e.size, 1);
170
+ return {
171
+ ...e,
172
+ size: t > 0 ? t : 1,
173
+ offset: {
174
+ x: A(e.offset?.x),
175
+ y: A(e.offset?.y)
176
+ },
177
+ show: e.show !== !1,
178
+ color: e.color || "#000000",
179
+ opacity: Math.max(0, Math.min(1, A(e.opacity ?? .2, .2)))
180
+ };
181
+ }, ae = (e, t) => j(t) || j(e), oe = (e, t) => {
182
+ let n = ae(e, t), r = j(t);
183
+ return !n || r || typeof t?.show != "boolean" ? n : {
184
+ ...n,
185
+ show: t.show
186
+ };
187
+ }, se = (e) => {
188
+ let t = getComputedStyle(e), n = (e, n, r, i) => {
189
+ let a = parseFloat(t[e]);
190
+ return Number.isFinite(a) ? (t.boxSizing !== "border-box" && (a += (parseFloat(t[`padding${n}`]) || 0) + (parseFloat(t[`padding${r}`]) || 0) + (parseFloat(t[`border${n}Width`]) || 0) + (parseFloat(t[`border${r}Width`]) || 0)), a) : i;
191
+ };
192
+ return {
193
+ width: n("width", "Left", "Right", e.offsetWidth),
194
+ height: n("height", "Top", "Bottom", e.offsetHeight)
195
+ };
196
+ }, ce = ({ type: e, size: t }) => {
197
+ let n = Math.sqrt(3) * t / 2;
198
+ return e === "grid" ? {
199
+ width: t,
200
+ height: t,
201
+ centers: [[t / 2, t / 2]]
202
+ } : e === "hexH" ? {
203
+ width: 2 * n,
204
+ height: 3 * t,
205
+ centers: [[0, 0], [n, 1.5 * t]]
206
+ } : {
207
+ width: 3 * t,
208
+ height: 2 * n,
209
+ centers: [[0, 0], [1.5 * t, n]]
210
+ };
211
+ }, le = (e, t) => {
212
+ let { x: n, y: r, width: i, height: a } = e, o = j(t);
213
+ if (!o || ![
214
+ n,
215
+ r,
216
+ i,
217
+ a
218
+ ].every(Number.isFinite)) return {
219
+ x: n,
220
+ y: r
221
+ };
222
+ let { offset: s } = o, c = n + i / 2 - s.x, l = r + a / 2 - s.y, u = ce(o), d, f = Infinity;
223
+ for (let [e, t] of u.centers) {
224
+ let n = Math.round((c - e) / u.width) * u.width + e, r = Math.round((l - t) / u.height) * u.height + t, o = Math.hypot(n - c, r - l);
225
+ o < f && (d = {
226
+ x: n + s.x - i / 2,
227
+ y: r + s.y - a / 2
228
+ }, f = o);
229
+ }
230
+ return d && Number.isFinite(d.x) && Number.isFinite(d.y) ? d : {
231
+ x: n,
232
+ y: r
233
+ };
234
+ }, M = (e, t) => e.classList && e.classList.contains(t), N = (e, t) => M(e, t) ? e : e.parentNode ? N(e.parentNode, t) : !1, ue = ([e, t], [n, r]) => {
164
235
  let i = Math.abs(e - n), a = Math.abs(t - r);
165
236
  return Math.hypot(i, a);
166
- }, ae = (e, t, n) => {
237
+ }, de = (e, t, n) => {
167
238
  let r = n * Math.PI / 180;
168
239
  return [e * Math.cos(r) - t * Math.sin(r), e * Math.sin(r) + t * Math.cos(r)];
169
- }, 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 }) => {
170
- let [o, s] = ae(e, t, r);
240
+ }, fe = ([e, t], { scale: n, rotate: r, translateX: i, translateY: a }) => de((e - i) / n, (t - a) / n, -r), P = ([e, t], { scale: n, rotate: r, translateX: i, translateY: a }) => {
241
+ let [o, s] = de(e, t, r);
171
242
  return [o * n + i, s * n + a];
172
- }, 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) => {
243
+ }, pe = (e, t) => e.x > t.left && e.x < t.left + t.width && e.y > t.top && e.y < t.top + t.height, me = (e, t) => Array.from(e.querySelectorAll(".corner")).every((e) => {
173
244
  let { top: n, left: r } = e.getBoundingClientRect();
174
- return N({
245
+ return pe({
175
246
  x: r,
176
247
  y: n
177
248
  }, t);
178
- }), ce = (e, t) => se(e, t.getBoundingClientRect()), P = (e, t) => {
249
+ }), he = (e, t) => me(e, t.getBoundingClientRect()), F = (e, t) => {
179
250
  try {
180
251
  return document.getElementById(`${e}__${t}`);
181
252
  } catch {
182
253
  console.error(`Error while getting item with id ${t} inside wrapper`, e);
183
254
  return;
184
255
  }
185
- }, F = (e) => {
256
+ }, I = (e) => {
186
257
  let t = e?.dataset?.id;
187
258
  return t || console.error("getIdFromElem call fails", e, JSON.stringify(e?.dataset), e?.dataset?.id), t;
188
- }, le = (e, t) => {
259
+ }, ge = (e, t) => {
189
260
  let n = e.reduce((e, n) => {
190
- let r = P(t, n);
261
+ let r = F(t, n);
191
262
  if (!r) return e || null;
192
263
  let { left: i, right: a, top: o, bottom: s } = r.getBoundingClientRect(), c;
193
264
  return c = e || {
@@ -198,31 +269,10 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
198
269
  }, 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;
199
270
  }, null);
200
271
  return n && (n.width = n.right - n.left, n.height = n.bottom - n.top, n);
201
- }, 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) => {
202
- let r = new Set(ue(e, n));
272
+ }, _e = (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, ..._e(e, e[t].linkedItems, n)] : [])).flat()), ve = (e, t, n) => {
273
+ let r = new Set(_e(e, n));
203
274
  return t.filter((e) => r.has(e));
204
- }, fe = ({ x: e, y: t, width: n, height: r }, { type: i = "grid", size: a = 1, offset: o = {
205
- x: 0,
206
- y: 0
207
- } }) => {
208
- let [s, c] = [e + n / 2 - o.x, t + r / 2 - o.y], l, u, d, f, p, m, h, g, _, v, y = a / 1.1547;
209
- switch (i) {
210
- case "grid":
211
- l = Math.round(s / a) * a, u = Math.round(c / a) * a;
212
- break;
213
- case "hexH":
214
- d = 2 * y, f = 3 * a, p = Math.round(s / d) * d, h = Math.round(c / f) * f, m = p > s ? p - y : p + y, g = h > c ? h - 1.5 * a : h + 1.5 * a, _ = Math.hypot(p - s, h - c), v = Math.hypot(m - s, g - c), _ < v ? (l = p, u = h) : (l = m, u = g);
215
- break;
216
- case "hexV":
217
- d = 3 * a, f = 2 * y, p = Math.round(s / d) * d, h = Math.round(c / f) * f, m = p > s ? p - 1.5 * a : p + 1.5 * a, g = h > c ? h - y : h + y, _ = Math.hypot(p - s, h - c), v = Math.hypot(m - s, g - c), _ < v ? (l = p, u = h) : (l = m, u = g);
218
- break;
219
- default: l = e + n / 2, u = t + r / 2;
220
- }
221
- return {
222
- x: l + o.x - n / 2,
223
- y: u + o.y - r / 2
224
- };
225
- }, 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) => {
275
+ }, ye = /* @__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("."), be = () => ye[Math.floor(Math.random() * ye.length)], L = ({ wire: e, storeName: t, noSync: n = [], defaultValue: r }, i) => (a, o, s) => {
226
276
  a({ ready: !1 });
227
277
  let c = [];
228
278
  (async () => {
@@ -246,7 +296,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
246
296
  return d.unsub = () => {
247
297
  c.forEach((e) => e());
248
298
  }, d;
249
- }, he = e.createContext(), ge = (e, t) => ({
299
+ }, xe = e.createContext(), Se = (e, t) => ({
250
300
  items: {},
251
301
  getItems: () => t().items,
252
302
  setItems: (t) => e({ items: t }),
@@ -269,7 +319,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
269
319
  });
270
320
  }), { items: r };
271
321
  })
272
- }), _e = (e, t) => ({
322
+ }), Ce = (e, t) => ({
273
323
  itemIds: [],
274
324
  setItemIds: (t) => e({ itemIds: t }),
275
325
  getItemIds: () => t().itemIds,
@@ -286,7 +336,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
286
336
  return r[t] = n, { itemIds: r };
287
337
  }),
288
338
  updateManyItemIds: (t) => e((e) => ({ itemIds: e.itemIds.map((e, n) => t[n] === void 0 ? e : t[n]) }))
289
- }), ve = (e, t) => ({
339
+ }), we = (e, t) => ({
290
340
  removeItemsById: (t) => e((e) => ({
291
341
  itemIds: e.itemIds.filter((e) => !t.includes(e)),
292
342
  items: Object.fromEntries(Object.entries(e.items).filter(([e]) => !t.includes(e)))
@@ -313,7 +363,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
313
363
  itemIds: r
314
364
  };
315
365
  })
316
- }), ye = (e, t) => ({
366
+ }), Te = (e, t) => ({
317
367
  boardConfig: {},
318
368
  getBoardConfig: () => t().boardConfig,
319
369
  setBoardConfig: (t) => e({ boardConfig: t }),
@@ -321,7 +371,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
321
371
  ...e.boardConfig,
322
372
  ...t
323
373
  } }))
324
- }), be = (e, t) => ({
374
+ }), Ee = (e, t) => ({
325
375
  session: {},
326
376
  getSessionInfo: () => t().session,
327
377
  setSessionInfo: (t) => e({ session: t }),
@@ -329,34 +379,34 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
329
379
  ...e.session,
330
380
  ...t
331
381
  } }))
332
- }), xe = ({ storeName: t, children: n, defaultValue: r }) => {
333
- let { wire: i } = k("room"), [o, c] = e.useState(!1), [l] = e.useState(() => s(I({
382
+ }), De = ({ storeName: t, children: n, defaultValue: r }) => {
383
+ let { wire: i } = k("room"), [o, c] = e.useState(!1), [l] = e.useState(() => s(L({
334
384
  wire: i,
335
385
  storeName: t,
336
386
  defaultValue: r
337
387
  }, (...e) => ({
338
- ...ge(...e),
339
- ..._e(...e),
340
- ...ve(...e),
341
- ...ye(...e),
342
- ...be(...e)
388
+ ...Se(...e),
389
+ ...Ce(...e),
390
+ ...we(...e),
391
+ ...Te(...e),
392
+ ...Ee(...e)
343
393
  }))));
344
394
  return e.useEffect(() => {
345
395
  let e = l.subscribe((t) => {
346
396
  t.ready && (e(), c(!0));
347
397
  });
348
- }, [l]), o ? /* @__PURE__ */ a(he.Provider, {
398
+ }, [l]), o ? /* @__PURE__ */ a(xe.Provider, {
349
399
  value: l,
350
400
  children: n
351
401
  }) : null;
352
- }, L = (e) => {
353
- let t = r(he);
402
+ }, R = (e) => {
403
+ let t = r(xe);
354
404
  return c(t, e, l);
355
- }, Se = () => {
356
- let [t, n] = L((e) => [e.itemIds, e.items]);
405
+ }, Oe = () => {
406
+ let [t, n] = R((e) => [e.itemIds, e.items]);
357
407
  return e.useMemo(() => t.map((e) => n[e]), [t, n]);
358
- }, Ce = () => {
359
- let [t, n, r] = L((e) => [
408
+ }, ke = () => {
409
+ let [t, n, r] = R((e) => [
360
410
  e.items,
361
411
  e.itemIds,
362
412
  e.getItemList
@@ -371,7 +421,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
371
421
  n,
372
422
  r
373
423
  ]), i;
374
- }, we = 5e4, Te = e.createContext(), Ee = (e, t) => ({
424
+ }, Ae = 5e4, je = e.createContext(), Me = (e, t) => ({
375
425
  config: {
376
426
  itemTemplates: {},
377
427
  actions: {},
@@ -382,14 +432,14 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
382
432
  radius: 0
383
433
  },
384
434
  boardWrapperRect: {},
385
- boardSize: we
435
+ boardSize: Ae
386
436
  },
387
437
  updateConfiguration: (t) => e((e) => ({ config: {
388
438
  ...e.config,
389
439
  ...t
390
440
  } })),
391
441
  getConfiguration: () => t().config
392
- }), De = (e, t) => ({
442
+ }), Ne = (e, t) => ({
393
443
  boardState: {
394
444
  movingItems: !1,
395
445
  selecting: !1,
@@ -405,7 +455,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
405
455
  ...t
406
456
  } })),
407
457
  getBoardState: () => t().boardState
408
- }), Oe = (e, t) => ({
458
+ }), Pe = (e, t) => ({
409
459
  interactions: {},
410
460
  getInteractions: () => t().interactions,
411
461
  register: (t, n) => e((e) => {
@@ -427,7 +477,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
427
477
  setTimeout(() => e(n), 0);
428
478
  });
429
479
  }
430
- }), ke = (e, t) => ({
480
+ }), Fe = (e, t) => ({
431
481
  selection: [],
432
482
  setSelection: (t) => e((e) => JSON.stringify(e.selection) === JSON.stringify(t) ? {} : { selection: t }),
433
483
  getSelection: () => t().selection,
@@ -443,34 +493,34 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
443
493
  let n = e.selectionBox;
444
494
  return !n || !t || n.top !== t.top || n.left !== t.left || n.width !== t.width || n.height !== t.height ? { selectionBox: t } : {};
445
495
  })
446
- }), Ae = ({ children: t }) => {
496
+ }), Ie = ({ children: t }) => {
447
497
  let [n] = e.useState(() => s((...e) => ({
448
- ...Ee(...e),
449
- ...De(...e),
450
- ...Oe(...e),
451
- ...ke(...e)
498
+ ...Me(...e),
499
+ ...Ne(...e),
500
+ ...Pe(...e),
501
+ ...Fe(...e)
452
502
  })));
453
- return /* @__PURE__ */ a(Te.Provider, {
503
+ return /* @__PURE__ */ a(je.Provider, {
454
504
  value: n,
455
505
  children: t
456
506
  });
457
- }, R = (e) => {
458
- let t = r(Te);
507
+ }, z = (e) => {
508
+ let t = r(je);
459
509
  return c(t, e, l);
460
- }, je = () => {
461
- let [e] = R((e) => [e.selection]);
510
+ }, Le = () => {
511
+ let [e] = z((e) => [e.selection]);
462
512
  return e;
463
- }, Me = () => {
464
- let [e] = R((e) => [e.getSelection]);
513
+ }, Re = () => {
514
+ let [e] = z((e) => [e.getSelection]);
465
515
  return e;
466
- }, Ne = 1e3, Pe = .8, z = !1, B = () => {
467
- let [t, n, r, i, a] = R((e) => [
516
+ }, ze = 1e3, Be = .8, Ve = !1, B = () => {
517
+ let [t, n, r, i, a] = z((e) => [
468
518
  e.getBoardState,
469
519
  e.updateBoardState,
470
520
  e.config.itemExtent,
471
521
  e.getConfiguration,
472
522
  e.updateConfiguration
473
- ]), o = e.useRef([.15, 5]), [s] = L((e) => [e.getItemList]), c = e.useCallback(() => {
523
+ ]), o = e.useRef([.15, 5]), [s] = R((e) => [e.getItemList]), c = e.useCallback(() => {
474
524
  let { translateX: e, translateY: n, scale: r, rotate: i } = t();
475
525
  return {
476
526
  translateX: e,
@@ -478,9 +528,9 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
478
528
  scale: r,
479
529
  rotate: i
480
530
  };
481
- }, [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) => {
531
+ }, [t]), l = e.useCallback((e, n) => fe([e, n], t()), [t]), d = e.useCallback((e, n) => P([e, n], t()), [t]), f = e.useCallback((e, n) => {
482
532
  let { scale: r, rotate: i } = t();
483
- return oe([e, n], {
533
+ return fe([e, n], {
484
534
  translateX: 0,
485
535
  translateY: 0,
486
536
  rotate: i,
@@ -491,9 +541,9 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
491
541
  ...r,
492
542
  ...e(r)
493
543
  };
494
- z && console.log("New expected values: ", i, a, o, s);
544
+ Ve && console.log("New expected values: ", i, a, o, s);
495
545
  let c = p(o), l = i, u = a;
496
- z && console.log("New fixed values: ", l, u, c, s), n({
546
+ Ve && console.log("New fixed values: ", l, u, c, s), n({
497
547
  translateX: Number.isFinite(l) ? l : r.translateX,
498
548
  translateY: Number.isFinite(u) ? u : r.translateY,
499
549
  scale: Number.isFinite(c) ? c : p(1),
@@ -538,7 +588,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
538
588
  e || 0,
539
589
  n || 0,
540
590
  r || 2e3
541
- ], u = o.width / (l * 2), d = o.height / (l * 2), f = p(Math.min(u, d) * Pe), [h, g] = M([-s, -c], {
591
+ ], u = o.width / (l * 2), d = o.height / (l * 2), f = p(Math.min(u, d) * Be), [h, g] = P([-s, -c], {
542
592
  translateX: o.width / 2,
543
593
  translateY: o.height / 2,
544
594
  scale: f,
@@ -563,7 +613,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
563
613
  };
564
614
  }, [l, i]), y = e.useCallback(() => {
565
615
  let e = s(), { uid: t } = i(), n = e.reduce((e, n) => {
566
- let r = P(t, n.id);
616
+ let r = F(t, n.id);
567
617
  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;
568
618
  }, {
569
619
  left: Infinity,
@@ -575,7 +625,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
575
625
  a({ itemExtent: {
576
626
  x: 0,
577
627
  y: 0,
578
- radius: Ne
628
+ radius: ze
579
629
  } });
580
630
  return;
581
631
  }
@@ -583,7 +633,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
583
633
  x: (n.right + n.left) / 2,
584
634
  y: (n.bottom + n.top) / 2
585
635
  };
586
- r.radius = Math.max(ie([r.x, r.y], [n.left, n.top]), Ne), a({ itemExtent: r });
636
+ r.radius = Math.max(ue([r.x, r.y], [n.left, n.top]), ze), a({ itemExtent: r });
587
637
  }, [
588
638
  i,
589
639
  s,
@@ -602,7 +652,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
602
652
  ]), x = u(() => y(), [y], 200);
603
653
  return e.useEffect(() => {
604
654
  window.debugUpdateExtent = () => y(), window.debugDisplayExtent = () => console.log(i().itemExtent), window.debugSetDebug = () => {
605
- z = !0;
655
+ Ve = !0;
606
656
  };
607
657
  }, [i, y]), {
608
658
  setDim: m,
@@ -618,8 +668,8 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
618
668
  fromWrapperToBoard: l,
619
669
  fromBoardToWrapper: d
620
670
  };
621
- }, V = (t) => {
622
- let [n, r, i] = R(({ register: e, unregister: t, callInteractions: n }) => [
671
+ }, He = (t) => {
672
+ let [n, r, i] = z(({ register: e, unregister: t, callInteractions: n }) => [
623
673
  e,
624
674
  t,
625
675
  n
@@ -636,176 +686,169 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
636
686
  i(t, e);
637
687
  }, [i, t])
638
688
  };
639
- }, H = () => {
640
- let { call: t } = V("place"), { call: n } = V("delete"), { getCenter: r, updateItemExtent: i } = B(), [a, o, s, c] = R((e) => [
689
+ }, V = () => {
690
+ let { call: t } = He("place"), { call: n } = He("delete"), { getCenter: r, updateItemExtent: i } = B(), [a, o, s, c] = z((e) => [
641
691
  e.clear,
642
692
  e.reverse,
643
693
  e.unselect,
644
694
  e.getConfiguration
645
- ]), { 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 }) => ({
646
- getItems: e,
647
- getItemIds: t,
648
- setItemIds: n,
649
- updateItems: r,
650
- moveItems: i,
651
- removeItemsById: a,
652
- getItemList: o,
653
- insertItems: s,
654
- setItemList: c
655
- })), v = e.useCallback((e, t, n = !1) => {
695
+ ]), { getBoardConfig: l, getItems: u, getItemIds: d, setItemIds: f, updateItems: p, moveItems: m, removeItemsById: h, getItemList: g, insertItems: _, setItemList: v } = R(({ getBoardConfig: e, getItems: t, getItemIds: n, setItemIds: r, updateItems: i, moveItems: a, removeItemsById: o, getItemList: s, insertItems: c, setItemList: l }) => ({
696
+ getBoardConfig: e,
697
+ getItems: t,
698
+ getItemIds: n,
699
+ setItemIds: r,
700
+ updateItems: i,
701
+ moveItems: a,
702
+ removeItemsById: o,
703
+ getItemList: s,
704
+ insertItems: c,
705
+ setItemList: l
706
+ })), y = e.useCallback((e, t, n = !1) => {
656
707
  let r = t;
657
708
  typeof t == "object" && (r = () => t);
658
- let a = u().filter((t) => e.includes(t)), o = l(), s = a.map((e) => {
709
+ let a = d().filter((t) => e.includes(t)), o = u(), s = a.map((e) => {
659
710
  let t = o[e];
660
711
  return n ? [e, r(t)] : [e, r({ ...t })];
661
712
  }).filter(([, e]) => e);
662
713
  if (s.length === 0) return;
663
714
  let c = Object.fromEntries(s);
664
- f(c, n), i();
715
+ p(c, n), i();
665
716
  }, [
717
+ d,
666
718
  u,
667
- l,
668
719
  i,
669
- f
670
- ]), y = e.useCallback((e) => {
671
- _(e), a(), i();
720
+ p
721
+ ]), b = e.useCallback((e) => {
722
+ v(e), a(), i();
672
723
  }, [
673
724
  a,
674
- _,
725
+ v,
675
726
  i
676
- ]), b = e.useCallback((e, t, n = !1) => {
677
- v([e], t, n);
678
- }, [v]), x = e.useCallback((e, t) => {
679
- p(de(l(), u(), e), t);
727
+ ]), x = e.useCallback((e, t, n = !1) => {
728
+ y([e], t, n);
729
+ }, [y]), S = e.useCallback((e, t) => {
730
+ m(ve(u(), d(), e), t);
680
731
  }, [
732
+ d,
681
733
  u,
682
- l,
683
- p
684
- ]), S = e.useCallback((e) => {
685
- let t = u(), n = t.filter((t) => !e.includes(t)), r = t.filter((t) => e.includes(t));
686
- d([...n, ...r]);
687
- }, [u, d]), C = e.useCallback((e, { type: t, size: n } = {}) => {
688
- let { uid: r } = c();
689
- v(e, (e) => {
690
- let i = P(r, e.id);
691
- if (!i) return;
692
- let a = {
693
- type: t || "grid",
694
- size: n || 1,
695
- offset: {
696
- x: 0,
697
- y: 0
698
- },
699
- ...e.grid
700
- };
701
- return fe({
734
+ m
735
+ ]), C = e.useCallback((e) => {
736
+ let t = d(), n = t.filter((t) => !e.includes(t)), r = t.filter((t) => e.includes(t));
737
+ f([...n, ...r]);
738
+ }, [d, f]), w = e.useCallback((e, t) => {
739
+ let { uid: n } = c();
740
+ y(e, (e) => {
741
+ let r = F(n, e.id);
742
+ if (!r) return;
743
+ let i = ae(t, e.grid);
744
+ if (i) return le({
702
745
  x: e.x,
703
746
  y: e.y,
704
- width: i.clientWidth,
705
- height: i.clientHeight
706
- }, a);
747
+ ...se(r)
748
+ }, i);
707
749
  }, !0);
708
- }, [c, v]), w = e.useCallback((e, n) => {
709
- let r = de(l(), u(), e);
710
- S(r), v(r, { moving: !1 }, !0), C(r, n), t(e), i();
750
+ }, [c, y]), T = e.useCallback((e) => {
751
+ let n = ve(u(), d(), e);
752
+ C(n), y(n, { moving: !1 }, !0), w(n, l().grid), t(e), i();
711
753
  }, [
712
- v,
754
+ y,
713
755
  t,
714
- u,
715
756
  l,
716
- S,
757
+ d,
758
+ u,
717
759
  C,
760
+ w,
718
761
  i
719
762
  ]), ee = e.useCallback((e) => {
720
- d(e);
721
- }, [d]), T = e.useCallback((e) => {
722
- let t = u(), n = t.filter((t) => e.includes(t)), r = t.map((t) => e.includes(t) ? n.pop() : t);
723
- d(r), o();
763
+ f(e);
764
+ }, [f]), E = e.useCallback((e) => {
765
+ let t = d(), n = t.filter((t) => e.includes(t)), r = t.map((t) => e.includes(t) ? n.pop() : t);
766
+ f(r), o();
724
767
  }, [
725
- u,
768
+ d,
726
769
  o,
727
- d
728
- ]), E = e.useCallback((e, t) => {
729
- let n = l(), r = Object.fromEntries(t.map((t, r) => {
770
+ f
771
+ ]), te = e.useCallback((e, t) => {
772
+ let n = u(), r = Object.fromEntries(t.map((t, r) => {
730
773
  let i = n[e[r]];
731
774
  return [t, {
732
775
  x: i.x,
733
776
  y: i.y
734
777
  }];
735
778
  }));
736
- v(e, (e) => r[e.id], !0);
737
- let i = Object.fromEntries(e.map((e, n) => [e, t[n]])), a = u().map((t) => e.includes(t) ? i[t] : t);
738
- d(a);
779
+ y(e, (e) => r[e.id], !0);
780
+ let i = Object.fromEntries(e.map((e, n) => [e, t[n]])), a = d().map((t) => e.includes(t) ? i[t] : t);
781
+ f(a);
739
782
  }, [
740
- l,
741
- v,
742
783
  u,
743
- d
784
+ y,
785
+ d,
786
+ f
744
787
  ]), D = e.useCallback((e, t) => {
745
788
  let n = r(), i = e.map((e, t) => e.x === void 0 || e.x === null || e.y === void 0 || e.y === null ? {
746
789
  ...e,
747
790
  x: n.x + 2 * t,
748
791
  y: n.y + 2 * t
749
792
  } : e);
750
- g(i, t), requestAnimationFrame(() => {
751
- w(e.map(({ id: e }) => e));
793
+ _(i, t), requestAnimationFrame(() => {
794
+ T(e.map(({ id: e }) => e));
752
795
  });
753
796
  }, [
754
797
  r,
755
- g,
756
- w
757
- ]), te = e.useCallback((e, t) => {
798
+ _,
799
+ T
800
+ ]), O = e.useCallback((e, t) => {
758
801
  D([e], t);
759
- }, [D]), O = e.useCallback((e) => {
760
- s(e), m(e), n(e);
802
+ }, [D]), ne = e.useCallback((e) => {
803
+ s(e), h(e), n(e);
761
804
  }, [
762
805
  s,
763
- m,
806
+ h,
764
807
  n
765
- ]), ne = e.useCallback((e) => {
766
- let t = l();
808
+ ]), re = e.useCallback((e) => {
809
+ let t = u();
767
810
  return e.map((e) => t[e]);
768
- }, [l]);
811
+ }, [u]);
769
812
  return {
770
- putItemsOnTop: S,
771
- batchUpdateItems: v,
813
+ putItemsOnTop: C,
814
+ batchUpdateItems: y,
772
815
  updateItemOrder: ee,
773
- moveItems: x,
774
- placeItems: w,
775
- updateItem: b,
776
- swapItems: E,
777
- reverseItemsOrder: T,
778
- setItemList: y,
779
- pushItem: te,
816
+ moveItems: S,
817
+ placeItems: T,
818
+ updateItem: x,
819
+ swapItems: te,
820
+ reverseItemsOrder: E,
821
+ setItemList: b,
822
+ pushItem: O,
780
823
  pushItems: D,
781
- removeItems: O,
782
- getItemList: h,
824
+ removeItems: ne,
825
+ getItemList: g,
783
826
  findElementUnderPointer: e.useCallback(({ target: e, clientX: t, clientY: n }, { returnLocked: r = !1, passLocked: i = !1 } = {}) => {
784
827
  if (["INPUT", "TEXTAREA"].includes(e.tagName)) return null;
785
- let a = j(e, "item");
828
+ let a = N(e, "item");
786
829
  if (a) {
787
- if (A(a, "selected")) return a;
788
- if (!i && A(a, "locked") && !A(e, "passthrough")) return r ? a : null;
789
- if (A(e, "passthrough")) {
790
- let e = u(), { uid: r } = c(), o = e.reduce((e, i) => {
791
- let a = P(r, i), o = a.getBoundingClientRect();
792
- return N({
830
+ if (M(a, "selected")) return a;
831
+ if (!i && M(a, "locked") && !M(e, "passthrough")) return r ? a : null;
832
+ if (M(e, "passthrough")) {
833
+ let e = d(), { uid: r } = c(), o = e.reduce((e, i) => {
834
+ let a = F(r, i), o = a.getBoundingClientRect();
835
+ return pe({
793
836
  x: t,
794
837
  y: n
795
838
  }, o) && e.unshift(a), e;
796
839
  }, []);
797
840
  for (let e = 0; e < o.length; e += 1) {
798
841
  let t = o[e];
799
- if (t !== a && (i || !A(t, "locked"))) return t;
842
+ if (t !== a && (i || !M(t, "locked"))) return t;
800
843
  }
801
844
  return null;
802
845
  }
803
846
  }
804
847
  return a;
805
- }, [c, u]),
806
- getItems: ne
848
+ }, [c, d]),
849
+ getItems: re
807
850
  };
808
- }, Fe = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
851
+ }, Ue = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
809
852
  t.exports = function e(t, n) {
810
853
  if (t === n) return !0;
811
854
  if (t && n && typeof t == "object" && typeof n == "object") {
@@ -845,17 +888,17 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
845
888
  }
846
889
  return t !== t && n !== n;
847
890
  };
848
- })))(), 1), Ie = (e, t) => {
891
+ })))(), 1), We = (e, t) => {
849
892
  if (e.type in t) {
850
893
  let n = t[e.type].defaultActions;
851
894
  return typeof n == "function" ? n(e) : n;
852
895
  }
853
896
  return [];
854
- }, Le = (e, t) => {
855
- let { actions: n = Ie(e, t) } = e;
897
+ }, Ge = (e, t) => {
898
+ let { actions: n = We(e, t) } = e;
856
899
  return n.map((e) => typeof e == "string" ? { name: e } : e);
857
- }, Re = () => {
858
- let [t, r] = L((e) => [e.items, e.getItems]), [i, a, o] = R((e) => [
900
+ }, Ke = () => {
901
+ let [t, r] = R((e) => [e.items, e.getItems]), [i, a, o] = z((e) => [
859
902
  e.config.itemTemplates,
860
903
  e.selection,
861
904
  e.getSelection
@@ -873,9 +916,9 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
873
916
  if (e.length > 0) {
874
917
  if (!l.current) return;
875
918
  let e = t.reduce((e, t) => {
876
- let n = Le(t, i);
877
- return e.filter((e) => n.some((t) => (0, Fe.default)(e, t)));
878
- }, Le(t[0], i));
919
+ let n = Ge(t, i);
920
+ return e.filter((e) => n.some((t) => (0, Ue.default)(e, t)));
921
+ }, Ge(t[0], i));
879
922
  u(() => {
880
923
  c(e);
881
924
  });
@@ -888,28 +931,28 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
888
931
  a,
889
932
  p
890
933
  ], 100), { availableActions: s };
891
- }, ze = () => {
892
- let [e] = R((e) => [e.selectionBox]);
934
+ }, qe = () => {
935
+ let [e] = z((e) => [e.selectionBox]);
893
936
  return e;
894
- }, Be = e.createContext(), Ve = (e) => {
937
+ }, Je = e.createContext(), Ye = (e) => {
895
938
  localStorage.setItem("user", JSON.stringify(e));
896
- }, He = () => {
939
+ }, Xe = () => {
897
940
  if (localStorage.user) {
898
941
  let e = {
899
942
  name: "Player",
900
- color: me(),
943
+ color: be(),
901
944
  uid: w(),
902
945
  ...JSON.parse(localStorage.user)
903
946
  };
904
- return Ve(e), e;
947
+ return Ye(e), e;
905
948
  }
906
949
  let e = {
907
950
  name: "Player",
908
- color: me(),
951
+ color: be(),
909
952
  uid: w()
910
953
  };
911
- return Ve(e), e;
912
- }, Ue = (e) => (t, n) => ({
954
+ return Ye(e), e;
955
+ }, Ze = (e) => (t, n) => ({
913
956
  isSpaceMaster: !1,
914
957
  users: {},
915
958
  getUser: () => n().users[e],
@@ -932,7 +975,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
932
975
  id: r,
933
976
  uid: t.users[r].uid
934
977
  };
935
- return a.id === e && Ve(a), setTimeout(() => n().electSpaceMaster(), 100), { users: {
978
+ return a.id === e && Ye(a), setTimeout(() => n().electSpaceMaster(), 100), { users: {
936
979
  ...t.users,
937
980
  [r]: a
938
981
  } };
@@ -955,7 +998,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
955
998
  e < i.timestamp && (i.id = t, i.timestamp = e);
956
999
  }), t({ isSpaceMaster: i.id === e });
957
1000
  }
958
- }), We = (e) => ({
1001
+ }), Qe = (e) => ({
959
1002
  cursors: {},
960
1003
  moveCursor: (t, n) => e((e) => ({ cursors: {
961
1004
  ...e.cursors,
@@ -965,12 +1008,12 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
965
1008
  let n = { ...e.cursors };
966
1009
  return delete n[t], { cursors: n };
967
1010
  })
968
- }), Ge = ({ storeName: t, children: n }) => {
1011
+ }), $e = ({ storeName: t, children: n }) => {
969
1012
  let { wire: r, isMaster: i } = k("room"), [o, c] = e.useState(null), [l, u] = e.useState(!1), d = e.useRef(!1);
970
1013
  return e.useEffect(() => {
971
1014
  let e = !0, n = [];
972
1015
  if (!o && !d.current) return d.current = !0, (() => {
973
- let n = s(I({
1016
+ let n = s(L({
974
1017
  wire: r,
975
1018
  storeName: t,
976
1019
  noSync: [
@@ -980,8 +1023,8 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
980
1023
  "electSpaceMaster"
981
1024
  ]
982
1025
  }, (...e) => ({
983
- ...Ue(r.userId)(...e),
984
- ...We(...e)
1026
+ ...Ze(r.userId)(...e),
1027
+ ...Qe(...e)
985
1028
  }), r, t)), i = n.subscribe((t) => {
986
1029
  t.ready && (i(), e && c(n));
987
1030
  });
@@ -995,7 +1038,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
995
1038
  r.userId
996
1039
  ]), e.useEffect(() => {
997
1040
  if (o) return o.getState().addUser({
998
- ...He(),
1041
+ ...Xe(),
999
1042
  id: r.userId
1000
1043
  }), u(!0), () => {
1001
1044
  o.getState().removeUser(r.userId);
@@ -1023,15 +1066,15 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
1023
1066
  i,
1024
1067
  o,
1025
1068
  r
1026
- ]), l ? /* @__PURE__ */ a(Be.Provider, {
1069
+ ]), l ? /* @__PURE__ */ a(Je.Provider, {
1027
1070
  value: o,
1028
1071
  children: n
1029
1072
  }) : null;
1030
- }, U = (e) => {
1031
- let t = r(Be);
1073
+ }, H = (e) => {
1074
+ let t = r(Je);
1032
1075
  return c(t, e, l);
1033
- }, Ke = () => {
1034
- let [t, n, r, i, a] = U((e) => [
1076
+ }, et = () => {
1077
+ let [t, n, r, i, a] = H((e) => [
1035
1078
  e.isSpaceMaster,
1036
1079
  e.getUser(),
1037
1080
  e.users,
@@ -1049,8 +1092,8 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
1049
1092
  }, [n, o]),
1050
1093
  joinSpace: a
1051
1094
  };
1052
- }, qe = () => {
1053
- let [t, n, r] = L((e) => [
1095
+ }, tt = () => {
1096
+ let [t, n, r] = R((e) => [
1054
1097
  e.boardConfig,
1055
1098
  e.getBoardConfig,
1056
1099
  e.setBoardConfig
@@ -1061,11 +1104,11 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
1061
1104
  let i = n(), a = t(i);
1062
1105
  r(a);
1063
1106
  }, [n, r])];
1064
- }, Je = () => {
1065
- let [e] = R((e) => [e.boardState]);
1107
+ }, nt = () => {
1108
+ let [e] = z((e) => [e.boardState]);
1066
1109
  return e;
1067
- }, Ye = () => {
1068
- let [e, t, n, r] = L((e) => [
1110
+ }, rt = () => {
1111
+ let [e, t, n, r] = R((e) => [
1069
1112
  e.getSessionInfo,
1070
1113
  e.setSessionInfo,
1071
1114
  e.updateSessionInfo,
@@ -1077,7 +1120,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
1077
1120
  sessionInfo: r,
1078
1121
  updateSessionInfo: n
1079
1122
  };
1080
- }, Xe = e.createContext(), Ze = ({ user: { name: e, uid: t, color: n }, content: r }) => ({
1123
+ }, it = e.createContext(), at = ({ user: { name: e, uid: t, color: n }, content: r }) => ({
1081
1124
  type: "message",
1082
1125
  user: {
1083
1126
  name: e,
@@ -1087,7 +1130,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
1087
1130
  content: r,
1088
1131
  uid: w(),
1089
1132
  timestamp: (/* @__PURE__ */ new Date()).toISOString()
1090
- }), Qe = (e, t) => ({
1133
+ }), ot = (e, t) => ({
1091
1134
  messages: [],
1092
1135
  setMessages: (t) => e({ messages: t.map((e) => ({
1093
1136
  ...e,
@@ -1098,28 +1141,28 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
1098
1141
  timestamp: Date.parse(t.timestamp)
1099
1142
  }] })),
1100
1143
  sendMessage: (e, n) => {
1101
- let r = Ze({
1144
+ let r = at({
1102
1145
  user: e,
1103
1146
  content: n
1104
1147
  });
1105
1148
  r && t().addMessage(r);
1106
1149
  }
1107
- }), $e = ({ storeName: t, children: n, defaultValue: r = [] }) => {
1108
- let { wire: i } = k("room"), [o] = e.useState(() => s(I({
1150
+ }), st = ({ storeName: t, children: n, defaultValue: r = [] }) => {
1151
+ let { wire: i } = k("room"), [o] = e.useState(() => s(L({
1109
1152
  wire: i,
1110
1153
  storeName: t,
1111
1154
  defaultValue: r,
1112
1155
  noSync: ["sendMessage"]
1113
- }, (...e) => ({ ...Qe(...e) }))));
1114
- return /* @__PURE__ */ a(Xe.Provider, {
1156
+ }, (...e) => ({ ...ot(...e) }))));
1157
+ return /* @__PURE__ */ a(it.Provider, {
1115
1158
  value: o,
1116
1159
  children: n
1117
1160
  });
1118
- }, et = (e) => {
1119
- let t = r(Xe);
1161
+ }, ct = (e) => {
1162
+ let t = r(it);
1120
1163
  return c(t, e, l);
1121
- }, tt = () => {}, nt = (t = tt) => {
1122
- let n = U((e) => e.getUser()), [r, i, a] = et((e) => [
1164
+ }, lt = () => {}, ut = (t = lt) => {
1165
+ let n = H((e) => e.getUser()), [r, i, a] = ct((e) => [
1123
1166
  e.messages,
1124
1167
  e.setMessages,
1125
1168
  e.sendMessage
@@ -1133,23 +1176,23 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
1133
1176
  a(n, e);
1134
1177
  }, [n, a])
1135
1178
  };
1136
- }, rt = ({ children: t, session: n }) => {
1137
- let r = U((e) => e.joinSpace);
1179
+ }, dt = ({ children: t, session: n }) => {
1180
+ let r = H((e) => e.joinSpace);
1138
1181
  return e.useEffect(() => (r(n), () => {
1139
1182
  r(null);
1140
1183
  }), [r, n]), t;
1141
- }, it = ({ socket: t, room: n, session: r, items: i = [], messages: o = [], LoadingComponent: s, ...c }) => {
1184
+ }, ft = ({ socket: t, room: n, session: r, items: i = [], messages: o = [], LoadingComponent: s, ...c }) => {
1142
1185
  let [l] = e.useState(n || w()), [u] = e.useState(r || w()), [d] = e.useState(() => ({
1143
1186
  itemIds: i.map(({ id: e }) => e),
1144
1187
  items: Object.fromEntries(i.map((e) => [e.id, e]))
1145
1188
  }));
1146
- return k("room") ? /* @__PURE__ */ a($e, {
1189
+ return k("room") ? /* @__PURE__ */ a(st, {
1147
1190
  storeName: `${u}_messages`,
1148
1191
  defaultValue: o,
1149
- children: /* @__PURE__ */ a(Ae, { children: /* @__PURE__ */ a(xe, {
1192
+ children: /* @__PURE__ */ a(Ie, { children: /* @__PURE__ */ a(De, {
1150
1193
  storeName: `${u}_item`,
1151
1194
  defaultValue: d,
1152
- children: /* @__PURE__ */ a(rt, {
1195
+ children: /* @__PURE__ */ a(dt, {
1153
1196
  ...c,
1154
1197
  session: u
1155
1198
  })
@@ -1159,15 +1202,15 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
1159
1202
  channel: "room",
1160
1203
  socket: t,
1161
1204
  LoadingComponent: s,
1162
- children: /* @__PURE__ */ a(Ge, {
1205
+ children: /* @__PURE__ */ a($e, {
1163
1206
  storeName: `${l}_users`,
1164
- children: /* @__PURE__ */ a($e, {
1207
+ children: /* @__PURE__ */ a(st, {
1165
1208
  storeName: `${u}_messages`,
1166
1209
  defaultValue: o,
1167
- children: /* @__PURE__ */ a(Ae, { children: /* @__PURE__ */ a(xe, {
1210
+ children: /* @__PURE__ */ a(Ie, { children: /* @__PURE__ */ a(De, {
1168
1211
  storeName: `${u}_item`,
1169
1212
  defaultValue: d,
1170
- children: /* @__PURE__ */ a(rt, {
1213
+ children: /* @__PURE__ */ a(dt, {
1171
1214
  ...c,
1172
1215
  session: u
1173
1216
  })
@@ -1175,19 +1218,19 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
1175
1218
  })
1176
1219
  })
1177
1220
  });
1178
- }, at = ({ socket: t, room: n, children: r, LoadingComponent: i }) => {
1221
+ }, pt = ({ socket: t, room: n, children: r, LoadingComponent: i }) => {
1179
1222
  let [o] = e.useState(n || w());
1180
1223
  return /* @__PURE__ */ a(re, {
1181
1224
  room: o,
1182
1225
  channel: "room",
1183
1226
  socket: t,
1184
1227
  LoadingComponent: i,
1185
- children: /* @__PURE__ */ a(Ge, {
1228
+ children: /* @__PURE__ */ a($e, {
1186
1229
  storeName: `${o}_users`,
1187
1230
  children: r
1188
1231
  })
1189
1232
  });
1190
- }, ot = { data: "" }, st = (e) => {
1233
+ }, mt = { data: "" }, ht = (e) => {
1191
1234
  if (typeof window == "object") {
1192
1235
  let t = (e ? e.querySelector("#_goober") : window._goober) || Object.assign(document.createElement("style"), {
1193
1236
  innerHTML: " ",
@@ -1195,58 +1238,58 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
1195
1238
  });
1196
1239
  return t.nonce = window.__nonce__, t.parentNode || (e || document.head).appendChild(t), t.firstChild;
1197
1240
  }
1198
- return e || ot;
1199
- }, ct = /(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g, lt = /\/\*[^]*?\*\/| +/g, ut = /\n+/g, W = (e, t) => {
1241
+ return e || mt;
1242
+ }, gt = /(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g, _t = /\/\*[^]*?\*\/| +/g, vt = /\n+/g, U = (e, t) => {
1200
1243
  let n = "", r = "", i = "";
1201
1244
  for (let a in e) {
1202
1245
  let o = e[a];
1203
- 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 + ";");
1246
+ a[0] == "@" ? a[1] == "i" ? n = a + " " + o + ";" : r += a[1] == "f" ? U(o, a) : a + "{" + U(o, a[1] == "k" ? "" : t) + "}" : typeof o == "object" ? r += U(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 += U.p ? U.p(a, o) : a + ":" + o + ";");
1204
1247
  }
1205
1248
  return n + (t && i ? t + "{" + i + "}" : i) + r;
1206
- }, G = {}, dt = (e) => {
1249
+ }, W = {}, yt = (e) => {
1207
1250
  if (typeof e == "object") {
1208
1251
  let t = "";
1209
- for (let n in e) t += n + dt(e[n]);
1252
+ for (let n in e) t += n + yt(e[n]);
1210
1253
  return t;
1211
1254
  }
1212
1255
  return e;
1213
- }, ft = (e, t, n, r, i) => {
1214
- let a = dt(e), o = G[a] || (G[a] = ((e) => {
1256
+ }, bt = (e, t, n, r, i) => {
1257
+ let a = yt(e), o = W[a] || (W[a] = ((e) => {
1215
1258
  let t = 0, n = 11;
1216
1259
  for (; t < e.length;) n = 101 * n + e.charCodeAt(t++) >>> 0;
1217
1260
  return "go" + n;
1218
1261
  })(a));
1219
- if (!G[o]) {
1262
+ if (!W[o]) {
1220
1263
  let t = a === e ? ((e) => {
1221
1264
  let t, n, r = [{}];
1222
- 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();
1265
+ for (; t = gt.exec(e.replace(_t, ""));) t[4] ? r.shift() : t[3] ? (n = t[3].replace(vt, " ").trim(), r.unshift(r[0][n] = r[0][n] || {})) : r[0][t[1]] = t[2].replace(vt, " ").trim();
1223
1266
  return r[0];
1224
1267
  })(e) : e;
1225
- G[o] = W(i ? { ["@keyframes " + o]: t } : t, n ? "" : "." + o);
1268
+ W[o] = U(i ? { ["@keyframes " + o]: t } : t, n ? "" : "." + o);
1226
1269
  }
1227
- let s = n && G.g;
1228
- return n && (G.g = G[o]), ((e, t, n, r) => {
1270
+ let s = n && W.g;
1271
+ return n && (W.g = W[o]), ((e, t, n, r) => {
1229
1272
  r ? t.data = t.data.replace(r, e) : t.data.indexOf(e) === -1 && (t.data = n ? e + t.data : t.data + e);
1230
- })(G[o], t, r, s), o;
1231
- }, pt = (e, t, n) => e.reduce((e, r, i) => {
1273
+ })(W[o], t, r, s), o;
1274
+ }, xt = (e, t, n) => e.reduce((e, r, i) => {
1232
1275
  let a = t[i];
1233
1276
  if (a && a.call) {
1234
1277
  let e = a(n), t = e && e.props && e.props.className || /^go/.test(e) && e;
1235
- a = t ? "." + t : e && typeof e == "object" ? e.props ? "" : W(e, "") : !1 === e ? "" : e;
1278
+ a = t ? "." + t : e && typeof e == "object" ? e.props ? "" : U(e, "") : !1 === e ? "" : e;
1236
1279
  }
1237
1280
  return e + r + (a ?? "");
1238
1281
  }, "");
1239
- function K(e) {
1282
+ function G(e) {
1240
1283
  let t = this || {}, n = e.call ? e(t.p) : e;
1241
- 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);
1284
+ return bt(n.unshift ? n.raw ? xt(n, [].slice.call(arguments, 1), t.p) : n.reduce((e, n) => Object.assign(e, n && n.call ? n(t.p) : n), {}) : n, ht(t.target), t.g, t.o, t.k);
1242
1285
  }
1243
- K.bind({ g: 1 }), K.bind({ k: 1 });
1244
- function mt(e, t, n, r) {
1245
- W.p = t;
1286
+ G.bind({ g: 1 }), G.bind({ k: 1 });
1287
+ function St(e, t, n, r) {
1288
+ U.p = t;
1246
1289
  }
1247
1290
  //#endregion
1248
1291
  //#region src/lib/board/Gesture.jsx
1249
- var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1292
+ var Ct = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1250
1293
  t.exports = function e(t, n) {
1251
1294
  if (t === n) return !0;
1252
1295
  if (t && n && typeof t == "object" && typeof n == "object") {
@@ -1270,44 +1313,44 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1270
1313
  }
1271
1314
  return t !== t && n !== n;
1272
1315
  };
1273
- })))(), 1), gt = () => {
1316
+ })))(), 1), wt = () => {
1274
1317
  let e = navigator.userAgent.toLowerCase();
1275
1318
  return /mac os ?x 10/.test(e);
1276
- }, _t = (() => {
1319
+ }, Tt = (() => {
1277
1320
  let e = document.createElement("iframe");
1278
1321
  e.src = "#", document.body.appendChild(e);
1279
1322
  let t = e.contentWindow.document;
1280
1323
  t.open(), t.write("<!DOCTYPE html><html><head></head><body><span>a</span></body></html>"), t.close();
1281
1324
  let n = t.body.firstElementChild.offsetHeight;
1282
1325
  return document.body.removeChild(e), n;
1283
- })(), vt = 800, yt = (e, t) => e[Object.keys(e).map((e) => Number(e)).find((e) => e !== t)], bt = ([e, t], [n, r]) => {
1326
+ })(), Et = 800, Dt = (e, t) => e[Object.keys(e).map((e) => Number(e)).find((e) => e !== t)], Ot = ([e, t], [n, r]) => {
1284
1327
  let i = Math.abs(e - n), a = Math.abs(t - r);
1285
1328
  return Math.hypot(i, a);
1286
- }, q = () => {}, xt = (e) => (t) => {
1329
+ }, K = () => {}, kt = (e) => (t) => {
1287
1330
  let { event: n } = t;
1288
1331
  return n.isPropagationStopped() ? null : e(t);
1289
- }, St = (e) => async (...t) => {
1332
+ }, At = (e) => async (...t) => {
1290
1333
  try {
1291
1334
  await e(...t);
1292
1335
  } catch (e) {
1293
1336
  console.error(e);
1294
1337
  }
1295
- }, J = new class {
1338
+ }, q = new class {
1296
1339
  lastPromise = Promise.resolve(!0);
1297
1340
  add(e, ...t) {
1298
1341
  return new Promise((n, r) => {
1299
- this.lastPromise = this.lastPromise.then(() => xt(St(e))(...t)).then(n).catch(r);
1342
+ this.lastPromise = this.lastPromise.then(() => kt(At(e))(...t)).then(n).catch(r);
1300
1343
  });
1301
1344
  }
1302
- }(), 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 }) => {
1345
+ }(), J = ({ children: t, onDrag: n = K, onDragStart: r = K, onDragEnd: i = K, onPan: o = K, onTap: s = K, onLongTap: c = K, onDoubleTap: l = K, onZoom: u, mainAction: d = "drag", fill: f = !1 }) => {
1303
1346
  let p = e.useRef(null), m = e.useRef({
1304
1347
  moving: !1,
1305
1348
  pointers: {},
1306
1349
  mainPointer: void 0
1307
1350
  }), h = (e) => {
1308
1351
  let { deltaX: t, deltaY: n, clientX: r, clientY: i, deltaMode: a, ctrlKey: s, altKey: c, metaKey: l, target: d } = e;
1309
- if (!(c || s && !gt())) {
1310
- if (gt() && !s) J.add(o, {
1352
+ if (!(c || s && !wt())) {
1353
+ if (wt() && !s) q.add(o, {
1311
1354
  deltaX: -2 * t,
1312
1355
  deltaY: -2 * n,
1313
1356
  button: 1,
@@ -1321,11 +1364,11 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1321
1364
  let t = n;
1322
1365
  switch (a) {
1323
1366
  case 1:
1324
- t *= _t;
1367
+ t *= Tt;
1325
1368
  break;
1326
- case 2: t *= vt;
1369
+ case 2: t *= Et;
1327
1370
  }
1328
- gt() && (t *= 2), J.add(u, {
1371
+ wt() && (t *= 2), q.add(u, {
1329
1372
  scale: t,
1330
1373
  clientX: r,
1331
1374
  clientY: i,
@@ -1340,7 +1383,7 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1340
1383
  clientY: i
1341
1384
  }, u && (m.current.mainPointer = void 0), m.current.mainPointer !== void 0) {
1342
1385
  if (m.current.mainPointer !== a) try {
1343
- let { clientX: e, clientY: t } = yt(m.current.pointers, a), n = (e + r) / 2, o = (t + i) / 2, s = bt([e, t], [r, i]);
1386
+ let { clientX: e, clientY: t } = Dt(m.current.pointers, a), n = (e + r) / 2, o = (t + i) / 2, s = Ot([e, t], [r, i]);
1344
1387
  Object.assign(m.current, {
1345
1388
  pressed: !0,
1346
1389
  moving: !1,
@@ -1372,7 +1415,7 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1372
1415
  target: t,
1373
1416
  timeStart: Date.now(),
1374
1417
  longTapTimeout: setTimeout(async () => {
1375
- m.current.noTap = !0, J.add(c, {
1418
+ m.current.noTap = !0, q.add(c, {
1376
1419
  clientX: r,
1377
1420
  clientY: i,
1378
1421
  altKey: o,
@@ -1397,14 +1440,14 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1397
1440
  }, m.current.moving = !0;
1398
1441
  let g = Object.keys(m.current.pointers).length === 2, _, v, y = 0;
1399
1442
  if (g) {
1400
- let { clientX: e, clientY: n } = yt(m.current.pointers, t);
1401
- _ = (e + i) / 2, v = (n + a) / 2, y = bt([e, n], [i, a]);
1443
+ let { clientX: e, clientY: n } = Dt(m.current.pointers, t);
1444
+ _ = (e + i) / 2, v = (n + a) / 2, y = Ot([e, n], [i, a]);
1402
1445
  } else _ = i, v = a;
1403
1446
  let b = c || s || l || f || h !== 1;
1404
1447
  d !== "drag" && (b = !b);
1405
1448
  let x = !b, S = b;
1406
1449
  if (x) {
1407
- m.current.gestureStart || (p.current.style.cursor = "move", m.current.gestureStart = !0, clearTimeout(m.current.longTapTimeout), J.add(r, {
1450
+ m.current.gestureStart || (p.current.style.cursor = "move", m.current.gestureStart = !0, clearTimeout(m.current.longTapTimeout), q.add(r, {
1408
1451
  deltaX: 0,
1409
1452
  deltaY: 0,
1410
1453
  startX: m.current.startX,
@@ -1422,7 +1465,7 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1422
1465
  event: m.current.pointerDownEvent
1423
1466
  }));
1424
1467
  let t = _ - m.current.prevX, i = v - m.current.prevY, a = _ - m.current.startX, o = v - m.current.startY;
1425
- J.add(n, {
1468
+ q.add(n, {
1426
1469
  deltaX: t,
1427
1470
  deltaY: i,
1428
1471
  startX: m.current.startX,
@@ -1443,7 +1486,7 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1443
1486
  if (S) {
1444
1487
  m.current.gestureStart || (p.current.style.cursor = "move", m.current.gestureStart = !0, clearTimeout(m.current.longTapTimeout));
1445
1488
  let t = _ - m.current.prevX, n = v - m.current.prevY, { target: r } = m.current;
1446
- if (J.add(o, {
1489
+ if (q.add(o, {
1447
1490
  deltaX: t,
1448
1491
  deltaY: n,
1449
1492
  button: m.current.currentButton,
@@ -1455,7 +1498,7 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1455
1498
  event: e
1456
1499
  }), y !== m.current.prevDistance && u) {
1457
1500
  let t = m.current.prevDistance - y;
1458
- Math.abs(t) > 0 && (J.add(u, {
1501
+ Math.abs(t) > 0 && (q.add(u, {
1459
1502
  scale: t * 3,
1460
1503
  clientX: _,
1461
1504
  clientY: v,
@@ -1494,7 +1537,7 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1494
1537
  console.log("Fails to set pointer capture", e), m.current.mainPointer = void 0, delete m.current.pointers[Object.keys(m.current.pointers)[0]];
1495
1538
  }
1496
1539
  }
1497
- if (m.current.mainPointer = void 0, m.current.pressed = !1, clearTimeout(m.current.longTapTimeout), m.current.moving) m.current.moving = !1, J.add(i, {
1540
+ if (m.current.mainPointer = void 0, m.current.pressed = !1, clearTimeout(m.current.longTapTimeout), m.current.moving) m.current.moving = !1, q.add(i, {
1498
1541
  deltaX: t - m.current.prevX,
1499
1542
  deltaY: n - m.current.prevY,
1500
1543
  startX: m.current.startX,
@@ -1512,7 +1555,7 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1512
1555
  }), p.current.style.cursor = "auto";
1513
1556
  else {
1514
1557
  let i = Date.now();
1515
- m.current.noTap ? m.current.noTap = !1 : m.current.timeStart - i < 300 && J.add(s, {
1558
+ m.current.noTap ? m.current.noTap = !1 : m.current.timeStart - i < 300 && q.add(s, {
1516
1559
  clientX: t,
1517
1560
  clientY: n,
1518
1561
  altKey: r,
@@ -1533,7 +1576,7 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1533
1576
  onPointerCancel: v,
1534
1577
  onDoubleClick: (e) => {
1535
1578
  let { clientX: t, clientY: n, altKey: r, shiftKey: i, ctrlKey: a, metaKey: o, target: s } = e;
1536
- J.add(l, {
1579
+ q.add(l, {
1537
1580
  clientX: t,
1538
1581
  clientY: n,
1539
1582
  altKey: r,
@@ -1554,9 +1597,9 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1554
1597
  ref: p,
1555
1598
  children: t
1556
1599
  });
1557
- }, Ct = ({ onResize: e, ...t }) => {
1558
- let [n] = R((e) => [e.getBoardState]);
1559
- return /* @__PURE__ */ a(Y, {
1600
+ }, jt = ({ onResize: e, ...t }) => {
1601
+ let [n] = z((e) => [e.getBoardState]);
1602
+ return /* @__PURE__ */ a(J, {
1560
1603
  onDrag: ({ deltaX: t, deltaY: r, event: i }) => {
1561
1604
  i.stopPropagation();
1562
1605
  let { scale: a } = n();
@@ -1567,36 +1610,36 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1567
1610
  },
1568
1611
  children: /* @__PURE__ */ a("div", { ...t })
1569
1612
  });
1570
- }, wt = K`
1613
+ }, Mt = G`
1571
1614
  display: inline-block;
1572
1615
  transition: transform 150ms;
1573
1616
  user-select: none;
1574
1617
  padding: 2px;
1575
1618
  box-sizing: border-box;
1576
- `, Tt = K`
1619
+ `, Nt = G`
1577
1620
  border: 2px dashed #db5034;
1578
1621
  padding: 0px;
1579
1622
  cursor: pointer;
1580
- `, X = K`
1623
+ `, Y = G`
1581
1624
  position: absolute;
1582
1625
  width: 0px;
1583
1626
  height: 0px;
1584
- `, Et = K`
1627
+ `, Pt = G`
1585
1628
  top: 0;
1586
1629
  left: 0;
1587
- `, Dt = K`
1630
+ `, Ft = G`
1588
1631
  top: 0;
1589
1632
  right: 0;
1590
- `, Ot = K`
1633
+ `, It = G`
1591
1634
  bottom: 0;
1592
1635
  left: 0;
1593
- `, kt = K`
1636
+ `, Lt = G`
1594
1637
  bottom: 0;
1595
1638
  right: 0;
1596
- `, At = K`
1639
+ `, Rt = G`
1597
1640
  top: 50%;
1598
1641
  left: 50%;
1599
- `, jt = K`
1642
+ `, X = G`
1600
1643
  position: absolute;
1601
1644
 
1602
1645
  width: 10px;
@@ -1604,20 +1647,20 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1604
1647
  border: 2px solid #db5034;
1605
1648
  background-color: #db5034;
1606
1649
  cursor: move;
1607
- `, Mt = K`
1650
+ `, zt = G`
1608
1651
  cursor: ew-resize;
1609
1652
  right: -6px;
1610
1653
  top: calc(50% - 5px);
1611
- `, Nt = K`
1654
+ `, Bt = G`
1612
1655
  cursor: ns-resize;
1613
1656
  bottom: -6px;
1614
1657
  left: calc(50% - 5px);
1615
- `, Pt = K`
1658
+ `, Vt = G`
1616
1659
  cursor: nwse-resize;
1617
1660
  bottom: -6px;
1618
1661
  right: -6px;
1619
- `, Ft = ({ onReload: e }) => /* @__PURE__ */ o("div", {
1620
- className: `syncboard-error-item ${K({
1662
+ `, Ht = ({ onReload: e }) => /* @__PURE__ */ o("div", {
1663
+ className: `syncboard-error-item ${G({
1621
1664
  width: "100px",
1622
1665
  display: "flex",
1623
1666
  flexDirection: "column",
@@ -1629,7 +1672,7 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1629
1672
  onClick: e,
1630
1673
  children: "Reload it"
1631
1674
  })]
1632
- }), It = class extends e.Component {
1675
+ }), Ut = class extends e.Component {
1633
1676
  constructor(e) {
1634
1677
  super(e), this.state = {
1635
1678
  hasError: !1,
@@ -1649,9 +1692,9 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1649
1692
  let { ErrorComponent: e } = this.props;
1650
1693
  return this.state.hasError ? /* @__PURE__ */ a(e, { onReload: this.onReload }) : this.props.children;
1651
1694
  }
1652
- }, Lt = (e) => {
1695
+ }, Wt = (e) => {
1653
1696
  e.target.className = "";
1654
- }, Rt = ({ width: e, height: t, actualWidth: n, actualHeight: r, prevState: i, keepRatio: a }) => {
1697
+ }, Gt = ({ width: e, height: t, actualWidth: n, actualHeight: r, prevState: i, keepRatio: a }) => {
1655
1698
  let { width: o, height: s } = i;
1656
1699
  if ([o, s] = [parseFloat(o), parseFloat(s)], (!o || Number.isNaN(Number(o))) && (o = n), (!s || Number.isNaN(Number(s))) && (s = r), a) {
1657
1700
  let n = o / s;
@@ -1666,21 +1709,21 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1666
1709
  width: (o + e).toFixed(1),
1667
1710
  height: (s + t).toFixed(1)
1668
1711
  };
1669
- }, zt = {
1712
+ }, Kt = {
1670
1713
  w: !0,
1671
1714
  h: !0,
1672
1715
  b: !0
1673
- }, 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 }) => {
1674
- 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]);
1716
+ }, qt = 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 }) => {
1717
+ let h = e.useRef(null), [g] = z((e) => [e.config.uid]), { component: _ = () => null, resizeDirections: v = Kt, resize: y = Gt } = p[n], b = e.useCallback((e, n = !1) => t(s, e, n), [t, s]);
1675
1718
  e.useEffect(() => {
1676
1719
  h.current.className = d;
1677
1720
  }, [d]);
1678
1721
  let x = [
1679
1722
  "item",
1680
1723
  s,
1681
- wt
1724
+ Mt
1682
1725
  ];
1683
- c && x.push("locked"), f && (x.push("selected"), x.push(Tt)), Array.isArray(l) && x.concat(l);
1726
+ c && x.push("locked"), f && (x.push("selected"), x.push(Nt)), Array.isArray(l) && x.concat(l);
1684
1727
  let S = x.join(" "), C = ({ width: e = 0, height: t = 0, keepRatio: n }) => {
1685
1728
  b((r) => {
1686
1729
  let { offsetWidth: i, offsetHeight: a } = h.current;
@@ -1695,9 +1738,9 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1695
1738
  });
1696
1739
  }, w = ({ width: e }) => {
1697
1740
  C({ width: e });
1698
- }, ee = ({ height: e }) => {
1741
+ }, T = ({ height: e }) => {
1699
1742
  C({ height: e });
1700
- }, T = ({ width: e }) => {
1743
+ }, ee = ({ width: e }) => {
1701
1744
  C({
1702
1745
  height: e,
1703
1746
  width: e,
@@ -1712,63 +1755,63 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1712
1755
  children: /* @__PURE__ */ o("div", {
1713
1756
  style: { display: "flex" },
1714
1757
  ref: h,
1715
- onAnimationEnd: Lt,
1758
+ onAnimationEnd: Wt,
1716
1759
  onKeyDown: (e) => e.stopPropagation(),
1717
1760
  onKeyUp: (e) => e.stopPropagation(),
1718
1761
  children: [
1719
- /* @__PURE__ */ a(It, {
1762
+ /* @__PURE__ */ a(Ut, {
1720
1763
  itemId: s,
1721
1764
  state: u,
1722
- ErrorComponent: p?.error?.component || Ft,
1765
+ ErrorComponent: p?.error?.component || Ht,
1723
1766
  children: /* @__PURE__ */ a(_, {
1724
1767
  ...u,
1725
1768
  id: s,
1726
1769
  setState: b
1727
1770
  })
1728
1771
  }),
1729
- /* @__PURE__ */ a("div", { className: `corner ${X} ${Et}` }),
1730
- /* @__PURE__ */ a("div", { className: `corner ${X} ${Dt}` }),
1731
- /* @__PURE__ */ a("div", { className: `corner ${X} ${kt}` }),
1732
- /* @__PURE__ */ a("div", { className: `corner ${X} ${Ot}` }),
1733
- /* @__PURE__ */ a("div", { className: `center ${X} ${At}` }),
1772
+ /* @__PURE__ */ a("div", { className: `corner ${Y} ${Pt}` }),
1773
+ /* @__PURE__ */ a("div", { className: `corner ${Y} ${Ft}` }),
1774
+ /* @__PURE__ */ a("div", { className: `corner ${Y} ${Lt}` }),
1775
+ /* @__PURE__ */ a("div", { className: `corner ${Y} ${It}` }),
1776
+ /* @__PURE__ */ a("div", { className: `center ${Y} ${Rt}` }),
1734
1777
  m && /* @__PURE__ */ o(i, { children: [
1735
- v.b && /* @__PURE__ */ a(Ct, {
1736
- className: `${jt} ${Pt}`,
1737
- onResize: T
1738
- }),
1739
- v.h && /* @__PURE__ */ a(Ct, {
1740
- className: `${jt} ${Nt}`,
1778
+ v.b && /* @__PURE__ */ a(jt, {
1779
+ className: `${X} ${Vt}`,
1741
1780
  onResize: ee
1742
1781
  }),
1743
- v.w && /* @__PURE__ */ a(Ct, {
1744
- className: `${jt} ${Mt}`,
1782
+ v.h && /* @__PURE__ */ a(jt, {
1783
+ className: `${X} ${Bt}`,
1784
+ onResize: T
1785
+ }),
1786
+ v.w && /* @__PURE__ */ a(jt, {
1787
+ className: `${X} ${zt}`,
1745
1788
  onResize: w
1746
1789
  })
1747
1790
  ] })
1748
1791
  ]
1749
1792
  })
1750
1793
  });
1751
- }, ({ 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 }) => {
1794
+ }, ({ state: e, setState: t, isSelected: n, showResizeHandle: r }, { state: i, setState: a, isSelected: o, showResizeHandle: s }) => n === o && r === s && t === a && (0, Ct.default)(e, i)), Jt = (e) => e, Yt = t(({ state: e = {}, getCurrentUser: t, className: n, ...r }) => {
1752
1795
  if (!r.itemMap[e.type]) return null;
1753
- 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);
1796
+ let { stateHook: i = Jt } = 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);
1754
1797
  return /* @__PURE__ */ a("div", {
1755
1798
  className: n,
1756
1799
  style: {
1757
1800
  transform: `translate(${o}px, ${s}px)`,
1758
1801
  zIndex: d
1759
1802
  },
1760
- children: /* @__PURE__ */ a(Bt, {
1803
+ children: /* @__PURE__ */ a(qt, {
1761
1804
  ...r,
1762
1805
  showResizeHandle: r.isSelected && r.showResizeHandle,
1763
1806
  state: u
1764
1807
  })
1765
1808
  });
1766
- }), Ut = () => {
1767
- let { updateItem: e } = H(), [t, n] = L((e) => [e.itemIds, e.items]), [r, i, o] = R((e) => [
1809
+ }), Xt = () => {
1810
+ let { updateItem: e } = V(), [t, n] = R((e) => [e.itemIds, e.items]), [r, i, o] = z((e) => [
1768
1811
  e.config.showResizeHandle,
1769
1812
  e.config.itemTemplates,
1770
1813
  e.selection
1771
- ]), [s] = U((e) => [e.getUser]), c = K({
1814
+ ]), [s] = H((e) => [e.getUser]), c = G({
1772
1815
  position: "absolute",
1773
1816
  top: 0,
1774
1817
  left: 0,
@@ -1776,7 +1819,7 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1776
1819
  display: "inline-block",
1777
1820
  lineHeight: 0
1778
1821
  });
1779
- return t.map((t) => /* @__PURE__ */ a(Ht, {
1822
+ return t.map((t) => /* @__PURE__ */ a(Yt, {
1780
1823
  state: n[t],
1781
1824
  setState: e,
1782
1825
  isSelected: o.includes(t),
@@ -1785,28 +1828,28 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1785
1828
  showResizeHandle: r,
1786
1829
  className: c
1787
1830
  }, t));
1788
- }, Wt = K({
1831
+ }, Zt = G({
1789
1832
  zIndex: 210,
1790
1833
  position: "absolute",
1791
1834
  backgroundColor: "hsla(0, 40%, 50%, 10%)",
1792
1835
  border: "2px solid hsl(0, 55%, 40%)"
1793
- }), Gt = (e, t, n = !1) => {
1836
+ }), Qt = (e, t, n = !1) => {
1794
1837
  let r = t.getElementsByClassName("selector");
1795
1838
  if (!r.length) return [];
1796
1839
  let i = r[0];
1797
1840
  return Array.from(t.getElementsByClassName("item")).filter((t) => {
1798
- let r = e[F(t)];
1799
- return !r || !n && r.locked ? !1 : ce(t, i);
1800
- }).map((e) => F(e));
1801
- }, Kt = ({ children: t, moveFirst: n }) => {
1802
- let [r, i, s, c, l, u] = R((e) => [
1841
+ let r = e[I(t)];
1842
+ return !r || !n && r.locked ? !1 : he(t, i);
1843
+ }).map((e) => I(e));
1844
+ }, $t = ({ children: t, moveFirst: n }) => {
1845
+ let [r, i, s, c, l, u] = z((e) => [
1803
1846
  e.getSelection,
1804
1847
  e.clear,
1805
1848
  e.setSelection,
1806
1849
  e.select,
1807
1850
  e.getConfiguration,
1808
1851
  e.updateBoardState
1809
- ]), { 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 });
1852
+ ]), { findElementUnderPointer: d } = V(), [p] = R((e) => [e.getItems]), [m, h] = e.useState({}), [, g] = e.useTransition(), [_, v] = e.useState(!1), y = e.useRef(null), b = e.useRef({ moving: !1 });
1810
1853
  return f(document, "keydown", (e) => {
1811
1854
  e.key === "l" && v(!0);
1812
1855
  }), f(document, "keyup", (e) => {
@@ -1815,7 +1858,7 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1815
1858
  i();
1816
1859
  }), [i]), e.useEffect(() => {
1817
1860
  if (b.current.moving) {
1818
- let e = p(), { boardWrapper: t } = l(), n = Gt(e, t, _);
1861
+ let e = p(), { boardWrapper: t } = l(), n = Qt(e, t, _);
1819
1862
  g(() => {
1820
1863
  s(n);
1821
1864
  });
@@ -1826,7 +1869,7 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1826
1869
  m,
1827
1870
  s,
1828
1871
  _
1829
- ]), /* @__PURE__ */ a(Y, {
1872
+ ]), /* @__PURE__ */ a(J, {
1830
1873
  fill: !0,
1831
1874
  onDragStart: async (e) => {
1832
1875
  await d(e) || (b.current.moving = !0, g(() => {
@@ -1851,7 +1894,7 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1851
1894
  let { ctrlKey: t, metaKey: n } = e, a = d(e);
1852
1895
  if (!a) i();
1853
1896
  else {
1854
- let e = F(a);
1897
+ let e = I(a);
1855
1898
  if (!e) {
1856
1899
  i();
1857
1900
  return;
@@ -1861,9 +1904,9 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1861
1904
  }
1862
1905
  },
1863
1906
  onLongTap: ({ target: e }) => {
1864
- let t = j(e, "item");
1907
+ let t = N(e, "item");
1865
1908
  if (t) {
1866
- let e = F(t);
1909
+ let e = I(t);
1867
1910
  s([e]);
1868
1911
  }
1869
1912
  },
@@ -1880,81 +1923,72 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1880
1923
  height: `${m.height}px`,
1881
1924
  width: `${m.width}px`
1882
1925
  },
1883
- className: `selector ${Wt}`
1926
+ className: `selector ${Zt}`
1884
1927
  }), t]
1885
1928
  })
1886
1929
  });
1887
- }, qt = ({ children: t }) => {
1888
- let { moveItems: n, placeItems: r, findElementUnderPointer: i } = H(), { vectorFromWrapperToBoard: o } = B(), [s, c, l, u, d] = R((e) => [
1930
+ }, en = ({ children: t }) => {
1931
+ let { moveItems: n, placeItems: r, findElementUnderPointer: i } = V(), { vectorFromWrapperToBoard: o } = B(), [s, c, l, u, d] = z((e) => [
1889
1932
  e.select,
1890
1933
  e.setSelection,
1891
1934
  e.getSelection,
1892
1935
  e.getBoardState,
1893
1936
  e.updateBoardState
1894
- ]), [p] = L((e) => [e.getBoardConfig]), m = e.useRef({}), h = e.useRef({ items: [] });
1937
+ ]), p = e.useRef({}), m = e.useRef({ items: [] });
1895
1938
  return f(document, "keydown", (e) => {
1896
1939
  if (["INPUT", "TEXTAREA"].includes(e.target.tagName)) return;
1897
1940
  let t = l();
1898
1941
  if (t.length) {
1899
- let { gridSize: i = 1 } = p(), a = 0, s = 0;
1942
+ let i = 0, a = 0;
1900
1943
  switch (e.key) {
1901
1944
  case "ArrowLeft":
1902
- a = -10;
1945
+ i = -10;
1903
1946
  break;
1904
1947
  case "ArrowRight":
1905
- a = 10;
1948
+ i = 10;
1906
1949
  break;
1907
1950
  case "ArrowUp":
1908
- s = -10;
1951
+ a = -10;
1909
1952
  break;
1910
- case "ArrowDown": s = 10;
1953
+ case "ArrowDown": a = 10;
1911
1954
  }
1912
- if (a || s) {
1913
- e.shiftKey && (a *= 5, s *= 5), (e.ctrlKey || e.altKey || e.metaKey) && (a /= 10, s /= 10);
1914
- let [c, l] = o(a, s);
1955
+ if (i || a) {
1956
+ e.shiftKey && (i *= 5, a *= 5), (e.ctrlKey || e.altKey || e.metaKey) && (i /= 10, a /= 10);
1957
+ let [s, c] = o(i, a);
1915
1958
  n(t, {
1916
- x: c,
1917
- y: l
1918
- }, !0), r(t, {
1919
- type: "grid",
1920
- size: i || 1
1921
- }), e.preventDefault();
1959
+ x: s,
1960
+ y: c
1961
+ }, !0), r(t), e.preventDefault();
1922
1962
  }
1923
1963
  }
1924
- }), /* @__PURE__ */ a(Y, {
1964
+ }), /* @__PURE__ */ a(J, {
1925
1965
  fill: !0,
1926
1966
  onDragStart: (e) => {
1927
1967
  let { ctrlKey: t, metaKey: n, event: r } = e, a = i(e);
1928
1968
  if (a) {
1929
1969
  r.stopPropagation();
1930
1970
  let e = l();
1931
- h.current.items = e;
1932
- let i = F(a);
1933
- e.includes(i) || (t || n ? (h.current.items = [...e, i], s([i])) : (h.current.items = [i], c([i]))), Object.assign(m.current, { moving: !0 });
1971
+ m.current.items = e;
1972
+ let i = I(a);
1973
+ e.includes(i) || (t || n ? (m.current.items = [...e, i], s([i])) : (m.current.items = [i], c([i]))), Object.assign(p.current, { moving: !0 });
1934
1974
  }
1935
1975
  },
1936
1976
  onDrag: ({ deltaX: e, deltaY: t, event: r }) => {
1937
- if (m.current.moving) {
1977
+ if (p.current.moving) {
1938
1978
  r.stopPropagation();
1939
1979
  let { movingItems: i } = u(), [a, s] = o(e, t);
1940
- n(h.current.items, {
1980
+ n(m.current.items, {
1941
1981
  x: a,
1942
1982
  y: s
1943
1983
  }, !0), i || d({ movingItems: !0 });
1944
1984
  }
1945
1985
  },
1946
1986
  onDragEnd: () => {
1947
- if (m.current.moving) {
1948
- let { gridSize: e = 1 } = p(), t = e || 1;
1949
- m.current = { moving: !1 }, r(h.current.items, {
1950
- type: "grid",
1951
- size: t
1952
- }), d({ movingItems: !1 });
1953
- }
1987
+ p.current.moving && (p.current = { moving: !1 }, r(m.current.items), d({ movingItems: !1 }));
1954
1988
  },
1955
1989
  children: t
1956
1990
  });
1957
- }, Jt = (t) => {
1991
+ }, tn = (t) => {
1958
1992
  let n = e.useRef({
1959
1993
  hover: !1,
1960
1994
  x: 0,
@@ -1968,16 +2002,16 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1968
2002
  }), f(t, "mouseleave", () => {
1969
2003
  n.current.hover = !1;
1970
2004
  }), e.useCallback(() => n.current, []);
1971
- }, Yt = [...[
2005
+ }, nn = [...[
1972
2006
  ,
1973
2007
  ,
1974
2008
  ,
1975
2009
  ,
1976
2010
  ,
1977
- ].keys()].map((e) => `Digit${e + 1}`), Xt = () => {
1978
- let [t, n] = e.useState({}), [r, i] = R((e) => [e.getBoardState, e.updateBoardState]);
2011
+ ].keys()].map((e) => `Digit${e + 1}`), rn = () => {
2012
+ let [t, n] = e.useState({}), [r, i] = z((e) => [e.getBoardState, e.updateBoardState]);
1979
2013
  return f(document, "keydown", (e) => {
1980
- if (!["INPUT", "TEXTAREA"].includes(e.target.tagName) && Yt.includes(e.code)) {
2014
+ if (!["INPUT", "TEXTAREA"].includes(e.target.tagName) && nn.includes(e.code)) {
1981
2015
  let a = e.code, { translateX: o, translateY: s, scale: c } = r();
1982
2016
  e.altKey || e.metaKey || e.ctrlKey || e.shiftKey ? n((e) => ({
1983
2017
  ...e,
@@ -1989,14 +2023,14 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1989
2023
  })) : t[a] && i(t[a]), e.preventDefault();
1990
2024
  }
1991
2025
  }), null;
1992
- }, Zt = ({ children: t, moveFirst: n = !1 }) => {
1993
- let r = e.useRef(null), [i, o, s, c] = R((e) => [
2026
+ }, an = ({ children: t, moveFirst: n = !1 }) => {
2027
+ let r = e.useRef(null), [i, o, s, c] = z((e) => [
1994
2028
  e.config.itemExtent,
1995
2029
  e.getConfiguration,
1996
2030
  e.updateBoardState,
1997
2031
  e.getSelection
1998
- ]), { zoomToCenter: l, zoomToExtent: u, moveBoard: d } = B(), [p, m] = e.useState(!1), h = e.useRef({}), g = Jt(r);
1999
- Xt();
2032
+ ]), { zoomToCenter: l, zoomToExtent: u, moveBoard: d } = B(), [p, m] = e.useState(!1), h = e.useRef({}), g = tn(r);
2033
+ rn();
2000
2034
  let _ = e.useCallback(() => {
2001
2035
  let { itemExtent: e } = o();
2002
2036
  u(e);
@@ -2045,11 +2079,11 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
2045
2079
  factor: 1 / 3,
2046
2080
  to: g()
2047
2081
  });
2048
- }), /* @__PURE__ */ a(Y, {
2082
+ }), /* @__PURE__ */ a(J, {
2049
2083
  fill: !0,
2050
2084
  onPan: ({ deltaX: e, deltaY: t, target: n }) => {
2051
- let r = j(n, "item");
2052
- r && A(r, "selected") || (d(({ translateX: n, translateY: r }) => ({
2085
+ let r = N(n, "item");
2086
+ r && M(r, "selected") || (d(({ translateX: n, translateY: r }) => ({
2053
2087
  translateX: n + e,
2054
2088
  translateY: r + t
2055
2089
  })), clearTimeout(h.current.pan), h.current.pan = setTimeout(() => {
@@ -2082,7 +2116,7 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
2082
2116
  children: t
2083
2117
  })
2084
2118
  });
2085
- }, Qt = K({
2119
+ }, on = G({
2086
2120
  position: "absolute",
2087
2121
  top: 0,
2088
2122
  left: 0,
@@ -2090,8 +2124,8 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
2090
2124
  backgroundColor: "hsla(0, 40%, 50%, 0%)",
2091
2125
  border: "2px dashed hsl(20, 55%, 40%)",
2092
2126
  pointerEvents: "none"
2093
- }), $t = () => {
2094
- let [t, n, r, i, o, { translateX: s, translateY: c, scale: l }] = R((e) => [
2127
+ }), sn = () => {
2128
+ let [t, n, r, i, o, { translateX: s, translateY: c, scale: l }] = z((e) => [
2095
2129
  e.selection,
2096
2130
  e.getSelection,
2097
2131
  e.selectionBox,
@@ -2102,13 +2136,13 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
2102
2136
  translateY: e.boardState.translateY,
2103
2137
  scale: e.boardState.scale
2104
2138
  }
2105
- ]), [d] = L((e) => [e.items]), f = e.useCallback(() => {
2139
+ ]), [d] = R((e) => [e.items]), f = e.useCallback(() => {
2106
2140
  let e = n(), { boardWrapperRect: t, uid: r } = o();
2107
2141
  if (e.length === 0) {
2108
2142
  i(null);
2109
2143
  return;
2110
2144
  }
2111
- let a = le(e, r);
2145
+ let a = ge(e, r);
2112
2146
  if (!a) {
2113
2147
  i(null);
2114
2148
  return;
@@ -2141,15 +2175,15 @@ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
2141
2175
  height: `${r.height}px`,
2142
2176
  width: `${r.width}px`
2143
2177
  },
2144
- className: `selection ${Qt}`
2178
+ className: `selection ${on}`
2145
2179
  });
2146
- }, en = () => {
2147
- let [e] = R((e) => [e.boardState.movingItems]);
2148
- return e ? null : /* @__PURE__ */ a($t, {});
2180
+ }, cn = () => {
2181
+ let [e] = z((e) => [e.boardState.movingItems]);
2182
+ return e ? null : /* @__PURE__ */ a(sn, {});
2149
2183
  };
2150
2184
  //#endregion
2151
2185
  //#region node_modules/color2k/dist/index.exports.import.es.mjs
2152
- function tn(e, t, n) {
2186
+ function ln(e, t, n) {
2153
2187
  return Math.min(Math.max(e, n), t);
2154
2188
  }
2155
2189
  var Z = class extends Error {
@@ -2157,7 +2191,7 @@ var Z = class extends Error {
2157
2191
  super(`Failed to parse color: "${e}"`);
2158
2192
  }
2159
2193
  };
2160
- function nn(e) {
2194
+ function un(e) {
2161
2195
  if (typeof e != "string") throw new Z(e);
2162
2196
  if (e.trim().toLowerCase() === "transparent") return [
2163
2197
  0,
@@ -2166,52 +2200,52 @@ function nn(e) {
2166
2200
  0
2167
2201
  ];
2168
2202
  let t = e.trim();
2169
- t = fn.test(e) ? sn(e) : e;
2170
- let n = cn.exec(t);
2203
+ t = yn.test(e) ? mn(e) : e;
2204
+ let n = hn.exec(t);
2171
2205
  if (n) {
2172
2206
  let e = Array.from(n).slice(1);
2173
2207
  return [...e.slice(0, 3).map((e) => parseInt(Q(e, 2), 16)), parseInt(Q(e[3] || "f", 2), 16) / 255];
2174
2208
  }
2175
- let r = ln.exec(t);
2209
+ let r = gn.exec(t);
2176
2210
  if (r) {
2177
2211
  let e = Array.from(r).slice(1);
2178
2212
  return [...e.slice(0, 3).map((e) => parseInt(e, 16)), parseInt(e[3] || "ff", 16) / 255];
2179
2213
  }
2180
- let i = un.exec(t);
2214
+ let i = _n.exec(t);
2181
2215
  if (i) {
2182
2216
  let e = Array.from(i).slice(1);
2183
2217
  return [...e.slice(0, 3).map((e) => parseInt(e, 10)), parseFloat(e[3] || "1")];
2184
2218
  }
2185
- let a = dn.exec(t);
2219
+ let a = vn.exec(t);
2186
2220
  if (a) {
2187
2221
  let [t, n, r, i] = Array.from(a).slice(1).map(parseFloat);
2188
- if (tn(0, 100, n) !== n || tn(0, 100, r) !== r) throw new Z(e);
2189
- return [...mn(t, n, r), Number.isNaN(i) ? 1 : i];
2222
+ if (ln(0, 100, n) !== n || ln(0, 100, r) !== r) throw new Z(e);
2223
+ return [...xn(t, n, r), Number.isNaN(i) ? 1 : i];
2190
2224
  }
2191
2225
  throw new Z(e);
2192
2226
  }
2193
- function rn(e) {
2227
+ function dn(e) {
2194
2228
  let t = 5381, n = e.length;
2195
2229
  for (; n;) t = t * 33 ^ e.charCodeAt(--n);
2196
2230
  return (t >>> 0) % 2341;
2197
2231
  }
2198
- var an = (e) => parseInt(e.replace(/_/g, ""), 36), on = "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) => {
2199
- let n = an(t.substring(0, 3)), r = an(t.substring(3)).toString(16), i = "";
2232
+ var fn = (e) => parseInt(e.replace(/_/g, ""), 36), pn = "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) => {
2233
+ let n = fn(t.substring(0, 3)), r = fn(t.substring(3)).toString(16), i = "";
2200
2234
  for (let e = 0; e < 6 - r.length; e++) i += "0";
2201
2235
  return e[n] = `${i}${r}`, e;
2202
2236
  }, {});
2203
- function sn(e) {
2204
- let t = on[rn(e.toLowerCase().trim())];
2237
+ function mn(e) {
2238
+ let t = pn[dn(e.toLowerCase().trim())];
2205
2239
  if (!t) throw new Z(e);
2206
2240
  return `#${t}`;
2207
2241
  }
2208
- 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) => {
2242
+ var Q = (e, t) => Array.from(Array(t)).map(() => e).join(""), hn = RegExp(`^#${Q("([a-f0-9])", 3)}([a-f0-9])?$`, "i"), gn = RegExp(`^#${Q("([a-f0-9]{2})", 3)}([a-f0-9]{2})?$`, "i"), _n = RegExp(`^rgba?\\(\\s*(\\d+)\\s*${Q(",\\s*(\\d+)\\s*", 2)}(?:,\\s*([\\d.]+))?\\s*\\)$`, "i"), vn = /^hsla?\(\s*([\d.]+)\s*,\s*([\d.]+)%\s*,\s*([\d.]+)%(?:\s*,\s*([\d.]+))?\s*\)$/i, yn = /^[a-z]+$/i, bn = (e) => Math.round(e * 255), xn = (e, t, n) => {
2209
2243
  let r = n / 100;
2210
2244
  if (t === 0) return [
2211
2245
  r,
2212
2246
  r,
2213
2247
  r
2214
- ].map(pn);
2248
+ ].map(bn);
2215
2249
  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;
2216
2250
  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);
2217
2251
  let u = r - a / 2;
@@ -2219,29 +2253,29 @@ var Q = (e, t) => Array.from(Array(t)).map(() => e).join(""), cn = RegExp(`^#${Q
2219
2253
  s + u,
2220
2254
  c + u,
2221
2255
  l + u
2222
- ].map(pn);
2256
+ ].map(bn);
2223
2257
  };
2224
- function hn(e) {
2258
+ function Sn(e) {
2225
2259
  if (e === "transparent") return 0;
2226
2260
  function t(e) {
2227
2261
  let t = e / 255;
2228
2262
  return t <= .04045 ? t / 12.92 : ((t + .055) / 1.055) ** 2.4;
2229
2263
  }
2230
- let [n, r, i] = nn(e);
2264
+ let [n, r, i] = un(e);
2231
2265
  return .2126 * t(n) + .7152 * t(r) + .0722 * t(i);
2232
2266
  }
2233
- function gn(e) {
2234
- return hn(e) > .179;
2267
+ function Cn(e) {
2268
+ return Sn(e) > .179;
2235
2269
  }
2236
2270
  //#endregion
2237
2271
  //#region src/lib/board/Cursors/Cursor.jsx
2238
- var _n = K({
2272
+ var wn = G({
2239
2273
  display: "flex",
2240
2274
  flexDirection: "row",
2241
2275
  alignItems: "center",
2242
2276
  zIndex: 210,
2243
2277
  pointerEvents: "none"
2244
- }), vn = K({
2278
+ }), Tn = G({
2245
2279
  fontWeight: "bold",
2246
2280
  padding: "0 0.5em",
2247
2281
  borderRadius: "2px",
@@ -2252,10 +2286,10 @@ var _n = K({
2252
2286
  marginTop: "1.7em",
2253
2287
  whitespace: "nowrap",
2254
2288
  pointerEvents: "none"
2255
- }), yn = e.memo(({ color: e = "#666", size: t = 40, text: n }) => {
2256
- let r = gn(e) ? "#222" : "#EEE";
2289
+ }), En = e.memo(({ color: e = "#666", size: t = 40, text: n }) => {
2290
+ let r = Cn(e) ? "#222" : "#EEE";
2257
2291
  return /* @__PURE__ */ o("div", {
2258
- className: _n,
2292
+ className: wn,
2259
2293
  children: [/* @__PURE__ */ o("svg", {
2260
2294
  version: "1.1",
2261
2295
  xmlns: "http://www.w3.org/2000/svg",
@@ -2278,27 +2312,27 @@ var _n = K({
2278
2312
  color: r,
2279
2313
  backgroundColor: e
2280
2314
  },
2281
- className: vn,
2315
+ className: Tn,
2282
2316
  children: n
2283
2317
  })]
2284
2318
  });
2285
- }), bn = K({
2319
+ }), Dn = G({
2286
2320
  top: 0,
2287
2321
  left: 0,
2288
2322
  zIndex: 210,
2289
2323
  position: "fixed",
2290
2324
  pointerEvents: "none"
2291
- }), xn = ({ pos: e, ...t }) => /* @__PURE__ */ a("div", {
2292
- className: bn,
2325
+ }), On = ({ pos: e, ...t }) => /* @__PURE__ */ a("div", {
2326
+ className: Dn,
2293
2327
  style: { transform: `translate(${e.x - 6}px, ${e.y - 15}px)` },
2294
- children: /* @__PURE__ */ a(yn, { ...t })
2295
- }), Sn = ({ children: e }) => {
2296
- let [t] = R((e) => [e.getConfiguration, e.boardState.scale]), { fromWrapperToBoard: n, fromBoardToWrapper: r } = B(), [i, s, c, l] = U((e) => [
2328
+ children: /* @__PURE__ */ a(En, { ...t })
2329
+ }), kn = ({ children: e }) => {
2330
+ let [t] = z((e) => [e.getConfiguration, e.boardState.scale]), { fromWrapperToBoard: n, fromBoardToWrapper: r } = B(), [i, s, c, l] = H((e) => [
2297
2331
  e.getUser(),
2298
2332
  e.getLocalUsers(),
2299
2333
  e.cursors,
2300
2334
  e.users
2301
- ]), [u, d] = U((e) => [e.moveCursor, e.removeCursor]), { boardWrapperRect: f } = t(), p = ({ clientX: e, clientY: t }) => {
2335
+ ]), [u, d] = H((e) => [e.moveCursor, e.removeCursor]), { boardWrapperRect: f } = t(), p = ({ clientX: e, clientY: t }) => {
2302
2336
  let [r, a] = n(e - f.left, t - f.top);
2303
2337
  u(i.id, {
2304
2338
  x: r,
@@ -2315,15 +2349,15 @@ var _n = K({
2315
2349
  x: n + f.left,
2316
2350
  y: i + f.top
2317
2351
  };
2318
- return N(o, f) ? /* @__PURE__ */ a(xn, {
2352
+ return pe(o, f) ? /* @__PURE__ */ a(On, {
2319
2353
  pos: o,
2320
2354
  text: l[e].name,
2321
2355
  color: l[e].color
2322
2356
  }, e) : null;
2323
2357
  })]
2324
2358
  });
2325
- }, Cn = /[+-]?(?:\d*\.)?\d+(?:e[+-]?\d+)?(?:px|%)/gi;
2326
- function wn(e, t = ",") {
2359
+ }, An = /[+-]?(?:\d*\.)?\d+(?:e[+-]?\d+)?(?:px|%)/gi;
2360
+ function jn(e, t = ",") {
2327
2361
  let n = 0, r = "", i = 0, a = [];
2328
2362
  for (let [o, s] of e.split("").entries()) if (r) s === r && e[o - 1] !== "\\" && (r = "");
2329
2363
  else if (s === "\"" || s === "'") r = s;
@@ -2337,10 +2371,10 @@ function wn(e, t = ",") {
2337
2371
  return o && a.push(o), a;
2338
2372
  }
2339
2373
  function $(e, t) {
2340
- return [...e.replace(/\s/g, "").matchAll(Cn)].reduce((e, [n]) => e + Number.parseFloat(n) * (n.endsWith("%") ? t / 100 : 1), 0);
2374
+ return [...e.replace(/\s/g, "").matchAll(An)].reduce((e, [n]) => e + Number.parseFloat(n) * (n.endsWith("%") ? t / 100 : 1), 0);
2341
2375
  }
2342
- function Tn(e, t, n, r) {
2343
- let [i, a = "auto"] = wn(e, " "), o = r?.width, s = r?.height;
2376
+ function Mn(e, t, n, r) {
2377
+ let [i, a = "auto"] = jn(e, " "), o = r?.width, s = r?.height;
2344
2378
  if (i === "cover" || i === "contain") {
2345
2379
  if (!o || !s) return [t, n];
2346
2380
  let e = Math[i === "cover" ? "max" : "min"](t / o, n / s);
@@ -2349,13 +2383,13 @@ function Tn(e, t, n, r) {
2349
2383
  let c = i === "auto" ? null : $(i, t), l = a === "auto" ? null : $(a, n);
2350
2384
  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]);
2351
2385
  }
2352
- function En(e, t, n) {
2386
+ function Nn(e, t, n) {
2353
2387
  let r = [
2354
2388
  [0, 0],
2355
2389
  [e, 0],
2356
2390
  [0, t],
2357
2391
  [e, t]
2358
- ].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);
2392
+ ].map((e) => fe(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] = P([o, s], n);
2359
2393
  return {
2360
2394
  left: o,
2361
2395
  top: s,
@@ -2365,9 +2399,9 @@ function En(e, t, n) {
2365
2399
  y: d
2366
2400
  };
2367
2401
  }
2368
- var Dn = (e, t, n) => ((e - t) % n + n) % n;
2369
- function On(e, t, n, r) {
2370
- 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);
2402
+ var Pn = (e, t, n) => ((e - t) % n + n) % n;
2403
+ function Fn(e, t, n, r) {
2404
+ let i = Nn(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] = P([u, d], n);
2371
2405
  return {
2372
2406
  tiles: Array.from({ length: l - c + 1 }, (e, t) => {
2373
2407
  let n = c + t;
@@ -2389,18 +2423,18 @@ function On(e, t, n, r) {
2389
2423
  }
2390
2424
  //#endregion
2391
2425
  //#region src/lib/board/WorldBackground.jsx
2392
- var kn = {
2426
+ var In = {
2393
2427
  position: "absolute",
2394
2428
  inset: 0,
2395
2429
  pointerEvents: "none"
2396
2430
  };
2397
- function An({ style: t, tileSizeOverride: n }) {
2398
- 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({
2431
+ function Ln({ style: t, tileSizeOverride: n }) {
2432
+ let [r, i] = z((e) => [e.boardState, e.config.boardWrapperRect]), s = i.width || 1, c = i.height || 1, l = e.useRef(null), [u, d] = e.useState({
2399
2433
  color: "#333",
2400
2434
  layers: []
2401
2435
  }), [f, p] = e.useState({});
2402
2436
  e.useLayoutEffect(() => {
2403
- 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");
2437
+ let e = getComputedStyle(l.current), t = (t) => jn(e[t]), n = t("backgroundSize"), r = t("backgroundPositionX"), i = t("backgroundPositionY"), a = t("backgroundRepeat"), o = t("backgroundBlendMode");
2404
2438
  d({
2405
2439
  color: e.backgroundColor,
2406
2440
  layers: t("backgroundImage").map((e, t) => ({
@@ -2434,19 +2468,19 @@ function An({ style: t, tileSizeOverride: n }) {
2434
2468
  e = !1;
2435
2469
  };
2436
2470
  }, [u.layers]);
2437
- let m = On(s, c, r, n), h = u.layers.map((e) => {
2438
- 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);
2471
+ let m = Fn(s, c, r, n), h = u.layers.map((e) => {
2472
+ let [t, n] = Mn(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);
2439
2473
  return {
2440
2474
  ...e,
2441
2475
  size: `${t}px ${n}px`,
2442
- position: (e, s) => `${r && t ? Dn(a, e, t) : a - e}px ${i && n ? Dn(o, s, n) : o - s}px`
2476
+ position: (e, s) => `${r && t ? Pn(a, e, t) : a - e}px ${i && n ? Pn(o, s, n) : o - s}px`
2443
2477
  };
2444
2478
  });
2445
2479
  return /* @__PURE__ */ o("div", {
2446
2480
  className: "world-background",
2447
2481
  "aria-hidden": "true",
2448
2482
  style: {
2449
- ...kn,
2483
+ ...In,
2450
2484
  overflow: "hidden",
2451
2485
  backgroundColor: u.color
2452
2486
  },
@@ -2489,12 +2523,12 @@ function An({ style: t, tileSizeOverride: n }) {
2489
2523
  }
2490
2524
  //#endregion
2491
2525
  //#region src/lib/board/Board.jsx
2492
- var jn = ({ children: e }) => e, Mn = {}, Nn = {
2526
+ var Rn = ({ children: e }) => e, zn = {}, Bn = {
2493
2527
  overflow: "hidden",
2494
2528
  position: "absolute",
2495
2529
  inset: 0
2496
- }, Pn = ({ moveFirst: t = !0, style: n, wrapperStyle: r, itemTemplates: i = Mn, boardSize: s = we, backgroundTileSize: c, children: l, showResizeHandle: u = !1, Wrapper: d = jn }) => {
2497
- let f = e.useRef(null), [m, h] = R((e) => [e.config.uid, e.updateConfiguration]), [g, _, v, y] = R((e) => [
2530
+ }, Vn = ({ moveFirst: t = !0, style: n, wrapperStyle: r, itemTemplates: i = zn, boardSize: s = Ae, backgroundTileSize: c, children: l, showResizeHandle: u = !1, Wrapper: d = Rn }) => {
2531
+ let f = e.useRef(null), [m, h] = z((e) => [e.config.uid, e.updateConfiguration]), [g, _, v, y] = z((e) => [
2498
2532
  e.boardState.translateX,
2499
2533
  e.boardState.translateY,
2500
2534
  e.boardState.scale,
@@ -2536,8 +2570,8 @@ var jn = ({ children: e }) => e, Mn = {}, Nn = {
2536
2570
  }, [h, b]), p(f, () => {
2537
2571
  f.current && h({ boardWrapperRect: f.current.getBoundingClientRect() });
2538
2572
  });
2539
- let S = K({
2540
- ...Nn,
2573
+ let S = G({
2574
+ ...Bn,
2541
2575
  ...r
2542
2576
  });
2543
2577
  return /* @__PURE__ */ o("div", {
@@ -2545,15 +2579,15 @@ var jn = ({ children: e }) => e, Mn = {}, Nn = {
2545
2579
  id: m,
2546
2580
  className: `sync-board ${S}`,
2547
2581
  children: [
2548
- /* @__PURE__ */ a(An, {
2582
+ /* @__PURE__ */ a(Ln, {
2549
2583
  style: n,
2550
2584
  tileSizeOverride: c
2551
2585
  }),
2552
- /* @__PURE__ */ a(Sn, { children: /* @__PURE__ */ a(Kt, {
2586
+ /* @__PURE__ */ a(kn, { children: /* @__PURE__ */ a($t, {
2553
2587
  moveFirst: t,
2554
- children: /* @__PURE__ */ a(Zt, {
2588
+ children: /* @__PURE__ */ a(an, {
2555
2589
  moveFirst: t,
2556
- children: /* @__PURE__ */ a(qt, {
2590
+ children: /* @__PURE__ */ a(en, {
2557
2591
  moveFirst: t,
2558
2592
  children: /* @__PURE__ */ a(d, { children: /* @__PURE__ */ o("div", {
2559
2593
  onContextMenu: (e) => {
@@ -2561,7 +2595,7 @@ var jn = ({ children: e }) => e, Mn = {}, Nn = {
2561
2595
  },
2562
2596
  style: x,
2563
2597
  className: `board-pane${v < .5 ? " board-pane__far" : ""}`,
2564
- children: [/* @__PURE__ */ a(Ut, {}), /* @__PURE__ */ a("div", {
2598
+ children: [/* @__PURE__ */ a(Xt, {}), /* @__PURE__ */ a("div", {
2565
2599
  style: { pointerEvents: "auto" },
2566
2600
  children: l
2567
2601
  })]
@@ -2569,14 +2603,79 @@ var jn = ({ children: e }) => e, Mn = {}, Nn = {
2569
2603
  })
2570
2604
  })
2571
2605
  }) }),
2572
- /* @__PURE__ */ a(en, {})
2606
+ /* @__PURE__ */ a(cn, {})
2573
2607
  ]
2574
2608
  });
2609
+ }, Hn = ({ grid: t, item: n, uid: r }) => {
2610
+ let i = e.useId(), s = F(r, n.id), [c, l] = e.useState(null);
2611
+ if (e.useLayoutEffect(() => {
2612
+ if (!s) return;
2613
+ let e = () => l(se(s));
2614
+ e();
2615
+ let t = new ResizeObserver(e);
2616
+ return t.observe(s), () => t.disconnect();
2617
+ }, [s]), !c) return null;
2618
+ let { type: u, size: d, offset: f, color: p, opacity: m } = t, { width: h, height: g, centers: _ } = ce(t), v = Math.max(360, Math.min(d * 12, 960)), y = n.x + c.width / 2 - v / 2, b = n.y + c.height / 2 - v / 2, x = [];
2619
+ if (u !== "grid") {
2620
+ let e = u === "hexH" ? Math.PI / 6 : 0;
2621
+ for (let t = -1; t <= 1; t++) for (let n = -1; n <= 1; n++) _.forEach(([r, i], o) => {
2622
+ let s = Array.from({ length: 6 }, (a, o) => {
2623
+ let s = e + o * Math.PI / 3;
2624
+ return `${n * h + r + d * Math.cos(s)},${t * g + i + d * Math.sin(s)}`;
2625
+ }).join(" ");
2626
+ x.push(/* @__PURE__ */ a("polygon", { points: s }, `${t}:${n}:${o}`));
2627
+ });
2628
+ }
2629
+ return /* @__PURE__ */ o("svg", {
2630
+ "data-grid-item": n.id,
2631
+ "data-grid-type": u,
2632
+ width: v,
2633
+ height: v,
2634
+ style: {
2635
+ position: "absolute",
2636
+ left: 0,
2637
+ top: 0,
2638
+ transform: `translate3d(${y}px, ${b}px, 0)`,
2639
+ willChange: "transform",
2640
+ pointerEvents: "none",
2641
+ zIndex: n.moving ? ((n.layer ?? 0) + 4) * 10 + 101 : 90,
2642
+ opacity: m,
2643
+ maskImage: "radial-gradient(circle, #000 35%, transparent 72%)"
2644
+ },
2645
+ children: [/* @__PURE__ */ a("defs", { children: /* @__PURE__ */ a("pattern", {
2646
+ id: i,
2647
+ patternUnits: "userSpaceOnUse",
2648
+ width: h,
2649
+ height: g,
2650
+ x: f.x - y,
2651
+ y: f.y - b,
2652
+ children: /* @__PURE__ */ a("g", {
2653
+ fill: "none",
2654
+ stroke: p,
2655
+ strokeWidth: "1",
2656
+ children: u === "grid" ? /* @__PURE__ */ a("path", { d: `M0 ${g}V0H${h}` }) : x
2657
+ })
2658
+ }) }), /* @__PURE__ */ a("rect", {
2659
+ width: "100%",
2660
+ height: "100%",
2661
+ fill: `url(#${i})`
2662
+ })]
2663
+ });
2664
+ }, Un = ({ preview: e = !1, enabled: t = !0 }) => {
2665
+ let n = Oe(), r = Le(), [i] = tt(), { movingItems: o } = nt(), s = z((e) => e.config.uid), c = o || n.some((e) => e.moving);
2666
+ return !t || !e && !c ? null : n.filter((e) => r.includes(e.id)).map((t) => {
2667
+ let n = j(t.grid), r = oe(i.grid, t.grid);
2668
+ return !r || !(e && n) && (!c || !r.show) ? null : /* @__PURE__ */ a(Hn, {
2669
+ grid: r,
2670
+ item: t,
2671
+ uid: s
2672
+ }, t.id);
2673
+ });
2575
2674
  };
2576
2675
  //#endregion
2577
2676
  //#region src/lib/index.js
2578
- mt(e.createElement);
2677
+ St(e.createElement);
2579
2678
  //#endregion
2580
- 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 };
2679
+ export { Vn as Board, Un as BoardGridOverlay, ft as BoardWrapper, pt as RoomWrapper, Ke as useAvailableActions, tt as useBoardConfig, B as useBoardPosition, nt as useBoardState, ke as useDebouncedItems, Re as useGetSelectedItems, V as useItemActions, He as useItemInteraction, Oe as useItems, ut as useMessage, Le as useSelectedItems, qe as useSelectionBox, rt as useSessionInfo, et as useUsers, k as useWire };
2581
2680
 
2582
2681
  //# sourceMappingURL=react-sync-board.js.map