react-sync-board 1.3.1 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -74,7 +74,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
74
74
  params: t
75
75
  });
76
76
  }
77
- }, T = ({ socket: e, room: t, onJoined: n = () => {}, onMaster: r = () => {}, userId: i = null }) => {
77
+ }, ee = ({ socket: e, room: t, onJoined: n = () => {}, onMaster: r = () => {}, userId: i = null }) => {
78
78
  let a = new w(e, t, i);
79
79
  return new Promise((o) => {
80
80
  let s = !0;
@@ -92,7 +92,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
92
92
  userId: i
93
93
  });
94
94
  });
95
- }, E = e.createContext(), ee = () => /* @__PURE__ */ a("div", {
95
+ }, T = e.createContext(), te = () => /* @__PURE__ */ a("div", {
96
96
  style: {
97
97
  position: "absolute",
98
98
  top: "0",
@@ -103,8 +103,8 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
103
103
  alignItems: "center"
104
104
  },
105
105
  children: /* @__PURE__ */ a("h2", { children: "🌀 Loading..." })
106
- }), D = ({ socket: t, room: n, channel: i = "default", LoadingComponent: o = ee, children: s }) => {
107
- let [c, l] = e.useState(!1), [u, d] = e.useState(!1), [f, p] = e.useState(null), m = e.useRef(null), h = e.useRef(!1), g = r(E), _ = e.useRef(!1);
106
+ }), E = ({ socket: t, room: n, channel: i = "default", LoadingComponent: o = te, children: s }) => {
107
+ let [c, l] = e.useState(!1), [u, d] = e.useState(!1), [f, p] = e.useState(null), m = e.useRef(null), h = e.useRef(!1), g = r(T), _ = e.useRef(!1);
108
108
  return e.useEffect(() => (h.current = !0, () => {
109
109
  h.current = !1;
110
110
  }), []), e.useEffect(() => {
@@ -115,7 +115,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
115
115
  return t.on("disconnect", e), () => {
116
116
  t.off("disconnect", e);
117
117
  };
118
- }, [i, t]), e.useEffect(() => t ? (t.connected || t.connect(), console.log(`Try to connect to wire ${n} on channel ${i}`), _.current || (_.current = !0, T({
118
+ }, [i, t]), e.useEffect(() => t ? (t.connected || t.connect(), console.log(`Try to connect to wire ${n} on channel ${i}`), _.current || (_.current = !0, ee({
119
119
  socket: t,
120
120
  room: n,
121
121
  onMaster: () => {
@@ -130,7 +130,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
130
130
  i,
131
131
  n,
132
132
  t
133
- ]), !c || !f ? /* @__PURE__ */ a(o, {}) : /* @__PURE__ */ a(E.Provider, {
133
+ ]), !c || !f ? /* @__PURE__ */ a(o, {}) : /* @__PURE__ */ a(T.Provider, {
134
134
  value: {
135
135
  ...g,
136
136
  [i]: {
@@ -142,45 +142,34 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
142
142
  },
143
143
  children: s
144
144
  });
145
- }, O = (e = "default") => (r(E) || {})[e], k = (e, t) => e.classList && e.classList.contains(t), A = (e, t) => k(e, t) ? e : e.parentNode ? A(e.parentNode, t) : !1, j = ([e, t], [n, r]) => {
145
+ }, D = (e = "default") => (r(T) || {})[e], O = (e, t) => e.classList && e.classList.contains(t), ne = (e, t) => O(e, t) ? e : e.parentNode ? ne(e.parentNode, t) : !1, re = ([e, t], [n, r]) => {
146
146
  let i = Math.abs(e - n), a = Math.abs(t - r);
147
147
  return Math.hypot(i, a);
148
- }, te = (e, t, n) => {
148
+ }, ie = (e, t, n) => {
149
149
  let r = n * Math.PI / 180;
150
150
  return [e * Math.cos(r) - t * Math.sin(r), e * Math.sin(r) + t * Math.cos(r)];
151
- }, ne = ([e, t], { scale: n, rotate: r, translateX: i, translateY: a }) => te((e - i) / n, (t - a) / n, -r), M = ([e, t], { scale: n, rotate: r, translateX: i, translateY: a }) => {
152
- let [o, s] = te(e, t, r);
151
+ }, k = ([e, t], { scale: n, rotate: r, translateX: i, translateY: a }) => ie((e - i) / n, (t - a) / n, -r), A = ([e, t], { scale: n, rotate: r, translateX: i, translateY: a }) => {
152
+ let [o, s] = ie(e, t, r);
153
153
  return [o * n + i, s * n + a];
154
- }, re = (e, t, n, r) => {
155
- let i = e.x, a = e.y, o = t.x, s = t.y, c = n.x, l = n.y, u = o - i, d = s - a, f = i - c, p = a - l, m = u * u + d * d, h = 2 * (f * u + p * d), g = f * f + p * p - r * r, _ = h * h - 4 * m * g;
156
- if (_ < 0) return [];
157
- let v = (-h + Math.sqrt(_)) / (2 * m), y = (-h - Math.sqrt(_)) / (2 * m), b = [];
158
- return v >= 0 && v <= 1 && b.push({
159
- x: i + v * u,
160
- y: a + v * d
161
- }), y >= 0 && y <= 1 && b.push({
162
- x: i + y * u,
163
- y: a + y * d
164
- }), b;
165
- }, N = (e, t) => e.x > t.left && e.x < t.left + t.width && e.y > t.top && e.y < t.top + t.height, ie = (e, t) => Array.from(e.querySelectorAll(".corner")).every((e) => {
154
+ }, j = (e, t) => e.x > t.left && e.x < t.left + t.width && e.y > t.top && e.y < t.top + t.height, ae = (e, t) => Array.from(e.querySelectorAll(".corner")).every((e) => {
166
155
  let { top: n, left: r } = e.getBoundingClientRect();
167
- return N({
156
+ return j({
168
157
  x: r,
169
158
  y: n
170
159
  }, t);
171
- }), ae = (e, t) => ie(e, t.getBoundingClientRect()), P = (e, t) => {
160
+ }), oe = (e, t) => ae(e, t.getBoundingClientRect()), M = (e, t) => {
172
161
  try {
173
162
  return document.getElementById(`${e}__${t}`);
174
163
  } catch {
175
164
  console.error(`Error while getting item with id ${t} inside wrapper`, e);
176
165
  return;
177
166
  }
178
- }, F = (e) => {
167
+ }, N = (e) => {
179
168
  let t = e?.dataset?.id;
180
169
  return t || console.error("getIdFromElem call fails", e, JSON.stringify(e?.dataset), e?.dataset?.id), t;
181
- }, oe = (e, t) => {
170
+ }, se = (e, t) => {
182
171
  let n = e.reduce((e, n) => {
183
- let r = P(t, n);
172
+ let r = M(t, n);
184
173
  if (!r) return e || null;
185
174
  let { left: i, right: a, top: o, bottom: s } = r.getBoundingClientRect(), c;
186
175
  return c = e || {
@@ -191,10 +180,10 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
191
180
  }, c.left = Math.min(i, c.left), c.top = Math.min(o, c.top), c.right = Math.max(a, c.right), c.bottom = Math.max(s, c.bottom), c;
192
181
  }, null);
193
182
  return n && (n.width = n.right - n.left, n.height = n.bottom - n.top, n);
194
- }, se = (e, t, n = null) => (n === null && (n = /* @__PURE__ */ new Set()), !Array.isArray(t) || t.length === 0 ? [] : t.map((t) => n.has(t) ? [] : (n.add(t), e[t] ? [t, ...se(e, e[t].linkedItems, n)] : [])).flat()), ce = (e, t, n) => {
195
- let r = new Set(se(e, n));
183
+ }, ce = (e, t, n = null) => (n === null && (n = /* @__PURE__ */ new Set()), !Array.isArray(t) || t.length === 0 ? [] : t.map((t) => n.has(t) ? [] : (n.add(t), e[t] ? [t, ...ce(e, e[t].linkedItems, n)] : [])).flat()), le = (e, t, n) => {
184
+ let r = new Set(ce(e, n));
196
185
  return t.filter((e) => r.has(e));
197
- }, le = ({ x: e, y: t, width: n, height: r }, { type: i = "grid", size: a = 1, offset: o = {
186
+ }, ue = ({ x: e, y: t, width: n, height: r }, { type: i = "grid", size: a = 1, offset: o = {
198
187
  x: 0,
199
188
  y: 0
200
189
  } }) => {
@@ -215,7 +204,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
215
204
  x: l + o.x - n / 2,
216
205
  y: u + o.y - r / 2
217
206
  };
218
- }, ue = /* @__PURE__ */ "#037758.#99092a.#067070.#c6650f.#008726.#3d7004.#348402.#057f58.#b58612.#c44c01.#0a7704.#0e910e.#027377.#c99e02.#054160.#157a01.#b10de2.#0d6289.#bc5d03.#ba0cd1.#d39f10.#0c4c7a.#460782.#a51f10.#cecb10.#9b0943.#607f0c.#007a4b.#bf0daa.#af0ad8".split("."), de = () => ue[Math.floor(Math.random() * ue.length)], fe = ({ wire: e, storeName: t, noSync: n = [], defaultValue: r }, i) => (a, o, s) => {
207
+ }, de = /* @__PURE__ */ "#037758.#99092a.#067070.#c6650f.#008726.#3d7004.#348402.#057f58.#b58612.#c44c01.#0a7704.#0e910e.#027377.#c99e02.#054160.#157a01.#b10de2.#0d6289.#bc5d03.#ba0cd1.#d39f10.#0c4c7a.#460782.#a51f10.#cecb10.#9b0943.#607f0c.#007a4b.#bf0daa.#af0ad8".split("."), fe = () => de[Math.floor(Math.random() * de.length)], pe = ({ wire: e, storeName: t, noSync: n = [], defaultValue: r }, i) => (a, o, s) => {
219
208
  a({ ready: !1 });
220
209
  let c = [];
221
210
  (async () => {
@@ -239,7 +228,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
239
228
  return d.unsub = () => {
240
229
  c.forEach((e) => e());
241
230
  }, d;
242
- }, pe = e.createContext(), me = (e, t) => ({
231
+ }, me = e.createContext(), he = (e, t) => ({
243
232
  items: {},
244
233
  getItems: () => t().items,
245
234
  setItems: (t) => e({ items: t }),
@@ -262,7 +251,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
262
251
  });
263
252
  }), { items: r };
264
253
  })
265
- }), he = (e, t) => ({
254
+ }), ge = (e, t) => ({
266
255
  itemIds: [],
267
256
  setItemIds: (t) => e({ itemIds: t }),
268
257
  getItemIds: () => t().itemIds,
@@ -279,7 +268,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
279
268
  return r[t] = n, { itemIds: r };
280
269
  }),
281
270
  updateManyItemIds: (t) => e((e) => ({ itemIds: e.itemIds.map((e, n) => t[n] === void 0 ? e : t[n]) }))
282
- }), ge = (e, t) => ({
271
+ }), _e = (e, t) => ({
283
272
  removeItemsById: (t) => e((e) => ({
284
273
  itemIds: e.itemIds.filter((e) => !t.includes(e)),
285
274
  items: Object.fromEntries(Object.entries(e.items).filter(([e]) => !t.includes(e)))
@@ -306,7 +295,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
306
295
  itemIds: r
307
296
  };
308
297
  })
309
- }), _e = (e, t) => ({
298
+ }), ve = (e, t) => ({
310
299
  boardConfig: {},
311
300
  getBoardConfig: () => t().boardConfig,
312
301
  setBoardConfig: (t) => e({ boardConfig: t }),
@@ -314,7 +303,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
314
303
  ...e.boardConfig,
315
304
  ...t
316
305
  } }))
317
- }), ve = (e, t) => ({
306
+ }), ye = (e, t) => ({
318
307
  session: {},
319
308
  getSessionInfo: () => t().session,
320
309
  setSessionInfo: (t) => e({ session: t }),
@@ -322,34 +311,34 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
322
311
  ...e.session,
323
312
  ...t
324
313
  } }))
325
- }), ye = ({ storeName: t, children: n, defaultValue: r }) => {
326
- let { wire: i } = O("room"), [o, c] = e.useState(!1), [l] = e.useState(() => s(fe({
314
+ }), be = ({ storeName: t, children: n, defaultValue: r }) => {
315
+ let { wire: i } = D("room"), [o, c] = e.useState(!1), [l] = e.useState(() => s(pe({
327
316
  wire: i,
328
317
  storeName: t,
329
318
  defaultValue: r
330
319
  }, (...e) => ({
331
- ...me(...e),
332
320
  ...he(...e),
333
321
  ...ge(...e),
334
322
  ..._e(...e),
335
- ...ve(...e)
323
+ ...ve(...e),
324
+ ...ye(...e)
336
325
  }))));
337
326
  return e.useEffect(() => {
338
327
  let e = l.subscribe((t) => {
339
328
  t.ready && (e(), c(!0));
340
329
  });
341
- }, [l]), o ? /* @__PURE__ */ a(pe.Provider, {
330
+ }, [l]), o ? /* @__PURE__ */ a(me.Provider, {
342
331
  value: l,
343
332
  children: n
344
333
  }) : null;
345
- }, I = (e) => {
346
- let t = r(pe);
334
+ }, P = (e) => {
335
+ let t = r(me);
347
336
  return c(t, e, l);
348
- }, be = () => {
349
- let [t, n] = I((e) => [e.itemIds, e.items]);
350
- return e.useMemo(() => t.map((e) => n[e]), [t, n]);
351
337
  }, xe = () => {
352
- let [t, n, r] = I((e) => [
338
+ let [t, n] = P((e) => [e.itemIds, e.items]);
339
+ return e.useMemo(() => t.map((e) => n[e]), [t, n]);
340
+ }, Se = () => {
341
+ let [t, n, r] = P((e) => [
353
342
  e.items,
354
343
  e.itemIds,
355
344
  e.getItemList
@@ -364,7 +353,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
364
353
  n,
365
354
  r
366
355
  ]), i;
367
- }, Se = 5e4, Ce = e.createContext(), we = (e, t) => ({
356
+ }, Ce = 5e4, we = e.createContext(), Te = (e, t) => ({
368
357
  config: {
369
358
  itemTemplates: {},
370
359
  actions: {},
@@ -375,14 +364,14 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
375
364
  radius: 0
376
365
  },
377
366
  boardWrapperRect: {},
378
- boardSize: Se
367
+ boardSize: Ce
379
368
  },
380
369
  updateConfiguration: (t) => e((e) => ({ config: {
381
370
  ...e.config,
382
371
  ...t
383
372
  } })),
384
373
  getConfiguration: () => t().config
385
- }), Te = (e, t) => ({
374
+ }), Ee = (e, t) => ({
386
375
  boardState: {
387
376
  movingItems: !1,
388
377
  selecting: !1,
@@ -398,7 +387,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
398
387
  ...t
399
388
  } })),
400
389
  getBoardState: () => t().boardState
401
- }), Ee = (e, t) => ({
390
+ }), De = (e, t) => ({
402
391
  interactions: {},
403
392
  getInteractions: () => t().interactions,
404
393
  register: (t, n) => e((e) => {
@@ -420,7 +409,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
420
409
  setTimeout(() => e(n), 0);
421
410
  });
422
411
  }
423
- }), De = (e, t) => ({
412
+ }), Oe = (e, t) => ({
424
413
  selection: [],
425
414
  setSelection: (t) => e((e) => JSON.stringify(e.selection) === JSON.stringify(t) ? {} : { selection: t }),
426
415
  getSelection: () => t().selection,
@@ -436,76 +425,34 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
436
425
  let n = e.selectionBox;
437
426
  return !n || !t || n.top !== t.top || n.left !== t.left || n.width !== t.width || n.height !== t.height ? { selectionBox: t } : {};
438
427
  })
439
- }), Oe = ({ children: t }) => {
428
+ }), ke = ({ children: t }) => {
440
429
  let [n] = e.useState(() => s((...e) => ({
441
- ...we(...e),
442
430
  ...Te(...e),
443
431
  ...Ee(...e),
444
- ...De(...e)
432
+ ...De(...e),
433
+ ...Oe(...e)
445
434
  })));
446
- return /* @__PURE__ */ a(Ce.Provider, {
435
+ return /* @__PURE__ */ a(we.Provider, {
447
436
  value: n,
448
437
  children: t
449
438
  });
450
- }, L = (e) => {
451
- let t = r(Ce);
439
+ }, F = (e) => {
440
+ let t = r(we);
452
441
  return c(t, e, l);
453
- }, ke = () => {
454
- let [e] = L((e) => [e.selection]);
455
- return e;
456
442
  }, Ae = () => {
457
- let [e] = L((e) => [e.getSelection]);
443
+ let [e] = F((e) => [e.selection]);
458
444
  return e;
459
- }, je = 100, Me = 1e3, Ne = .8, R = !1, Pe = ({ x: e, y: t, scale: n, rotate: r, itemExtent: i, boardWrapperRect: a, boardSize: o }) => {
460
- let [s, c] = [e, t], l = ne([a.width / 2, a.height / 2], {
461
- translateX: s,
462
- translateY: c,
463
- scale: n,
464
- rotate: r
465
- }), u = {
466
- x: i.x + o / 2,
467
- y: i.y + o / 2
468
- }, d = {
469
- x: o / 2,
470
- y: o / 2
471
- }, f = j(l, [u.x, u.y]), p = Math.min(a.width, a.height), m = i.radius + p / 2 / n - je / n;
472
- if (f > m) {
473
- let e = re({
474
- x: l[0],
475
- y: l[1]
476
- }, u, u, m - 1 / n)[0], [t, i] = M([-e.x, -e.y], {
477
- translateX: a.width / 2,
478
- translateY: a.height / 2,
479
- scale: n,
480
- rotate: r
481
- });
482
- s = t, c = i;
483
- }
484
- let h = j(l, [d.x, d.y]), g = o / 2 - j([0, 0], [a.width, a.height]) / n;
485
- if (h > g) {
486
- let e = re({
487
- x: l[0],
488
- y: l[1]
489
- }, d, d, g - 1 / n)[0];
490
- if (e) {
491
- let [t, i] = M([-e.x, -e.y], {
492
- translateX: a.width / 2,
493
- translateY: a.height / 2,
494
- scale: n,
495
- rotate: r
496
- });
497
- s = t, c = i;
498
- }
499
- }
500
- return [s, c];
501
- }, z = () => {
502
- let [t, n, r, i, a] = L((e) => [
445
+ }, je = () => {
446
+ let [e] = F((e) => [e.getSelection]);
447
+ return e;
448
+ }, Me = 1e3, Ne = .8, I = !1, L = () => {
449
+ let [t, n, r, i, a] = F((e) => [
503
450
  e.getBoardState,
504
451
  e.updateBoardState,
505
452
  e.config.itemExtent,
506
453
  e.getConfiguration,
507
454
  e.updateConfiguration
508
- ]), o = e.useRef([.15, 5]), [s] = I((e) => [e.getItemList]), c = e.useCallback(() => {
455
+ ]), o = e.useRef([.15, 5]), [s] = P((e) => [e.getItemList]), c = e.useCallback(() => {
509
456
  let { translateX: e, translateY: n, scale: r, rotate: i } = t();
510
457
  return {
511
458
  translateX: e,
@@ -513,39 +460,30 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
513
460
  scale: r,
514
461
  rotate: i
515
462
  };
516
- }, [t]), l = e.useCallback((e, n) => ne([e, n], t()), [t]), d = e.useCallback((e, n) => M([e, n], t()), [t]), f = e.useCallback((e, n) => {
463
+ }, [t]), l = e.useCallback((e, n) => k([e, n], t()), [t]), d = e.useCallback((e, n) => A([e, n], t()), [t]), f = e.useCallback((e, n) => {
517
464
  let { scale: r, rotate: i } = t();
518
- return ne([e, n], {
465
+ return k([e, n], {
519
466
  translateX: 0,
520
467
  translateY: 0,
521
468
  rotate: i,
522
469
  scale: r
523
470
  });
524
471
  }, [t]), p = e.useCallback((e) => e > o.current[1] ? o.current[1] : e < o.current[0] ? o.current[0] : e, []), m = e.useCallback((e) => {
525
- let { itemExtent: r, boardWrapperRect: a, boardSize: o } = i(), s = t(), { translateX: c, translateY: l, scale: u, rotate: d } = {
526
- ...s,
527
- ...e(s)
472
+ let r = t(), { translateX: i, translateY: a, scale: o, rotate: s } = {
473
+ ...r,
474
+ ...e(r)
528
475
  };
529
- R && console.log("New expected values: ", c, l, u, d);
530
- let f = p(u), [m, h] = [c, l];
531
- (c !== s.translateX || l !== s.translateY) && ([m, h] = Pe({
532
- x: c,
533
- y: l,
534
- scale: f,
535
- rotate: d,
536
- itemExtent: r,
537
- boardWrapperRect: a,
538
- boardSize: o
539
- })), R && console.log("New fixed values: ", m, h, f, d), n({
540
- translateX: isNaN(m) ? 0 : m,
541
- translateY: isNaN(h) ? 0 : h,
542
- scale: isNaN(f) ? p(1) : f,
543
- rotate: isNaN(d) ? 0 : d
476
+ I && console.log("New expected values: ", i, a, o, s);
477
+ let c = p(o), l = i, u = a;
478
+ I && console.log("New fixed values: ", l, u, c, s), n({
479
+ translateX: Number.isFinite(l) ? l : r.translateX,
480
+ translateY: Number.isFinite(u) ? u : r.translateY,
481
+ scale: Number.isFinite(c) ? c : p(1),
482
+ rotate: Number.isFinite(s) ? s : r.rotate
544
483
  });
545
484
  }, [
546
485
  p,
547
486
  t,
548
- i,
549
487
  n
550
488
  ]), h = e.useCallback((e) => {
551
489
  let t = (t) => ({
@@ -578,21 +516,21 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
578
516
  i,
579
517
  m
580
518
  ]), _ = e.useCallback(({ x: e, y: n, radius: r }) => {
581
- let { rotate: a } = t(), { boardWrapperRect: o, boardSize: s } = i(), [c, l, u] = [
519
+ let { rotate: a } = t(), { boardWrapperRect: o } = i(), [s, c, l] = [
582
520
  e || 0,
583
521
  n || 0,
584
522
  r || 2e3
585
- ], d = o.width / (u * 2), f = o.height / (u * 2), h = p(Math.min(d, f) * Ne), [g, _] = M([-s / 2 - c, -s / 2 - l], {
523
+ ], u = o.width / (l * 2), d = o.height / (l * 2), f = p(Math.min(u, d) * Ne), [h, g] = A([-s, -c], {
586
524
  translateX: o.width / 2,
587
525
  translateY: o.height / 2,
588
- scale: h,
526
+ scale: f,
589
527
  rotate: a
590
528
  });
591
529
  m((e) => ({
592
530
  ...e,
593
- translateX: g,
594
- translateY: _,
595
- scale: h
531
+ translateX: h,
532
+ translateY: g,
533
+ scale: f
596
534
  }));
597
535
  }, [
598
536
  p,
@@ -600,25 +538,34 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
600
538
  i,
601
539
  m
602
540
  ]), v = e.useCallback(() => {
603
- let { boardWrapperRect: e, boardSize: t } = i(), [n, r] = l(e.width / 2, e.height / 2);
541
+ let { boardWrapperRect: e } = i(), [t, n] = l(e.width / 2, e.height / 2);
604
542
  return {
605
- x: n - t / 2,
606
- y: r - t / 2
543
+ x: t,
544
+ y: n
607
545
  };
608
546
  }, [l, i]), y = e.useCallback(() => {
609
- let e = s(), { boardSize: t, uid: n } = i(), r = e.reduce((e, t) => {
610
- let r = P(n, t.id);
611
- return r && (e.left = Math.min(t.x, e.left), e.top = Math.min(t.y, e.top), e.right = Math.max(t.x + r.offsetWidth, e.right), e.bottom = Math.max(t.y + r.offsetHeight, e.bottom)), e;
547
+ let e = s(), { uid: t } = i(), n = e.reduce((e, n) => {
548
+ let r = M(t, n.id);
549
+ return r && (e.left = Math.min(n.x, e.left), e.top = Math.min(n.y, e.top), e.right = Math.max(n.x + r.offsetWidth, e.right), e.bottom = Math.max(n.y + r.offsetHeight, e.bottom)), e;
612
550
  }, {
613
- left: t / 2,
614
- top: t / 2,
615
- right: -t / 2,
616
- bottom: -t / 2
617
- }), o = {
618
- x: (r.right + r.left) / 2,
619
- y: (r.bottom + r.top) / 2
551
+ left: Infinity,
552
+ top: Infinity,
553
+ right: -Infinity,
554
+ bottom: -Infinity
555
+ });
556
+ if (!Number.isFinite(n.left)) {
557
+ a({ itemExtent: {
558
+ x: 0,
559
+ y: 0,
560
+ radius: Me
561
+ } });
562
+ return;
563
+ }
564
+ let r = {
565
+ x: (n.right + n.left) / 2,
566
+ y: (n.bottom + n.top) / 2
620
567
  };
621
- o.radius = Math.max(j([o.x, o.y], [r.left, r.top]), Me), a({ itemExtent: o });
568
+ r.radius = Math.max(re([r.x, r.y], [n.left, n.top]), Me), a({ itemExtent: r });
622
569
  }, [
623
570
  i,
624
571
  s,
@@ -637,7 +584,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
637
584
  ]), x = u(() => y(), [y], 200);
638
585
  return e.useEffect(() => {
639
586
  window.debugUpdateExtent = () => y(), window.debugDisplayExtent = () => console.log(i().itemExtent), window.debugSetDebug = () => {
640
- R = !0;
587
+ I = !0;
641
588
  };
642
589
  }, [i, y]), {
643
590
  setDim: m,
@@ -653,8 +600,8 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
653
600
  fromWrapperToBoard: l,
654
601
  fromBoardToWrapper: d
655
602
  };
656
- }, B = (t) => {
657
- let [n, r, i] = L(({ register: e, unregister: t, callInteractions: n }) => [
603
+ }, R = (t) => {
604
+ let [n, r, i] = F(({ register: e, unregister: t, callInteractions: n }) => [
658
605
  e,
659
606
  t,
660
607
  n
@@ -671,13 +618,13 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
671
618
  i(t, e);
672
619
  }, [i, t])
673
620
  };
674
- }, V = () => {
675
- let { call: t } = B("place"), { call: n } = B("delete"), { getCenter: r, updateItemExtent: i } = z(), [a, o, s, c] = L((e) => [
621
+ }, z = () => {
622
+ let { call: t } = R("place"), { call: n } = R("delete"), { getCenter: r, updateItemExtent: i } = L(), [a, o, s, c] = F((e) => [
676
623
  e.clear,
677
624
  e.reverse,
678
625
  e.unselect,
679
626
  e.getConfiguration
680
- ]), { getItems: l, getItemIds: u, setItemIds: d, updateItems: f, moveItems: p, removeItemsById: m, getItemList: h, insertItems: g, setItemList: _ } = I(({ getItems: e, getItemIds: t, setItemIds: n, updateItems: r, moveItems: i, removeItemsById: a, getItemList: o, insertItems: s, setItemList: c }) => ({
627
+ ]), { getItems: l, getItemIds: u, setItemIds: d, updateItems: f, moveItems: p, removeItemsById: m, getItemList: h, insertItems: g, setItemList: _ } = P(({ getItems: e, getItemIds: t, setItemIds: n, updateItems: r, moveItems: i, removeItemsById: a, getItemList: o, insertItems: s, setItemList: c }) => ({
681
628
  getItems: e,
682
629
  getItemIds: t,
683
630
  setItemIds: n,
@@ -711,7 +658,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
711
658
  ]), b = e.useCallback((e, t, n = !1) => {
712
659
  v([e], t, n);
713
660
  }, [v]), x = e.useCallback((e, t) => {
714
- p(ce(l(), u(), e), t);
661
+ p(le(l(), u(), e), t);
715
662
  }, [
716
663
  u,
717
664
  l,
@@ -722,7 +669,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
722
669
  }, [u, d]), C = e.useCallback((e, { type: t, size: n } = {}) => {
723
670
  let { uid: r } = c();
724
671
  v(e, (e) => {
725
- let i = P(r, e.id);
672
+ let i = M(r, e.id);
726
673
  if (!i) return;
727
674
  let a = {
728
675
  type: t || "grid",
@@ -733,7 +680,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
733
680
  },
734
681
  ...e.grid
735
682
  };
736
- return le({
683
+ return ue({
737
684
  x: e.x,
738
685
  y: e.y,
739
686
  width: i.clientWidth,
@@ -741,7 +688,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
741
688
  }, a);
742
689
  }, !0);
743
690
  }, [c, v]), w = e.useCallback((e, n) => {
744
- let r = ce(l(), u(), e);
691
+ let r = le(l(), u(), e);
745
692
  S(r), v(r, { moving: !1 }, !0), C(r, n), t(e), i();
746
693
  }, [
747
694
  v,
@@ -751,16 +698,16 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
751
698
  S,
752
699
  C,
753
700
  i
754
- ]), T = e.useCallback((e) => {
701
+ ]), ee = e.useCallback((e) => {
755
702
  d(e);
756
- }, [d]), E = e.useCallback((e) => {
703
+ }, [d]), T = e.useCallback((e) => {
757
704
  let t = u(), n = t.filter((t) => e.includes(t)), r = t.map((t) => e.includes(t) ? n.pop() : t);
758
705
  d(r), o();
759
706
  }, [
760
707
  u,
761
708
  o,
762
709
  d
763
- ]), ee = e.useCallback((e, t) => {
710
+ ]), te = e.useCallback((e, t) => {
764
711
  let n = l(), r = Object.fromEntries(t.map((t, r) => {
765
712
  let i = n[e[r]];
766
713
  return [t, {
@@ -776,8 +723,8 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
776
723
  v,
777
724
  u,
778
725
  d
779
- ]), D = e.useCallback((e, t) => {
780
- let n = r(), i = e.map((e, t) => !e.x || !e.y ? {
726
+ ]), E = e.useCallback((e, t) => {
727
+ let n = r(), i = e.map((e, t) => e.x === void 0 || e.x === null || e.y === void 0 || e.y === null ? {
781
728
  ...e,
782
729
  x: n.x + 2 * t,
783
730
  y: n.y + 2 * t
@@ -789,58 +736,58 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
789
736
  r,
790
737
  g,
791
738
  w
792
- ]), O = e.useCallback((e, t) => {
793
- D([e], t);
794
- }, [D]), j = e.useCallback((e) => {
739
+ ]), D = e.useCallback((e, t) => {
740
+ E([e], t);
741
+ }, [E]), re = e.useCallback((e) => {
795
742
  s(e), m(e), n(e);
796
743
  }, [
797
744
  s,
798
745
  m,
799
746
  n
800
- ]), te = e.useCallback((e) => {
747
+ ]), ie = e.useCallback((e) => {
801
748
  let t = l();
802
749
  return e.map((e) => t[e]);
803
750
  }, [l]);
804
751
  return {
805
752
  putItemsOnTop: S,
806
753
  batchUpdateItems: v,
807
- updateItemOrder: T,
754
+ updateItemOrder: ee,
808
755
  moveItems: x,
809
756
  placeItems: w,
810
757
  updateItem: b,
811
- swapItems: ee,
812
- reverseItemsOrder: E,
758
+ swapItems: te,
759
+ reverseItemsOrder: T,
813
760
  setItemList: y,
814
- pushItem: O,
815
- pushItems: D,
816
- removeItems: j,
761
+ pushItem: D,
762
+ pushItems: E,
763
+ removeItems: re,
817
764
  getItemList: h,
818
765
  findElementUnderPointer: e.useCallback(({ target: e, clientX: t, clientY: n }, { returnLocked: r = !1, passLocked: i = !1 } = {}) => {
819
766
  if (["INPUT", "TEXTAREA"].includes(e.tagName)) return null;
820
- let a = A(e, "item");
767
+ let a = ne(e, "item");
821
768
  if (a) {
822
- if (k(a, "selected")) return a;
823
- if (!i && k(a, "locked") && !k(e, "passthrough")) return r ? a : null;
824
- if (k(e, "passthrough")) {
769
+ if (O(a, "selected")) return a;
770
+ if (!i && O(a, "locked") && !O(e, "passthrough")) return r ? a : null;
771
+ if (O(e, "passthrough")) {
825
772
  let e = u(), { uid: r } = c(), o = e.reduce((e, i) => {
826
- let a = P(r, i), o = a.getBoundingClientRect();
827
- return N({
773
+ let a = M(r, i), o = a.getBoundingClientRect();
774
+ return j({
828
775
  x: t,
829
776
  y: n
830
777
  }, o) && e.unshift(a), e;
831
778
  }, []);
832
779
  for (let e = 0; e < o.length; e += 1) {
833
780
  let t = o[e];
834
- if (t !== a && (i || !k(t, "locked"))) return t;
781
+ if (t !== a && (i || !O(t, "locked"))) return t;
835
782
  }
836
783
  return null;
837
784
  }
838
785
  }
839
786
  return a;
840
787
  }, [c, u]),
841
- getItems: te
788
+ getItems: ie
842
789
  };
843
- }, Fe = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
790
+ }, Pe = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
844
791
  t.exports = function e(t, n) {
845
792
  if (t === n) return !0;
846
793
  if (t && n && typeof t == "object" && typeof n == "object") {
@@ -880,17 +827,17 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
880
827
  }
881
828
  return t !== t && n !== n;
882
829
  };
883
- })))(), 1), Ie = (e, t) => {
830
+ })))(), 1), Fe = (e, t) => {
884
831
  if (e.type in t) {
885
832
  let n = t[e.type].defaultActions;
886
833
  return typeof n == "function" ? n(e) : n;
887
834
  }
888
835
  return [];
889
- }, Le = (e, t) => {
890
- let { actions: n = Ie(e, t) } = e;
836
+ }, Ie = (e, t) => {
837
+ let { actions: n = Fe(e, t) } = e;
891
838
  return n.map((e) => typeof e == "string" ? { name: e } : e);
892
- }, Re = () => {
893
- let [t, r] = I((e) => [e.items, e.getItems]), [i, a, o] = L((e) => [
839
+ }, Le = () => {
840
+ let [t, r] = P((e) => [e.items, e.getItems]), [i, a, o] = F((e) => [
894
841
  e.config.itemTemplates,
895
842
  e.selection,
896
843
  e.getSelection
@@ -908,9 +855,9 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
908
855
  if (e.length > 0) {
909
856
  if (!l.current) return;
910
857
  let e = t.reduce((e, t) => {
911
- let n = Le(t, i);
912
- return e.filter((e) => n.some((t) => (0, Fe.default)(e, t)));
913
- }, Le(t[0], i));
858
+ let n = Ie(t, i);
859
+ return e.filter((e) => n.some((t) => (0, Pe.default)(e, t)));
860
+ }, Ie(t[0], i));
914
861
  u(() => {
915
862
  c(e);
916
863
  });
@@ -923,32 +870,32 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
923
870
  a,
924
871
  p
925
872
  ], 100), { availableActions: s };
926
- }, ze = () => {
927
- let [e] = L((e) => [e.selectionBox]);
873
+ }, Re = () => {
874
+ let [e] = F((e) => [e.selectionBox]);
928
875
  return e;
929
- }, Be = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict", H = (e = 21) => {
876
+ }, ze = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict", B = (e = 21) => {
930
877
  let t = "", n = crypto.getRandomValues(new Uint8Array(e |= 0));
931
- for (; e--;) t += Be[n[e] & 63];
878
+ for (; e--;) t += ze[n[e] & 63];
932
879
  return t;
933
- }, Ve = e.createContext(), He = (e) => {
880
+ }, Be = e.createContext(), Ve = (e) => {
934
881
  localStorage.setItem("user", JSON.stringify(e));
935
- }, Ue = () => {
882
+ }, He = () => {
936
883
  if (localStorage.user) {
937
884
  let e = {
938
885
  name: "Player",
939
- color: de(),
940
- uid: H(),
886
+ color: fe(),
887
+ uid: B(),
941
888
  ...JSON.parse(localStorage.user)
942
889
  };
943
- return He(e), e;
890
+ return Ve(e), e;
944
891
  }
945
892
  let e = {
946
893
  name: "Player",
947
- color: de(),
948
- uid: H()
894
+ color: fe(),
895
+ uid: B()
949
896
  };
950
- return He(e), e;
951
- }, We = (e) => (t, n) => ({
897
+ return Ve(e), e;
898
+ }, Ue = (e) => (t, n) => ({
952
899
  isSpaceMaster: !1,
953
900
  users: {},
954
901
  getUser: () => n().users[e],
@@ -971,7 +918,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
971
918
  id: r,
972
919
  uid: t.users[r].uid
973
920
  };
974
- return a.id === e && He(a), setTimeout(() => n().electSpaceMaster(), 100), { users: {
921
+ return a.id === e && Ve(a), setTimeout(() => n().electSpaceMaster(), 100), { users: {
975
922
  ...t.users,
976
923
  [r]: a
977
924
  } };
@@ -994,7 +941,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
994
941
  e < i.timestamp && (i.id = t, i.timestamp = e);
995
942
  }), t({ isSpaceMaster: i.id === e });
996
943
  }
997
- }), Ge = (e) => ({
944
+ }), We = (e) => ({
998
945
  cursors: {},
999
946
  moveCursor: (t, n) => e((e) => ({ cursors: {
1000
947
  ...e.cursors,
@@ -1004,12 +951,12 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
1004
951
  let n = { ...e.cursors };
1005
952
  return delete n[t], { cursors: n };
1006
953
  })
1007
- }), Ke = ({ storeName: t, children: n }) => {
1008
- let { wire: r, isMaster: i } = O("room"), [o, c] = e.useState(null), [l, u] = e.useState(!1), d = e.useRef(!1);
954
+ }), Ge = ({ storeName: t, children: n }) => {
955
+ let { wire: r, isMaster: i } = D("room"), [o, c] = e.useState(null), [l, u] = e.useState(!1), d = e.useRef(!1);
1009
956
  return e.useEffect(() => {
1010
957
  let e = !0, n = [];
1011
958
  if (!o && !d.current) return d.current = !0, (() => {
1012
- let n = s(fe({
959
+ let n = s(pe({
1013
960
  wire: r,
1014
961
  storeName: t,
1015
962
  noSync: [
@@ -1019,8 +966,8 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
1019
966
  "electSpaceMaster"
1020
967
  ]
1021
968
  }, (...e) => ({
1022
- ...We(r.userId)(...e),
1023
- ...Ge(...e)
969
+ ...Ue(r.userId)(...e),
970
+ ...We(...e)
1024
971
  }), r, t)), i = n.subscribe((t) => {
1025
972
  t.ready && (i(), e && c(n));
1026
973
  });
@@ -1034,7 +981,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
1034
981
  r.userId
1035
982
  ]), e.useEffect(() => {
1036
983
  if (o) return o.getState().addUser({
1037
- ...Ue(),
984
+ ...He(),
1038
985
  id: r.userId
1039
986
  }), u(!0), () => {
1040
987
  o.getState().removeUser(r.userId);
@@ -1062,15 +1009,15 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
1062
1009
  i,
1063
1010
  o,
1064
1011
  r
1065
- ]), l ? /* @__PURE__ */ a(Ve.Provider, {
1012
+ ]), l ? /* @__PURE__ */ a(Be.Provider, {
1066
1013
  value: o,
1067
1014
  children: n
1068
1015
  }) : null;
1069
- }, U = (e) => {
1070
- let t = r(Ve);
1016
+ }, V = (e) => {
1017
+ let t = r(Be);
1071
1018
  return c(t, e, l);
1072
- }, qe = () => {
1073
- let [t, n, r, i, a] = U((e) => [
1019
+ }, Ke = () => {
1020
+ let [t, n, r, i, a] = V((e) => [
1074
1021
  e.isSpaceMaster,
1075
1022
  e.getUser(),
1076
1023
  e.users,
@@ -1088,8 +1035,8 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
1088
1035
  }, [n, o]),
1089
1036
  joinSpace: a
1090
1037
  };
1091
- }, Je = () => {
1092
- let [t, n, r] = I((e) => [
1038
+ }, qe = () => {
1039
+ let [t, n, r] = P((e) => [
1093
1040
  e.boardConfig,
1094
1041
  e.getBoardConfig,
1095
1042
  e.setBoardConfig
@@ -1100,11 +1047,11 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
1100
1047
  let i = n(), a = t(i);
1101
1048
  r(a);
1102
1049
  }, [n, r])];
1103
- }, Ye = () => {
1104
- let [e] = L((e) => [e.boardState]);
1050
+ }, Je = () => {
1051
+ let [e] = F((e) => [e.boardState]);
1105
1052
  return e;
1106
- }, Xe = () => {
1107
- let [e, t, n, r] = I((e) => [
1053
+ }, Ye = () => {
1054
+ let [e, t, n, r] = P((e) => [
1108
1055
  e.getSessionInfo,
1109
1056
  e.setSessionInfo,
1110
1057
  e.updateSessionInfo,
@@ -1116,7 +1063,7 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
1116
1063
  sessionInfo: r,
1117
1064
  updateSessionInfo: n
1118
1065
  };
1119
- }, Ze = e.createContext(), Qe = ({ user: { name: e, uid: t, color: n }, content: r }) => ({
1066
+ }, Xe = e.createContext(), Ze = ({ user: { name: e, uid: t, color: n }, content: r }) => ({
1120
1067
  type: "message",
1121
1068
  user: {
1122
1069
  name: e,
@@ -1124,9 +1071,9 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
1124
1071
  color: n
1125
1072
  },
1126
1073
  content: r,
1127
- uid: H(),
1074
+ uid: B(),
1128
1075
  timestamp: (/* @__PURE__ */ new Date()).toISOString()
1129
- }), $e = (e, t) => ({
1076
+ }), Qe = (e, t) => ({
1130
1077
  messages: [],
1131
1078
  setMessages: (t) => e({ messages: t.map((e) => ({
1132
1079
  ...e,
@@ -1137,28 +1084,28 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
1137
1084
  timestamp: Date.parse(t.timestamp)
1138
1085
  }] })),
1139
1086
  sendMessage: (e, n) => {
1140
- let r = Qe({
1087
+ let r = Ze({
1141
1088
  user: e,
1142
1089
  content: n
1143
1090
  });
1144
1091
  r && t().addMessage(r);
1145
1092
  }
1146
- }), et = ({ storeName: t, children: n, defaultValue: r = [] }) => {
1147
- let { wire: i } = O("room"), [o] = e.useState(() => s(fe({
1093
+ }), $e = ({ storeName: t, children: n, defaultValue: r = [] }) => {
1094
+ let { wire: i } = D("room"), [o] = e.useState(() => s(pe({
1148
1095
  wire: i,
1149
1096
  storeName: t,
1150
1097
  defaultValue: r,
1151
1098
  noSync: ["sendMessage"]
1152
- }, (...e) => ({ ...$e(...e) }))));
1153
- return /* @__PURE__ */ a(Ze.Provider, {
1099
+ }, (...e) => ({ ...Qe(...e) }))));
1100
+ return /* @__PURE__ */ a(Xe.Provider, {
1154
1101
  value: o,
1155
1102
  children: n
1156
1103
  });
1157
- }, tt = (e) => {
1158
- let t = r(Ze);
1104
+ }, et = (e) => {
1105
+ let t = r(Xe);
1159
1106
  return c(t, e, l);
1160
- }, nt = () => {}, rt = (t = nt) => {
1161
- let n = U((e) => e.getUser()), [r, i, a] = tt((e) => [
1107
+ }, tt = () => {}, nt = (t = tt) => {
1108
+ let n = V((e) => e.getUser()), [r, i, a] = et((e) => [
1162
1109
  e.messages,
1163
1110
  e.setMessages,
1164
1111
  e.sendMessage
@@ -1172,41 +1119,41 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
1172
1119
  a(n, e);
1173
1120
  }, [n, a])
1174
1121
  };
1175
- }, it = ({ children: t, session: n }) => {
1176
- let r = U((e) => e.joinSpace);
1122
+ }, rt = ({ children: t, session: n }) => {
1123
+ let r = V((e) => e.joinSpace);
1177
1124
  return e.useEffect(() => (r(n), () => {
1178
1125
  r(null);
1179
1126
  }), [r, n]), t;
1180
- }, at = ({ socket: t, room: n, session: r, items: i = [], messages: o = [], LoadingComponent: s, ...c }) => {
1181
- let [l] = e.useState(n || H()), [u] = e.useState(r || H()), [d] = e.useState(() => ({
1127
+ }, it = ({ socket: t, room: n, session: r, items: i = [], messages: o = [], LoadingComponent: s, ...c }) => {
1128
+ let [l] = e.useState(n || B()), [u] = e.useState(r || B()), [d] = e.useState(() => ({
1182
1129
  itemIds: i.map(({ id: e }) => e),
1183
1130
  items: Object.fromEntries(i.map((e) => [e.id, e]))
1184
1131
  }));
1185
- return O("room") ? /* @__PURE__ */ a(et, {
1132
+ return D("room") ? /* @__PURE__ */ a($e, {
1186
1133
  storeName: `${u}_messages`,
1187
1134
  defaultValue: o,
1188
- children: /* @__PURE__ */ a(Oe, { children: /* @__PURE__ */ a(ye, {
1135
+ children: /* @__PURE__ */ a(ke, { children: /* @__PURE__ */ a(be, {
1189
1136
  storeName: `${u}_item`,
1190
1137
  defaultValue: d,
1191
- children: /* @__PURE__ */ a(it, {
1138
+ children: /* @__PURE__ */ a(rt, {
1192
1139
  ...c,
1193
1140
  session: u
1194
1141
  })
1195
1142
  }) })
1196
- }) : /* @__PURE__ */ a(D, {
1143
+ }) : /* @__PURE__ */ a(E, {
1197
1144
  room: l,
1198
1145
  channel: "room",
1199
1146
  socket: t,
1200
1147
  LoadingComponent: s,
1201
- children: /* @__PURE__ */ a(Ke, {
1148
+ children: /* @__PURE__ */ a(Ge, {
1202
1149
  storeName: `${l}_users`,
1203
- children: /* @__PURE__ */ a(et, {
1150
+ children: /* @__PURE__ */ a($e, {
1204
1151
  storeName: `${u}_messages`,
1205
1152
  defaultValue: o,
1206
- children: /* @__PURE__ */ a(Oe, { children: /* @__PURE__ */ a(ye, {
1153
+ children: /* @__PURE__ */ a(ke, { children: /* @__PURE__ */ a(be, {
1207
1154
  storeName: `${u}_item`,
1208
1155
  defaultValue: d,
1209
- children: /* @__PURE__ */ a(it, {
1156
+ children: /* @__PURE__ */ a(rt, {
1210
1157
  ...c,
1211
1158
  session: u
1212
1159
  })
@@ -1214,19 +1161,19 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
1214
1161
  })
1215
1162
  })
1216
1163
  });
1217
- }, ot = ({ socket: t, room: n, children: r, LoadingComponent: i }) => {
1218
- let [o] = e.useState(n || H());
1219
- return /* @__PURE__ */ a(D, {
1164
+ }, at = ({ socket: t, room: n, children: r, LoadingComponent: i }) => {
1165
+ let [o] = e.useState(n || B());
1166
+ return /* @__PURE__ */ a(E, {
1220
1167
  room: o,
1221
1168
  channel: "room",
1222
1169
  socket: t,
1223
1170
  LoadingComponent: i,
1224
- children: /* @__PURE__ */ a(Ke, {
1171
+ children: /* @__PURE__ */ a(Ge, {
1225
1172
  storeName: `${o}_users`,
1226
1173
  children: r
1227
1174
  })
1228
1175
  });
1229
- }, st = { data: "" }, ct = (e) => {
1176
+ }, ot = { data: "" }, st = (e) => {
1230
1177
  if (typeof window == "object") {
1231
1178
  let t = (e ? e.querySelector("#_goober") : window._goober) || Object.assign(document.createElement("style"), {
1232
1179
  innerHTML: " ",
@@ -1234,58 +1181,58 @@ var m = Object.create, h = Object.defineProperty, g = Object.getOwnPropertyDescr
1234
1181
  });
1235
1182
  return t.nonce = window.__nonce__, t.parentNode || (e || document.head).appendChild(t), t.firstChild;
1236
1183
  }
1237
- return e || st;
1238
- }, lt = /(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g, ut = /\/\*[^]*?\*\/| +/g, dt = /\n+/g, W = (e, t) => {
1184
+ return e || ot;
1185
+ }, ct = /(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(}\s*)/g, lt = /\/\*[^]*?\*\/| +/g, ut = /\n+/g, H = (e, t) => {
1239
1186
  let n = "", r = "", i = "";
1240
1187
  for (let a in e) {
1241
1188
  let o = e[a];
1242
- 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 + ";");
1189
+ a[0] == "@" ? a[1] == "i" ? n = a + " " + o + ";" : r += a[1] == "f" ? H(o, a) : a + "{" + H(o, a[1] == "k" ? "" : t) + "}" : typeof o == "object" ? r += H(o, t ? t.replace(/([^,])+/g, (e) => a.replace(/([^,]*:\S+\([^)]*\))|([^,])+/g, (t) => /&/.test(t) ? t.replace(/&/g, e) : e ? e + " " + t : t)) : a) : o != null && (a = a[1] == "-" ? a : a.replace(/[A-Z]/g, "-$&").toLowerCase(), i += H.p ? H.p(a, o) : a + ":" + o + ";");
1243
1190
  }
1244
1191
  return n + (t && i ? t + "{" + i + "}" : i) + r;
1245
- }, G = {}, ft = (e) => {
1192
+ }, U = {}, dt = (e) => {
1246
1193
  if (typeof e == "object") {
1247
1194
  let t = "";
1248
- for (let n in e) t += n + ft(e[n]);
1195
+ for (let n in e) t += n + dt(e[n]);
1249
1196
  return t;
1250
1197
  }
1251
1198
  return e;
1252
- }, pt = (e, t, n, r, i) => {
1253
- let a = ft(e), o = G[a] || (G[a] = ((e) => {
1199
+ }, ft = (e, t, n, r, i) => {
1200
+ let a = dt(e), o = U[a] || (U[a] = ((e) => {
1254
1201
  let t = 0, n = 11;
1255
1202
  for (; t < e.length;) n = 101 * n + e.charCodeAt(t++) >>> 0;
1256
1203
  return "go" + n;
1257
1204
  })(a));
1258
- if (!G[o]) {
1205
+ if (!U[o]) {
1259
1206
  let t = a === e ? ((e) => {
1260
1207
  let t, n, r = [{}];
1261
- for (; t = lt.exec(e.replace(ut, ""));) t[4] ? r.shift() : t[3] ? (n = t[3].replace(dt, " ").trim(), r.unshift(r[0][n] = r[0][n] || {})) : r[0][t[1]] = t[2].replace(dt, " ").trim();
1208
+ for (; t = ct.exec(e.replace(lt, ""));) t[4] ? r.shift() : t[3] ? (n = t[3].replace(ut, " ").trim(), r.unshift(r[0][n] = r[0][n] || {})) : r[0][t[1]] = t[2].replace(ut, " ").trim();
1262
1209
  return r[0];
1263
1210
  })(e) : e;
1264
- G[o] = W(i ? { ["@keyframes " + o]: t } : t, n ? "" : "." + o);
1211
+ U[o] = H(i ? { ["@keyframes " + o]: t } : t, n ? "" : "." + o);
1265
1212
  }
1266
- let s = n && G.g;
1267
- return n && (G.g = G[o]), ((e, t, n, r) => {
1213
+ let s = n && U.g;
1214
+ return n && (U.g = U[o]), ((e, t, n, r) => {
1268
1215
  r ? t.data = t.data.replace(r, e) : t.data.indexOf(e) === -1 && (t.data = n ? e + t.data : t.data + e);
1269
- })(G[o], t, r, s), o;
1270
- }, mt = (e, t, n) => e.reduce((e, r, i) => {
1216
+ })(U[o], t, r, s), o;
1217
+ }, pt = (e, t, n) => e.reduce((e, r, i) => {
1271
1218
  let a = t[i];
1272
1219
  if (a && a.call) {
1273
1220
  let e = a(n), t = e && e.props && e.props.className || /^go/.test(e) && e;
1274
- a = t ? "." + t : e && typeof e == "object" ? e.props ? "" : W(e, "") : !1 === e ? "" : e;
1221
+ a = t ? "." + t : e && typeof e == "object" ? e.props ? "" : H(e, "") : !1 === e ? "" : e;
1275
1222
  }
1276
1223
  return e + r + (a ?? "");
1277
1224
  }, "");
1278
- function K(e) {
1225
+ function W(e) {
1279
1226
  let t = this || {}, n = e.call ? e(t.p) : e;
1280
- return pt(n.unshift ? n.raw ? mt(n, [].slice.call(arguments, 1), t.p) : n.reduce((e, n) => Object.assign(e, n && n.call ? n(t.p) : n), {}) : n, ct(t.target), t.g, t.o, t.k);
1227
+ return ft(n.unshift ? n.raw ? pt(n, [].slice.call(arguments, 1), t.p) : n.reduce((e, n) => Object.assign(e, n && n.call ? n(t.p) : n), {}) : n, st(t.target), t.g, t.o, t.k);
1281
1228
  }
1282
- K.bind({ g: 1 }), K.bind({ k: 1 });
1283
- function ht(e, t, n, r) {
1284
- W.p = t;
1229
+ W.bind({ g: 1 }), W.bind({ k: 1 });
1230
+ function mt(e, t, n, r) {
1231
+ H.p = t;
1285
1232
  }
1286
1233
  //#endregion
1287
1234
  //#region src/lib/board/Gesture.jsx
1288
- var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1235
+ var ht = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1289
1236
  t.exports = function e(t, n) {
1290
1237
  if (t === n) return !0;
1291
1238
  if (t && n && typeof t == "object" && typeof n == "object") {
@@ -1309,44 +1256,44 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1309
1256
  }
1310
1257
  return t !== t && n !== n;
1311
1258
  };
1312
- })))(), 1), _t = () => {
1259
+ })))(), 1), gt = () => {
1313
1260
  let e = navigator.userAgent.toLowerCase();
1314
1261
  return /mac os ?x 10/.test(e);
1315
- }, vt = (() => {
1262
+ }, _t = (() => {
1316
1263
  let e = document.createElement("iframe");
1317
1264
  e.src = "#", document.body.appendChild(e);
1318
1265
  let t = e.contentWindow.document;
1319
1266
  t.open(), t.write("<!DOCTYPE html><html><head></head><body><span>a</span></body></html>"), t.close();
1320
1267
  let n = t.body.firstElementChild.offsetHeight;
1321
1268
  return document.body.removeChild(e), n;
1322
- })(), yt = 800, bt = (e, t) => e[Object.keys(e).map((e) => Number(e)).find((e) => e !== t)], xt = ([e, t], [n, r]) => {
1269
+ })(), vt = 800, yt = (e, t) => e[Object.keys(e).map((e) => Number(e)).find((e) => e !== t)], bt = ([e, t], [n, r]) => {
1323
1270
  let i = Math.abs(e - n), a = Math.abs(t - r);
1324
1271
  return Math.hypot(i, a);
1325
- }, q = () => {}, St = (e) => (t) => {
1272
+ }, G = () => {}, xt = (e) => (t) => {
1326
1273
  let { event: n } = t;
1327
1274
  return n.isPropagationStopped() ? null : e(t);
1328
- }, Ct = (e) => async (...t) => {
1275
+ }, St = (e) => async (...t) => {
1329
1276
  try {
1330
1277
  await e(...t);
1331
1278
  } catch (e) {
1332
1279
  console.error(e);
1333
1280
  }
1334
- }, J = new class {
1281
+ }, K = new class {
1335
1282
  lastPromise = Promise.resolve(!0);
1336
1283
  add(e, ...t) {
1337
1284
  return new Promise((n, r) => {
1338
- this.lastPromise = this.lastPromise.then(() => St(Ct(e))(...t)).then(n).catch(r);
1285
+ this.lastPromise = this.lastPromise.then(() => xt(St(e))(...t)).then(n).catch(r);
1339
1286
  });
1340
1287
  }
1341
- }(), Y = ({ children: t, onDrag: n = q, onDragStart: r = q, onDragEnd: i = q, onPan: o = q, onTap: s = q, onLongTap: c = q, onDoubleTap: l = q, onZoom: u, mainAction: d = "drag" }) => {
1342
- let f = e.useRef(null), p = e.useRef({
1288
+ }(), q = ({ children: t, onDrag: n = G, onDragStart: r = G, onDragEnd: i = G, onPan: o = G, onTap: s = G, onLongTap: c = G, onDoubleTap: l = G, onZoom: u, mainAction: d = "drag", fill: f = !1 }) => {
1289
+ let p = e.useRef(null), m = e.useRef({
1343
1290
  moving: !1,
1344
1291
  pointers: {},
1345
1292
  mainPointer: void 0
1346
- }), m = (e) => {
1293
+ }), h = (e) => {
1347
1294
  let { deltaX: t, deltaY: n, clientX: r, clientY: i, deltaMode: a, ctrlKey: s, altKey: c, metaKey: l, target: d } = e;
1348
- if (!(c || s && !_t())) {
1349
- if (_t() && !s) J.add(o, {
1295
+ if (!(c || s && !gt())) {
1296
+ if (gt() && !s) K.add(o, {
1350
1297
  deltaX: -2 * t,
1351
1298
  deltaY: -2 * n,
1352
1299
  button: 1,
@@ -1360,11 +1307,11 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1360
1307
  let t = n;
1361
1308
  switch (a) {
1362
1309
  case 1:
1363
- t *= vt;
1310
+ t *= _t;
1364
1311
  break;
1365
- case 2: t *= yt;
1312
+ case 2: t *= vt;
1366
1313
  }
1367
- _t() && (t *= 2), J.add(u, {
1314
+ gt() && (t *= 2), K.add(u, {
1368
1315
  scale: t,
1369
1316
  clientX: r,
1370
1317
  clientY: i,
@@ -1372,15 +1319,15 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1372
1319
  });
1373
1320
  }
1374
1321
  }
1375
- }, h = (e) => {
1322
+ }, g = (e) => {
1376
1323
  let { target: t, button: n, clientX: r, clientY: i, pointerId: a, altKey: o, ctrlKey: s, metaKey: l, isPrimary: u } = e;
1377
- if (p.current.pointers[a] = {
1324
+ if (m.current.pointers[a] = {
1378
1325
  clientX: r,
1379
1326
  clientY: i
1380
- }, u && (p.current.mainPointer = void 0), p.current.mainPointer !== void 0) {
1381
- if (p.current.mainPointer !== a) try {
1382
- let { clientX: e, clientY: t } = bt(p.current.pointers, a), n = (e + r) / 2, o = (t + i) / 2, s = xt([e, t], [r, i]);
1383
- Object.assign(p.current, {
1327
+ }, u && (m.current.mainPointer = void 0), m.current.mainPointer !== void 0) {
1328
+ if (m.current.mainPointer !== a) try {
1329
+ let { clientX: e, clientY: t } = yt(m.current.pointers, a), n = (e + r) / 2, o = (t + i) / 2, s = bt([e, t], [r, i]);
1330
+ Object.assign(m.current, {
1384
1331
  pressed: !0,
1385
1332
  moving: !1,
1386
1333
  gestureStart: !1,
@@ -1392,11 +1339,11 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1392
1339
  prevDistance: s
1393
1340
  });
1394
1341
  } catch (e) {
1395
- console.log("Error while getting other pointer. Ignoring", e), p.current.mainPointer;
1342
+ console.log("Error while getting other pointer. Ignoring", e), m.current.mainPointer;
1396
1343
  }
1397
1344
  return;
1398
1345
  }
1399
- p.current.mainPointer = a, Object.assign(p.current, {
1346
+ m.current.mainPointer = a, Object.assign(m.current, {
1400
1347
  pressed: !0,
1401
1348
  moving: !1,
1402
1349
  gestureStart: !1,
@@ -1411,7 +1358,7 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1411
1358
  target: t,
1412
1359
  timeStart: Date.now(),
1413
1360
  longTapTimeout: setTimeout(async () => {
1414
- p.current.noTap = !0, J.add(c, {
1361
+ m.current.noTap = !0, K.add(c, {
1415
1362
  clientX: r,
1416
1363
  clientY: i,
1417
1364
  altKey: o,
@@ -1427,89 +1374,89 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1427
1374
  } catch (e) {
1428
1375
  console.log("Fail to capture pointer", e);
1429
1376
  }
1430
- }, g = (e) => {
1431
- if (p.current.pressed) {
1432
- let { pointerId: t, clientX: i, clientY: a, altKey: s, shiftKey: c, ctrlKey: l, metaKey: m, buttons: h } = e;
1433
- p.current.pointers[t] = {
1377
+ }, _ = (e) => {
1378
+ if (m.current.pressed) {
1379
+ let { pointerId: t, clientX: i, clientY: a, altKey: s, shiftKey: c, ctrlKey: l, metaKey: f, buttons: h } = e;
1380
+ m.current.pointers[t] = {
1434
1381
  clientX: i,
1435
1382
  clientY: a
1436
- }, p.current.moving = !0;
1437
- let g = Object.keys(p.current.pointers).length === 2, _, v, y = 0;
1383
+ }, m.current.moving = !0;
1384
+ let g = Object.keys(m.current.pointers).length === 2, _, v, y = 0;
1438
1385
  if (g) {
1439
- let { clientX: e, clientY: n } = bt(p.current.pointers, t);
1440
- _ = (e + i) / 2, v = (n + a) / 2, y = xt([e, n], [i, a]);
1386
+ let { clientX: e, clientY: n } = yt(m.current.pointers, t);
1387
+ _ = (e + i) / 2, v = (n + a) / 2, y = bt([e, n], [i, a]);
1441
1388
  } else _ = i, v = a;
1442
- let b = c || s || l || m || h !== 1;
1389
+ let b = c || s || l || f || h !== 1;
1443
1390
  d !== "drag" && (b = !b);
1444
1391
  let x = !b, S = b;
1445
1392
  if (x) {
1446
- p.current.gestureStart || (f.current.style.cursor = "move", p.current.gestureStart = !0, clearTimeout(p.current.longTapTimeout), J.add(r, {
1393
+ m.current.gestureStart || (p.current.style.cursor = "move", m.current.gestureStart = !0, clearTimeout(m.current.longTapTimeout), K.add(r, {
1447
1394
  deltaX: 0,
1448
1395
  deltaY: 0,
1449
- startX: p.current.startX,
1450
- startY: p.current.startY,
1451
- clientX: p.current.startX,
1452
- clientY: p.current.startY,
1396
+ startX: m.current.startX,
1397
+ startY: m.current.startY,
1398
+ clientX: m.current.startX,
1399
+ clientY: m.current.startY,
1453
1400
  distanceX: 0,
1454
1401
  distanceY: 0,
1455
- button: p.current.currentButton,
1402
+ button: m.current.currentButton,
1456
1403
  altKey: s,
1457
1404
  shiftKey: c,
1458
1405
  ctrlKey: l,
1459
- metaKey: m,
1460
- target: p.current.target,
1461
- event: p.current.pointerDownEvent
1406
+ metaKey: f,
1407
+ target: m.current.target,
1408
+ event: m.current.pointerDownEvent
1462
1409
  }));
1463
- let t = _ - p.current.prevX, i = v - p.current.prevY, a = _ - p.current.startX, o = v - p.current.startY;
1464
- J.add(n, {
1410
+ let t = _ - m.current.prevX, i = v - m.current.prevY, a = _ - m.current.startX, o = v - m.current.startY;
1411
+ K.add(n, {
1465
1412
  deltaX: t,
1466
1413
  deltaY: i,
1467
- startX: p.current.startX,
1468
- startY: p.current.startY,
1414
+ startX: m.current.startX,
1415
+ startY: m.current.startY,
1469
1416
  clientX: _,
1470
1417
  clientY: v,
1471
1418
  distanceX: a,
1472
1419
  distanceY: o,
1473
- button: p.current.currentButton,
1420
+ button: m.current.currentButton,
1474
1421
  altKey: s,
1475
1422
  shiftKey: c,
1476
1423
  ctrlKey: l,
1477
- metaKey: m,
1478
- target: p.current.target,
1424
+ metaKey: f,
1425
+ target: m.current.target,
1479
1426
  event: e
1480
1427
  });
1481
1428
  }
1482
1429
  if (S) {
1483
- p.current.gestureStart || (f.current.style.cursor = "move", p.current.gestureStart = !0, clearTimeout(p.current.longTapTimeout));
1484
- let t = _ - p.current.prevX, n = v - p.current.prevY, { target: r } = p.current;
1485
- if (J.add(o, {
1430
+ m.current.gestureStart || (p.current.style.cursor = "move", m.current.gestureStart = !0, clearTimeout(m.current.longTapTimeout));
1431
+ let t = _ - m.current.prevX, n = v - m.current.prevY, { target: r } = m.current;
1432
+ if (K.add(o, {
1486
1433
  deltaX: t,
1487
1434
  deltaY: n,
1488
- button: p.current.currentButton,
1435
+ button: m.current.currentButton,
1489
1436
  altKey: s,
1490
1437
  shiftKey: c,
1491
1438
  ctrlKey: l,
1492
- metaKey: m,
1439
+ metaKey: f,
1493
1440
  target: r,
1494
1441
  event: e
1495
- }), y !== p.current.prevDistance && u) {
1496
- let t = p.current.prevDistance - y;
1497
- Math.abs(t) > 0 && (J.add(u, {
1442
+ }), y !== m.current.prevDistance && u) {
1443
+ let t = m.current.prevDistance - y;
1444
+ Math.abs(t) > 0 && (K.add(u, {
1498
1445
  scale: t * 3,
1499
1446
  clientX: _,
1500
1447
  clientY: v,
1501
1448
  event: e
1502
- }), p.current.prevDistance = y);
1449
+ }), m.current.prevDistance = y);
1503
1450
  }
1504
1451
  }
1505
- p.current.prevX = _, p.current.prevY = v;
1452
+ m.current.prevX = _, m.current.prevY = v;
1506
1453
  }
1507
- }, _ = (e) => {
1454
+ }, v = (e) => {
1508
1455
  let { clientX: t, clientY: n, altKey: r, shiftKey: a, ctrlKey: o, metaKey: c, target: l, pointerId: u } = e;
1509
- if (p.current.pointers[u]) {
1510
- if (delete p.current.pointers[u], p.current.mainPointer !== u) {
1511
- let { clientX: e, clientY: t } = p.current.pointers[p.current.mainPointer];
1512
- Object.assign(p.current, {
1456
+ if (m.current.pointers[u]) {
1457
+ if (delete m.current.pointers[u], m.current.mainPointer !== u) {
1458
+ let { clientX: e, clientY: t } = m.current.pointers[m.current.mainPointer];
1459
+ Object.assign(m.current, {
1513
1460
  prevX: e,
1514
1461
  prevY: t,
1515
1462
  prevDistance: 0,
@@ -1517,12 +1464,12 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1517
1464
  });
1518
1465
  return;
1519
1466
  }
1520
- for (; Object.keys(p.current.pointers).length > 0;) {
1521
- p.current.mainPointer = Number(Object.keys(p.current.pointers)[0]);
1467
+ for (; Object.keys(m.current.pointers).length > 0;) {
1468
+ m.current.mainPointer = Number(Object.keys(m.current.pointers)[0]);
1522
1469
  try {
1523
- p.current.target.setPointerCapture(p.current.mainPointer);
1524
- let { clientX: e, clientY: t } = p.current.pointers[p.current.mainPointer];
1525
- Object.assign(p.current, {
1470
+ m.current.target.setPointerCapture(m.current.mainPointer);
1471
+ let { clientX: e, clientY: t } = m.current.pointers[m.current.mainPointer];
1472
+ Object.assign(m.current, {
1526
1473
  prevX: e,
1527
1474
  prevY: t,
1528
1475
  prevDistance: 0,
@@ -1530,28 +1477,28 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1530
1477
  });
1531
1478
  return;
1532
1479
  } catch (e) {
1533
- console.log("Fails to set pointer capture", e), p.current.mainPointer = void 0, delete p.current.pointers[Object.keys(p.current.pointers)[0]];
1480
+ console.log("Fails to set pointer capture", e), m.current.mainPointer = void 0, delete m.current.pointers[Object.keys(m.current.pointers)[0]];
1534
1481
  }
1535
1482
  }
1536
- if (p.current.mainPointer = void 0, p.current.pressed = !1, clearTimeout(p.current.longTapTimeout), p.current.moving) p.current.moving = !1, J.add(i, {
1537
- deltaX: t - p.current.prevX,
1538
- deltaY: n - p.current.prevY,
1539
- startX: p.current.startX,
1540
- startY: p.current.startY,
1483
+ if (m.current.mainPointer = void 0, m.current.pressed = !1, clearTimeout(m.current.longTapTimeout), m.current.moving) m.current.moving = !1, K.add(i, {
1484
+ deltaX: t - m.current.prevX,
1485
+ deltaY: n - m.current.prevY,
1486
+ startX: m.current.startX,
1487
+ startY: m.current.startY,
1541
1488
  clientX: t,
1542
1489
  clientY: n,
1543
- distanceX: t - p.current.startX,
1544
- distanceY: n - p.current.startY,
1545
- button: p.current.currentButton,
1490
+ distanceX: t - m.current.startX,
1491
+ distanceY: n - m.current.startY,
1492
+ button: m.current.currentButton,
1546
1493
  altKey: r,
1547
1494
  shiftKey: a,
1548
1495
  ctrlKey: o,
1549
1496
  metaKey: c,
1550
1497
  event: e
1551
- }), f.current.style.cursor = "auto";
1498
+ }), p.current.style.cursor = "auto";
1552
1499
  else {
1553
1500
  let i = Date.now();
1554
- p.current.noTap ? p.current.noTap = !1 : p.current.timeStart - i < 300 && J.add(s, {
1501
+ m.current.noTap ? m.current.noTap = !1 : m.current.timeStart - i < 300 && K.add(s, {
1555
1502
  clientX: t,
1556
1503
  clientY: n,
1557
1504
  altKey: r,
@@ -1565,16 +1512,14 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1565
1512
  }
1566
1513
  };
1567
1514
  return /* @__PURE__ */ a("div", {
1568
- onWheel: m,
1569
- onPointerDown: h,
1570
- onPointerMove: g,
1571
- onPointerUp: _,
1572
- onPointerOut: _,
1573
- onPointerLeave: _,
1574
- onPointerCancel: _,
1515
+ onWheel: h,
1516
+ onPointerDown: g,
1517
+ onPointerMove: _,
1518
+ onPointerUp: v,
1519
+ onPointerCancel: v,
1575
1520
  onDoubleClick: (e) => {
1576
1521
  let { clientX: t, clientY: n, altKey: r, shiftKey: i, ctrlKey: a, metaKey: o, target: s } = e;
1577
- J.add(l, {
1522
+ K.add(l, {
1578
1523
  clientX: t,
1579
1524
  clientY: n,
1580
1525
  altKey: r,
@@ -1585,13 +1530,19 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1585
1530
  event: e
1586
1531
  });
1587
1532
  },
1588
- style: { touchAction: "none" },
1589
- ref: f,
1533
+ style: {
1534
+ touchAction: "none",
1535
+ ...f ? {
1536
+ position: "absolute",
1537
+ inset: 0
1538
+ } : {}
1539
+ },
1540
+ ref: p,
1590
1541
  children: t
1591
1542
  });
1592
- }, wt = ({ onResize: e, ...t }) => {
1593
- let [n] = L((e) => [e.getBoardState]);
1594
- return /* @__PURE__ */ a(Y, {
1543
+ }, J = ({ onResize: e, ...t }) => {
1544
+ let [n] = F((e) => [e.getBoardState]);
1545
+ return /* @__PURE__ */ a(q, {
1595
1546
  onDrag: ({ deltaX: t, deltaY: r, event: i }) => {
1596
1547
  i.stopPropagation();
1597
1548
  let { scale: a } = n();
@@ -1602,36 +1553,36 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1602
1553
  },
1603
1554
  children: /* @__PURE__ */ a("div", { ...t })
1604
1555
  });
1605
- }, Tt = K`
1556
+ }, Ct = W`
1606
1557
  display: inline-block;
1607
1558
  transition: transform 150ms;
1608
1559
  user-select: none;
1609
1560
  padding: 2px;
1610
1561
  box-sizing: border-box;
1611
- `, Et = K`
1562
+ `, wt = W`
1612
1563
  border: 2px dashed #db5034;
1613
1564
  padding: 0px;
1614
1565
  cursor: pointer;
1615
- `, X = K`
1566
+ `, Y = W`
1616
1567
  position: absolute;
1617
1568
  width: 0px;
1618
1569
  height: 0px;
1619
- `, Dt = K`
1570
+ `, Tt = W`
1620
1571
  top: 0;
1621
1572
  left: 0;
1622
- `, Ot = K`
1573
+ `, Et = W`
1623
1574
  top: 0;
1624
1575
  right: 0;
1625
- `, kt = K`
1576
+ `, Dt = W`
1626
1577
  bottom: 0;
1627
1578
  left: 0;
1628
- `, At = K`
1579
+ `, Ot = W`
1629
1580
  bottom: 0;
1630
1581
  right: 0;
1631
- `, jt = K`
1582
+ `, kt = W`
1632
1583
  top: 50%;
1633
1584
  left: 50%;
1634
- `, Z = K`
1585
+ `, X = W`
1635
1586
  position: absolute;
1636
1587
 
1637
1588
  width: 10px;
@@ -1639,20 +1590,20 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1639
1590
  border: 2px solid #db5034;
1640
1591
  background-color: #db5034;
1641
1592
  cursor: move;
1642
- `, Mt = K`
1593
+ `, At = W`
1643
1594
  cursor: ew-resize;
1644
1595
  right: -6px;
1645
1596
  top: calc(50% - 5px);
1646
- `, Nt = K`
1597
+ `, jt = W`
1647
1598
  cursor: ns-resize;
1648
1599
  bottom: -6px;
1649
1600
  left: calc(50% - 5px);
1650
- `, Pt = K`
1601
+ `, Mt = W`
1651
1602
  cursor: nwse-resize;
1652
1603
  bottom: -6px;
1653
1604
  right: -6px;
1654
- `, Ft = ({ onReload: e }) => /* @__PURE__ */ o("div", {
1655
- className: `syncboard-error-item ${K({
1605
+ `, Nt = ({ onReload: e }) => /* @__PURE__ */ o("div", {
1606
+ className: `syncboard-error-item ${W({
1656
1607
  width: "100px",
1657
1608
  display: "flex",
1658
1609
  flexDirection: "column",
@@ -1664,7 +1615,7 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1664
1615
  onClick: e,
1665
1616
  children: "Reload it"
1666
1617
  })]
1667
- }), It = class extends e.Component {
1618
+ }), Pt = class extends e.Component {
1668
1619
  constructor(e) {
1669
1620
  super(e), this.state = {
1670
1621
  hasError: !1,
@@ -1684,9 +1635,9 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1684
1635
  let { ErrorComponent: e } = this.props;
1685
1636
  return this.state.hasError ? /* @__PURE__ */ a(e, { onReload: this.onReload }) : this.props.children;
1686
1637
  }
1687
- }, Lt = (e) => {
1638
+ }, Ft = (e) => {
1688
1639
  e.target.className = "";
1689
- }, Rt = ({ width: e, height: t, actualWidth: n, actualHeight: r, prevState: i, keepRatio: a }) => {
1640
+ }, It = ({ width: e, height: t, actualWidth: n, actualHeight: r, prevState: i, keepRatio: a }) => {
1690
1641
  let { width: o, height: s } = i;
1691
1642
  if ([o, s] = [parseFloat(o), parseFloat(s)], (!o || Number.isNaN(Number(o))) && (o = n), (!s || Number.isNaN(Number(s))) && (s = r), a) {
1692
1643
  let n = o / s;
@@ -1701,21 +1652,21 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1701
1652
  width: (o + e).toFixed(1),
1702
1653
  height: (s + t).toFixed(1)
1703
1654
  };
1704
- }, zt = {
1655
+ }, Lt = {
1705
1656
  w: !0,
1706
1657
  h: !0,
1707
1658
  b: !0
1708
- }, Bt = t(({ setState: t, state: { type: n, rotation: r = 0, id: s, locked: c, extraClasses: l, ...u } = {}, animate: d = "hvr-pop", isSelected: f, itemMap: p, showResizeHandle: m = !0 }) => {
1709
- let h = e.useRef(null), [g] = L((e) => [e.config.uid]), { component: _ = () => null, resizeDirections: v = zt, resize: y = Rt } = p[n], b = e.useCallback((e, n = !1) => t(s, e, n), [t, s]);
1659
+ }, Rt = t(({ setState: t, state: { type: n, rotation: r = 0, id: s, locked: c, extraClasses: l, ...u } = {}, animate: d = "hvr-pop", isSelected: f, itemMap: p, showResizeHandle: m = !0 }) => {
1660
+ let h = e.useRef(null), [g] = F((e) => [e.config.uid]), { component: _ = () => null, resizeDirections: v = Lt, resize: y = It } = p[n], b = e.useCallback((e, n = !1) => t(s, e, n), [t, s]);
1710
1661
  e.useEffect(() => {
1711
1662
  h.current.className = d;
1712
1663
  }, [d]);
1713
1664
  let x = [
1714
1665
  "item",
1715
1666
  s,
1716
- Tt
1667
+ Ct
1717
1668
  ];
1718
- c && x.push("locked"), f && (x.push("selected"), x.push(Et)), Array.isArray(l) && x.concat(l);
1669
+ c && x.push("locked"), f && (x.push("selected"), x.push(wt)), Array.isArray(l) && x.concat(l);
1719
1670
  let S = x.join(" "), C = ({ width: e = 0, height: t = 0, keepRatio: n }) => {
1720
1671
  b((r) => {
1721
1672
  let { offsetWidth: i, offsetHeight: a } = h.current;
@@ -1730,9 +1681,9 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1730
1681
  });
1731
1682
  }, w = ({ width: e }) => {
1732
1683
  C({ width: e });
1733
- }, T = ({ height: e }) => {
1684
+ }, ee = ({ height: e }) => {
1734
1685
  C({ height: e });
1735
- }, E = ({ width: e }) => {
1686
+ }, T = ({ width: e }) => {
1736
1687
  C({
1737
1688
  height: e,
1738
1689
  width: e,
@@ -1747,103 +1698,101 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1747
1698
  children: /* @__PURE__ */ o("div", {
1748
1699
  style: { display: "flex" },
1749
1700
  ref: h,
1750
- onAnimationEnd: Lt,
1701
+ onAnimationEnd: Ft,
1751
1702
  onKeyDown: (e) => e.stopPropagation(),
1752
1703
  onKeyUp: (e) => e.stopPropagation(),
1753
1704
  children: [
1754
- /* @__PURE__ */ a(It, {
1705
+ /* @__PURE__ */ a(Pt, {
1755
1706
  itemId: s,
1756
1707
  state: u,
1757
- ErrorComponent: p?.error?.component || Ft,
1708
+ ErrorComponent: p?.error?.component || Nt,
1758
1709
  children: /* @__PURE__ */ a(_, {
1759
1710
  ...u,
1760
1711
  id: s,
1761
1712
  setState: b
1762
1713
  })
1763
1714
  }),
1764
- /* @__PURE__ */ a("div", { className: `corner ${X} ${Dt}` }),
1765
- /* @__PURE__ */ a("div", { className: `corner ${X} ${Ot}` }),
1766
- /* @__PURE__ */ a("div", { className: `corner ${X} ${At}` }),
1767
- /* @__PURE__ */ a("div", { className: `corner ${X} ${kt}` }),
1768
- /* @__PURE__ */ a("div", { className: `center ${X} ${jt}` }),
1715
+ /* @__PURE__ */ a("div", { className: `corner ${Y} ${Tt}` }),
1716
+ /* @__PURE__ */ a("div", { className: `corner ${Y} ${Et}` }),
1717
+ /* @__PURE__ */ a("div", { className: `corner ${Y} ${Ot}` }),
1718
+ /* @__PURE__ */ a("div", { className: `corner ${Y} ${Dt}` }),
1719
+ /* @__PURE__ */ a("div", { className: `center ${Y} ${kt}` }),
1769
1720
  m && /* @__PURE__ */ o(i, { children: [
1770
- v.b && /* @__PURE__ */ a(wt, {
1771
- className: `${Z} ${Pt}`,
1772
- onResize: E
1773
- }),
1774
- v.h && /* @__PURE__ */ a(wt, {
1775
- className: `${Z} ${Nt}`,
1721
+ v.b && /* @__PURE__ */ a(J, {
1722
+ className: `${X} ${Mt}`,
1776
1723
  onResize: T
1777
1724
  }),
1778
- v.w && /* @__PURE__ */ a(wt, {
1779
- className: `${Z} ${Mt}`,
1725
+ v.h && /* @__PURE__ */ a(J, {
1726
+ className: `${X} ${jt}`,
1727
+ onResize: ee
1728
+ }),
1729
+ v.w && /* @__PURE__ */ a(J, {
1730
+ className: `${X} ${At}`,
1780
1731
  onResize: w
1781
1732
  })
1782
1733
  ] })
1783
1734
  ]
1784
1735
  })
1785
1736
  });
1786
- }, ({ state: e, setState: t, isSelected: n, showResizeHandle: r }, { state: i, setState: a, isSelected: o, showResizeHandle: s }) => n === o && r === s && t === a && (0, gt.default)(e, i)), Vt = (e) => e, Ht = t(({ state: e = {}, getCurrentUser: t, className: n, ...r }) => {
1737
+ }, ({ state: e, setState: t, isSelected: n, showResizeHandle: r }, { state: i, setState: a, isSelected: o, showResizeHandle: s }) => n === o && r === s && t === a && (0, ht.default)(e, i)), zt = (e) => e, Bt = t(({ state: e = {}, getCurrentUser: t, className: n, ...r }) => {
1787
1738
  if (!r.itemMap[e.type]) return null;
1788
- 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);
1739
+ let { stateHook: i = zt } = r.itemMap[e.type], { x: o = 0, y: s = 0, layer: c = 0, moving: l, ...u } = i(e, { currentUser: t?.() }), d = (c + 4) * 10 + 100 + (l ? 5 : 0);
1789
1740
  return /* @__PURE__ */ a("div", {
1790
1741
  className: n,
1791
1742
  style: {
1792
1743
  transform: `translate(${o}px, ${s}px)`,
1793
1744
  zIndex: d
1794
1745
  },
1795
- children: /* @__PURE__ */ a(Bt, {
1746
+ children: /* @__PURE__ */ a(Rt, {
1796
1747
  ...r,
1797
1748
  showResizeHandle: r.isSelected && r.showResizeHandle,
1798
1749
  state: u
1799
1750
  })
1800
1751
  });
1801
- }), Ut = () => {
1802
- let { updateItem: e } = V(), [t, n] = I((e) => [e.itemIds, e.items]), [r, i, o, s] = L((e) => [
1803
- e.config.boardSize,
1752
+ }), Vt = () => {
1753
+ let { updateItem: e } = z(), [t, n] = P((e) => [e.itemIds, e.items]), [r, i, o] = F((e) => [
1804
1754
  e.config.showResizeHandle,
1805
1755
  e.config.itemTemplates,
1806
1756
  e.selection
1807
- ]), [c] = U((e) => [e.getUser]), l = K({
1757
+ ]), [s] = V((e) => [e.getUser]), c = W({
1808
1758
  position: "absolute",
1809
- top: `${r / 2}px`,
1810
- left: `${r / 2}px`,
1759
+ top: 0,
1760
+ left: 0,
1761
+ pointerEvents: "auto",
1811
1762
  display: "inline-block",
1812
1763
  lineHeight: 0
1813
1764
  });
1814
- return t.map((t) => /* @__PURE__ */ a(Ht, {
1765
+ return t.map((t) => /* @__PURE__ */ a(Bt, {
1815
1766
  state: n[t],
1816
1767
  setState: e,
1817
- isSelected: s.includes(t),
1818
- itemMap: o,
1819
- boardSize: r,
1820
- getCurrentUser: c,
1821
- showResizeHandle: i,
1822
- className: l
1768
+ isSelected: o.includes(t),
1769
+ itemMap: i,
1770
+ getCurrentUser: s,
1771
+ showResizeHandle: r,
1772
+ className: c
1823
1773
  }, t));
1824
- }, Wt = K({
1774
+ }, Ht = W({
1825
1775
  zIndex: 210,
1826
1776
  position: "absolute",
1827
1777
  backgroundColor: "hsla(0, 40%, 50%, 10%)",
1828
1778
  border: "2px solid hsl(0, 55%, 40%)"
1829
- }), Gt = (e, t, n = !1) => {
1779
+ }), Ut = (e, t, n = !1) => {
1830
1780
  let r = t.getElementsByClassName("selector");
1831
1781
  if (!r.length) return [];
1832
1782
  let i = r[0];
1833
1783
  return Array.from(t.getElementsByClassName("item")).filter((t) => {
1834
- let r = e[F(t)];
1835
- return !r || !n && r.locked ? !1 : ae(t, i);
1836
- }).map((e) => F(e));
1837
- }, Kt = ({ children: t, moveFirst: n }) => {
1838
- let [r, i, s, c, l, u] = L((e) => [
1784
+ let r = e[N(t)];
1785
+ return !r || !n && r.locked ? !1 : oe(t, i);
1786
+ }).map((e) => N(e));
1787
+ }, Wt = ({ children: t, moveFirst: n }) => {
1788
+ let [r, i, s, c, l, u] = F((e) => [
1839
1789
  e.getSelection,
1840
1790
  e.clear,
1841
1791
  e.setSelection,
1842
1792
  e.select,
1843
1793
  e.getConfiguration,
1844
- e.getBoardState,
1845
1794
  e.updateBoardState
1846
- ]), { findElementUnderPointer: d } = V(), [p] = I((e) => [e.getItems]), [m, h] = e.useState({}), [, g] = e.useTransition(), [_, v] = e.useState(!1), y = e.useRef(null), b = e.useRef({ moving: !1 });
1795
+ ]), { findElementUnderPointer: d } = z(), [p] = P((e) => [e.getItems]), [m, h] = e.useState({}), [, g] = e.useTransition(), [_, v] = e.useState(!1), y = e.useRef(null), b = e.useRef({ moving: !1 });
1847
1796
  return f(document, "keydown", (e) => {
1848
1797
  e.key === "l" && v(!0);
1849
1798
  }), f(document, "keyup", (e) => {
@@ -1852,7 +1801,7 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1852
1801
  i();
1853
1802
  }), [i]), e.useEffect(() => {
1854
1803
  if (b.current.moving) {
1855
- let e = p(), { boardWrapper: t } = l(), n = Gt(e, t, _);
1804
+ let e = p(), { boardWrapper: t } = l(), n = Ut(e, t, _);
1856
1805
  g(() => {
1857
1806
  s(n);
1858
1807
  });
@@ -1863,7 +1812,8 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1863
1812
  m,
1864
1813
  s,
1865
1814
  _
1866
- ]), /* @__PURE__ */ a(Y, {
1815
+ ]), /* @__PURE__ */ a(q, {
1816
+ fill: !0,
1867
1817
  onDragStart: async (e) => {
1868
1818
  await d(e) || (b.current.moving = !0, g(() => {
1869
1819
  u({ selecting: !0 });
@@ -1884,46 +1834,50 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1884
1834
  }), b.current.moving = !1, h({ moving: !1 }), y.current.style.cursor = "auto");
1885
1835
  },
1886
1836
  onTap: (e) => {
1887
- let { target: t, ctrlKey: n, metaKey: a } = e, o = d(e);
1888
- if (!o && A(t, "board")) i();
1837
+ let { ctrlKey: t, metaKey: n } = e, a = d(e);
1838
+ if (!a) i();
1889
1839
  else {
1890
- let e = F(o);
1840
+ let e = N(a);
1891
1841
  if (!e) {
1892
1842
  i();
1893
1843
  return;
1894
1844
  }
1895
- let t = r();
1896
- o && !t.includes(e) && (n || a ? c([e]) : s([e]));
1845
+ let o = r();
1846
+ a && !o.includes(e) && (t || n ? c([e]) : s([e]));
1897
1847
  }
1898
1848
  },
1899
1849
  onLongTap: ({ target: e }) => {
1900
- let t = A(e, "item");
1850
+ let t = ne(e, "item");
1901
1851
  if (t) {
1902
- let e = F(t);
1852
+ let e = N(t);
1903
1853
  s([e]);
1904
1854
  }
1905
1855
  },
1906
1856
  mainAction: n ? "pan" : "drag",
1907
1857
  children: /* @__PURE__ */ o("div", {
1908
1858
  ref: y,
1859
+ style: {
1860
+ position: "absolute",
1861
+ inset: 0
1862
+ },
1909
1863
  children: [m.moving && /* @__PURE__ */ a("div", {
1910
1864
  style: {
1911
1865
  transform: `translate(${m.left}px, ${m.top}px)`,
1912
1866
  height: `${m.height}px`,
1913
1867
  width: `${m.width}px`
1914
1868
  },
1915
- className: `selector ${Wt}`
1869
+ className: `selector ${Ht}`
1916
1870
  }), t]
1917
1871
  })
1918
1872
  });
1919
- }, qt = ({ children: t }) => {
1920
- let { moveItems: n, placeItems: r, findElementUnderPointer: i } = V(), { vectorFromWrapperToBoard: o } = z(), [s, c, l, u, d] = L((e) => [
1873
+ }, Gt = ({ children: t }) => {
1874
+ let { moveItems: n, placeItems: r, findElementUnderPointer: i } = z(), { vectorFromWrapperToBoard: o } = L(), [s, c, l, u, d] = F((e) => [
1921
1875
  e.select,
1922
1876
  e.setSelection,
1923
1877
  e.getSelection,
1924
1878
  e.getBoardState,
1925
1879
  e.updateBoardState
1926
- ]), [p] = I((e) => [e.getBoardConfig]), m = e.useRef({}), h = e.useRef({ items: [] });
1880
+ ]), [p] = P((e) => [e.getBoardConfig]), m = e.useRef({}), h = e.useRef({ items: [] });
1927
1881
  return f(document, "keydown", (e) => {
1928
1882
  if (["INPUT", "TEXTAREA"].includes(e.target.tagName)) return;
1929
1883
  let t = l();
@@ -1953,14 +1907,15 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1953
1907
  }), e.preventDefault();
1954
1908
  }
1955
1909
  }
1956
- }), /* @__PURE__ */ a(Y, {
1910
+ }), /* @__PURE__ */ a(q, {
1911
+ fill: !0,
1957
1912
  onDragStart: (e) => {
1958
1913
  let { ctrlKey: t, metaKey: n, event: r } = e, a = i(e);
1959
1914
  if (a) {
1960
1915
  r.stopPropagation();
1961
1916
  let e = l();
1962
1917
  h.current.items = e;
1963
- let i = F(a);
1918
+ let i = N(a);
1964
1919
  e.includes(i) || (t || n ? (h.current.items = [...e, i], s([i])) : (h.current.items = [i], c([i]))), Object.assign(m.current, { moving: !0 });
1965
1920
  }
1966
1921
  },
@@ -1985,7 +1940,7 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1985
1940
  },
1986
1941
  children: t
1987
1942
  });
1988
- }, Jt = (t) => {
1943
+ }, Kt = (t) => {
1989
1944
  let n = e.useRef({
1990
1945
  hover: !1,
1991
1946
  x: 0,
@@ -1999,16 +1954,16 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
1999
1954
  }), f(t, "mouseleave", () => {
2000
1955
  n.current.hover = !1;
2001
1956
  }), e.useCallback(() => n.current, []);
2002
- }, Yt = [...[
1957
+ }, qt = [...[
2003
1958
  ,
2004
1959
  ,
2005
1960
  ,
2006
1961
  ,
2007
1962
  ,
2008
- ].keys()].map((e) => `Digit${e + 1}`), Xt = () => {
2009
- let [t, n] = e.useState({}), [r, i] = L((e) => [e.getBoardState, e.updateBoardState]);
1963
+ ].keys()].map((e) => `Digit${e + 1}`), Jt = () => {
1964
+ let [t, n] = e.useState({}), [r, i] = F((e) => [e.getBoardState, e.updateBoardState]);
2010
1965
  return f(document, "keydown", (e) => {
2011
- if (!["INPUT", "TEXTAREA"].includes(e.target.tagName) && Yt.includes(e.code)) {
1966
+ if (!["INPUT", "TEXTAREA"].includes(e.target.tagName) && qt.includes(e.code)) {
2012
1967
  let a = e.code, { translateX: o, translateY: s, scale: c } = r();
2013
1968
  e.altKey || e.metaKey || e.ctrlKey || e.shiftKey ? n((e) => ({
2014
1969
  ...e,
@@ -2020,30 +1975,24 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
2020
1975
  })) : t[a] && i(t[a]), e.preventDefault();
2021
1976
  }
2022
1977
  }), null;
2023
- }, Zt = ({ children: t, moveFirst: n = !1 }) => {
2024
- let r = e.useRef(null), [i, o, s, c, l] = L((e) => [
2025
- {
2026
- translateX: e.boardState.translateX,
2027
- translateY: e.boardState.translateY,
2028
- scale: e.boardState.scale,
2029
- rotate: e.boardState.rotate
2030
- },
1978
+ }, Yt = ({ children: t, moveFirst: n = !1 }) => {
1979
+ let r = e.useRef(null), [i, o, s, c] = F((e) => [
2031
1980
  e.config.itemExtent,
2032
1981
  e.getConfiguration,
2033
1982
  e.updateBoardState,
2034
1983
  e.getSelection
2035
- ]), { zoomToCenter: u, zoomToExtent: d, moveBoard: p } = z(), [m, h] = e.useState(!1), g = e.useRef({}), _ = Jt(r);
2036
- Xt();
2037
- let v = e.useCallback(() => {
2038
- let { itemExtent: e } = s();
2039
- d(e);
2040
- }, [s, d]);
1984
+ ]), { zoomToCenter: l, zoomToExtent: u, moveBoard: d } = L(), [p, m] = e.useState(!1), h = e.useRef({}), g = Kt(r);
1985
+ Jt();
1986
+ let _ = e.useCallback(() => {
1987
+ let { itemExtent: e } = o();
1988
+ u(e);
1989
+ }, [o, u]);
2041
1990
  return e.useEffect(() => {
2042
- !m && o.radius && (v(), h(!0));
1991
+ !p && i.radius && (_(), m(!0));
2043
1992
  }, [
2044
- v,
2045
- m,
2046
- o
1993
+ _,
1994
+ p,
1995
+ i
2047
1996
  ]), f(document, "keydown", (e) => {
2048
1997
  if (["INPUT", "TEXTAREA"].includes(e.target.tagName)) return;
2049
1998
  let t = 0, n = 0, r = 1;
@@ -2066,55 +2015,59 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
2066
2015
  case "PageDown": r = .8;
2067
2016
  }
2068
2017
  if (t || n || r !== 1) {
2069
- let i = l();
2018
+ let i = c();
2070
2019
  if (r === 1 && i.length) return;
2071
- e.shiftKey && (t *= 5, n *= 5), (e.ctrlKey || e.altKey || e.metaKey) && (t /= 5, n /= 5), p(({ translateX: e, translateY: r }) => ({
2020
+ e.shiftKey && (t *= 5, n *= 5), (e.ctrlKey || e.altKey || e.metaKey) && (t /= 5, n /= 5), d(({ translateX: e, translateY: r }) => ({
2072
2021
  translateX: e + t,
2073
2022
  translateY: r + n
2074
- })), u({ factor: r }), e.preventDefault();
2023
+ })), l({ factor: r }), e.preventDefault();
2075
2024
  }
2076
- e.key === " " && !e.repeat && _().hover && u({
2025
+ e.key === " " && !e.repeat && g().hover && l({
2077
2026
  factor: 3,
2078
- to: _()
2027
+ to: g()
2079
2028
  });
2080
2029
  }), f(document, "keyup", (e) => {
2081
- ["INPUT", "TEXTAREA"].includes(e.target.tagName) || e.key === " " && _().hover && u({
2030
+ ["INPUT", "TEXTAREA"].includes(e.target.tagName) || e.key === " " && g().hover && l({
2082
2031
  factor: 1 / 3,
2083
- to: _()
2032
+ to: g()
2084
2033
  });
2085
- }), /* @__PURE__ */ a(Y, {
2034
+ }), /* @__PURE__ */ a(q, {
2035
+ fill: !0,
2086
2036
  onPan: ({ deltaX: e, deltaY: t }) => {
2087
- p(({ translateX: n, translateY: r }) => ({
2037
+ d(({ translateX: n, translateY: r }) => ({
2088
2038
  translateX: n + e,
2089
2039
  translateY: r + t
2090
- })), clearTimeout(g.current.pan), g.current.pan = setTimeout(() => {
2091
- c({ panning: !1 });
2092
- }, 200), c({ panning: !0 });
2040
+ })), clearTimeout(h.current.pan), h.current.pan = setTimeout(() => {
2041
+ s({ panning: !1 });
2042
+ }, 200), s({ panning: !0 });
2093
2043
  },
2094
2044
  onZoom: ({ clientX: e, clientY: t, scale: n }) => {
2095
- u({
2045
+ l({
2096
2046
  to: {
2097
2047
  x: e,
2098
2048
  y: t
2099
2049
  },
2100
2050
  factor: 1 - n / 500
2101
- }), clearTimeout(g.current.zoom), g.current.zoom = setTimeout(() => {
2102
- c({ zooming: !1 });
2103
- }, 200), c({ zooming: !0 });
2051
+ }), clearTimeout(h.current.zoom), h.current.zoom = setTimeout(() => {
2052
+ s({ zooming: !1 });
2053
+ }, 200), s({ zooming: !0 });
2104
2054
  },
2105
2055
  mainAction: n ? "pan" : "drag",
2106
2056
  children: /* @__PURE__ */ a("div", {
2107
2057
  style: {
2108
- display: "inline-block",
2109
- transformOrigin: "top left",
2110
- transform: `translate(${i.translateX}px, ${i.translateY}px) rotate(${i.rotate}deg) scale(${i.scale})`
2058
+ position: "absolute",
2059
+ top: 0,
2060
+ left: 0,
2061
+ display: "block",
2062
+ width: "100%",
2063
+ height: "100%"
2111
2064
  },
2112
- className: `board-pane${i.scale < .5 ? " board-pane__far" : ""}`,
2065
+ className: "board",
2113
2066
  ref: r,
2114
2067
  children: t
2115
2068
  })
2116
2069
  });
2117
- }, Qt = K({
2070
+ }, Xt = W({
2118
2071
  position: "absolute",
2119
2072
  top: 0,
2120
2073
  left: 0,
@@ -2122,8 +2075,8 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
2122
2075
  backgroundColor: "hsla(0, 40%, 50%, 0%)",
2123
2076
  border: "2px dashed hsl(20, 55%, 40%)",
2124
2077
  pointerEvents: "none"
2125
- }), $t = () => {
2126
- let [t, n, r, i, o, { translateX: s, translateY: c, scale: l }] = L((e) => [
2078
+ }), Zt = () => {
2079
+ let [t, n, r, i, o, { translateX: s, translateY: c, scale: l }] = F((e) => [
2127
2080
  e.selection,
2128
2081
  e.getSelection,
2129
2082
  e.selectionBox,
@@ -2134,13 +2087,13 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
2134
2087
  translateY: e.boardState.translateY,
2135
2088
  scale: e.boardState.scale
2136
2089
  }
2137
- ]), [d] = I((e) => [e.items]), f = e.useCallback(() => {
2090
+ ]), [d] = P((e) => [e.items]), f = e.useCallback(() => {
2138
2091
  let e = n(), { boardWrapperRect: t, uid: r } = o();
2139
2092
  if (e.length === 0) {
2140
2093
  i(null);
2141
2094
  return;
2142
2095
  }
2143
- let a = oe(e, r);
2096
+ let a = se(e, r);
2144
2097
  if (!a) {
2145
2098
  i(null);
2146
2099
  return;
@@ -2173,24 +2126,24 @@ var gt = /* @__PURE__ */ S((/* @__PURE__ */ b(((e, t) => {
2173
2126
  height: `${r.height}px`,
2174
2127
  width: `${r.width}px`
2175
2128
  },
2176
- className: `selection ${Qt}`
2129
+ className: `selection ${Xt}`
2177
2130
  });
2178
- }, en = () => {
2179
- let [e] = L((e) => [e.boardState.movingItems]);
2180
- return e ? null : /* @__PURE__ */ a($t, {});
2131
+ }, Qt = () => {
2132
+ let [e] = F((e) => [e.boardState.movingItems]);
2133
+ return e ? null : /* @__PURE__ */ a(Zt, {});
2181
2134
  };
2182
2135
  //#endregion
2183
2136
  //#region node_modules/color2k/dist/index.exports.import.es.mjs
2184
- function tn(e, t, n) {
2137
+ function $t(e, t, n) {
2185
2138
  return Math.min(Math.max(e, n), t);
2186
2139
  }
2187
- var Q = class extends Error {
2140
+ var Z = class extends Error {
2188
2141
  constructor(e) {
2189
2142
  super(`Failed to parse color: "${e}"`);
2190
2143
  }
2191
2144
  };
2192
- function nn(e) {
2193
- if (typeof e != "string") throw new Q(e);
2145
+ function en(e) {
2146
+ if (typeof e != "string") throw new Z(e);
2194
2147
  if (e.trim().toLowerCase() === "transparent") return [
2195
2148
  0,
2196
2149
  0,
@@ -2198,52 +2151,52 @@ function nn(e) {
2198
2151
  0
2199
2152
  ];
2200
2153
  let t = e.trim();
2201
- t = fn.test(e) ? sn(e) : e;
2202
- let n = cn.exec(t);
2154
+ t = un.test(e) ? an(e) : e;
2155
+ let n = on.exec(t);
2203
2156
  if (n) {
2204
2157
  let e = Array.from(n).slice(1);
2205
- return [...e.slice(0, 3).map((e) => parseInt($(e, 2), 16)), parseInt($(e[3] || "f", 2), 16) / 255];
2158
+ return [...e.slice(0, 3).map((e) => parseInt(Q(e, 2), 16)), parseInt(Q(e[3] || "f", 2), 16) / 255];
2206
2159
  }
2207
- let r = ln.exec(t);
2160
+ let r = sn.exec(t);
2208
2161
  if (r) {
2209
2162
  let e = Array.from(r).slice(1);
2210
2163
  return [...e.slice(0, 3).map((e) => parseInt(e, 16)), parseInt(e[3] || "ff", 16) / 255];
2211
2164
  }
2212
- let i = un.exec(t);
2165
+ let i = cn.exec(t);
2213
2166
  if (i) {
2214
2167
  let e = Array.from(i).slice(1);
2215
2168
  return [...e.slice(0, 3).map((e) => parseInt(e, 10)), parseFloat(e[3] || "1")];
2216
2169
  }
2217
- let a = dn.exec(t);
2170
+ let a = ln.exec(t);
2218
2171
  if (a) {
2219
2172
  let [t, n, r, i] = Array.from(a).slice(1).map(parseFloat);
2220
- if (tn(0, 100, n) !== n || tn(0, 100, r) !== r) throw new Q(e);
2221
- return [...mn(t, n, r), Number.isNaN(i) ? 1 : i];
2173
+ if ($t(0, 100, n) !== n || $t(0, 100, r) !== r) throw new Z(e);
2174
+ return [...fn(t, n, r), Number.isNaN(i) ? 1 : i];
2222
2175
  }
2223
- throw new Q(e);
2176
+ throw new Z(e);
2224
2177
  }
2225
- function rn(e) {
2178
+ function tn(e) {
2226
2179
  let t = 5381, n = e.length;
2227
2180
  for (; n;) t = t * 33 ^ e.charCodeAt(--n);
2228
2181
  return (t >>> 0) % 2341;
2229
2182
  }
2230
- 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) => {
2231
- let n = an(t.substring(0, 3)), r = an(t.substring(3)).toString(16), i = "";
2183
+ var nn = (e) => parseInt(e.replace(/_/g, ""), 36), rn = "1q29ehhb 1n09sgk7 1kl1ekf_ _yl4zsno 16z9eiv3 1p29lhp8 _bd9zg04 17u0____ _iw9zhe5 _to73___ _r45e31e _7l6g016 _jh8ouiv _zn3qba8 1jy4zshs 11u87k0u 1ro9yvyo 1aj3xael 1gz9zjz0 _3w8l4xo 1bf1ekf_ _ke3v___ _4rrkb__ 13j776yz _646mbhl _nrjr4__ _le6mbhl 1n37ehkb _m75f91n _qj3bzfz 1939yygw 11i5z6x8 _1k5f8xs 1509441m 15t5lwgf _ae2th1n _tg1ugcv 1lp1ugcv 16e14up_ _h55rw7n _ny9yavn _7a11xb_ 1ih442g9 _pv442g9 1mv16xof 14e6y7tu 1oo9zkds 17d1cisi _4v9y70f _y98m8kc 1019pq0v 12o9zda8 _348j4f4 1et50i2o _8epa8__ _ts6senj 1o350i2o 1mi9eiuo 1259yrp0 1ln80gnw _632xcoy 1cn9zldc _f29edu4 1n490c8q _9f9ziet 1b94vk74 _m49zkct 1kz6s73a 1eu9dtog _q58s1rz 1dy9sjiq __u89jo3 _aj5nkwg _ld89jo3 13h9z6wx _qa9z2ii _l119xgq _bs5arju 1hj4nwk9 1qt4nwk9 1ge6wau6 14j9zlcw 11p1edc_ _ms1zcxe _439shk6 _jt9y70f _754zsow 1la40eju _oq5p___ _x279qkz 1fa5r3rv _yd2d9ip _424tcku _8y1di2_ _zi2uabw _yy7rn9h 12yz980_ __39ljp6 1b59zg0x _n39zfzp 1fy9zest _b33k___ _hp9wq92 1il50hz4 _io472ub _lj9z3eo 19z9ykg0 _8t8iu3a 12b9bl4a 1ak5yw0o _896v4ku _tb8k8lv _s59zi6t _c09ze0p 1lg80oqn 1id9z8wb _238nba5 1kq6wgdi _154zssg _tn3zk49 _da9y6tc 1sg7cv4f _r12jvtt 1gq5fmkz 1cs9rvci _lp9jn1c _xw1tdnb 13f9zje6 16f6973h _vo7ir40 _bt5arjf _rc45e4t _hr4e100 10v4e100 _hc9zke2 _w91egv_ _sj2r1kk 13c87yx8 _vqpds__ _ni8ggk8 _tj9yqfb 1ia2j4r4 _7x9b10u 1fc9ld4j 1eq9zldr _5j9lhpx _ez9zl6o _md61fzm".split(" ").reduce((e, t) => {
2184
+ let n = nn(t.substring(0, 3)), r = nn(t.substring(3)).toString(16), i = "";
2232
2185
  for (let e = 0; e < 6 - r.length; e++) i += "0";
2233
2186
  return e[n] = `${i}${r}`, e;
2234
2187
  }, {});
2235
- function sn(e) {
2236
- let t = on[rn(e.toLowerCase().trim())];
2237
- if (!t) throw new Q(e);
2188
+ function an(e) {
2189
+ let t = rn[tn(e.toLowerCase().trim())];
2190
+ if (!t) throw new Z(e);
2238
2191
  return `#${t}`;
2239
2192
  }
2240
- var $ = (e, t) => Array.from(Array(t)).map(() => e).join(""), cn = RegExp(`^#${$("([a-f0-9])", 3)}([a-f0-9])?$`, "i"), ln = RegExp(`^#${$("([a-f0-9]{2})", 3)}([a-f0-9]{2})?$`, "i"), un = RegExp(`^rgba?\\(\\s*(\\d+)\\s*${$(",\\s*(\\d+)\\s*", 2)}(?:,\\s*([\\d.]+))?\\s*\\)$`, "i"), dn = /^hsla?\(\s*([\d.]+)\s*,\s*([\d.]+)%\s*,\s*([\d.]+)%(?:\s*,\s*([\d.]+))?\s*\)$/i, fn = /^[a-z]+$/i, pn = (e) => Math.round(e * 255), mn = (e, t, n) => {
2193
+ var Q = (e, t) => Array.from(Array(t)).map(() => e).join(""), on = RegExp(`^#${Q("([a-f0-9])", 3)}([a-f0-9])?$`, "i"), sn = RegExp(`^#${Q("([a-f0-9]{2})", 3)}([a-f0-9]{2})?$`, "i"), cn = RegExp(`^rgba?\\(\\s*(\\d+)\\s*${Q(",\\s*(\\d+)\\s*", 2)}(?:,\\s*([\\d.]+))?\\s*\\)$`, "i"), ln = /^hsla?\(\s*([\d.]+)\s*,\s*([\d.]+)%\s*,\s*([\d.]+)%(?:\s*,\s*([\d.]+))?\s*\)$/i, un = /^[a-z]+$/i, dn = (e) => Math.round(e * 255), fn = (e, t, n) => {
2241
2194
  let r = n / 100;
2242
2195
  if (t === 0) return [
2243
2196
  r,
2244
2197
  r,
2245
2198
  r
2246
- ].map(pn);
2199
+ ].map(dn);
2247
2200
  let i = (e % 360 + 360) % 360 / 60, a = (1 - Math.abs(2 * r - 1)) * (t / 100), o = a * (1 - Math.abs(i % 2 - 1)), s = 0, c = 0, l = 0;
2248
2201
  i >= 0 && i < 1 ? (s = a, c = o) : i >= 1 && i < 2 ? (s = o, c = a) : i >= 2 && i < 3 ? (c = a, l = o) : i >= 3 && i < 4 ? (c = o, l = a) : i >= 4 && i < 5 ? (s = o, l = a) : i >= 5 && i < 6 && (s = a, l = o);
2249
2202
  let u = r - a / 2;
@@ -2251,29 +2204,29 @@ var $ = (e, t) => Array.from(Array(t)).map(() => e).join(""), cn = RegExp(`^#${$
2251
2204
  s + u,
2252
2205
  c + u,
2253
2206
  l + u
2254
- ].map(pn);
2207
+ ].map(dn);
2255
2208
  };
2256
- function hn(e) {
2209
+ function pn(e) {
2257
2210
  if (e === "transparent") return 0;
2258
2211
  function t(e) {
2259
2212
  let t = e / 255;
2260
2213
  return t <= .04045 ? t / 12.92 : ((t + .055) / 1.055) ** 2.4;
2261
2214
  }
2262
- let [n, r, i] = nn(e);
2215
+ let [n, r, i] = en(e);
2263
2216
  return .2126 * t(n) + .7152 * t(r) + .0722 * t(i);
2264
2217
  }
2265
- function gn(e) {
2266
- return hn(e) > .179;
2218
+ function mn(e) {
2219
+ return pn(e) > .179;
2267
2220
  }
2268
2221
  //#endregion
2269
2222
  //#region src/lib/board/Cursors/Cursor.jsx
2270
- var _n = K({
2223
+ var hn = W({
2271
2224
  display: "flex",
2272
2225
  flexDirection: "row",
2273
2226
  alignItems: "center",
2274
2227
  zIndex: 210,
2275
2228
  pointerEvents: "none"
2276
- }), vn = K({
2229
+ }), gn = W({
2277
2230
  fontWeight: "bold",
2278
2231
  padding: "0 0.5em",
2279
2232
  borderRadius: "2px",
@@ -2284,10 +2237,10 @@ var _n = K({
2284
2237
  marginTop: "1.7em",
2285
2238
  whitespace: "nowrap",
2286
2239
  pointerEvents: "none"
2287
- }), yn = e.memo(({ color: e = "#666", size: t = 40, text: n }) => {
2288
- let r = gn(e) ? "#222" : "#EEE";
2240
+ }), _n = e.memo(({ color: e = "#666", size: t = 40, text: n }) => {
2241
+ let r = mn(e) ? "#222" : "#EEE";
2289
2242
  return /* @__PURE__ */ o("div", {
2290
- className: _n,
2243
+ className: hn,
2291
2244
  children: [/* @__PURE__ */ o("svg", {
2292
2245
  version: "1.1",
2293
2246
  xmlns: "http://www.w3.org/2000/svg",
@@ -2310,27 +2263,27 @@ var _n = K({
2310
2263
  color: r,
2311
2264
  backgroundColor: e
2312
2265
  },
2313
- className: vn,
2266
+ className: gn,
2314
2267
  children: n
2315
2268
  })]
2316
2269
  });
2317
- }), bn = K({
2270
+ }), vn = W({
2318
2271
  top: 0,
2319
2272
  left: 0,
2320
2273
  zIndex: 210,
2321
2274
  position: "fixed",
2322
2275
  pointerEvents: "none"
2323
- }), xn = ({ pos: e, ...t }) => /* @__PURE__ */ a("div", {
2324
- className: bn,
2276
+ }), yn = ({ pos: e, ...t }) => /* @__PURE__ */ a("div", {
2277
+ className: vn,
2325
2278
  style: { transform: `translate(${e.x - 6}px, ${e.y - 15}px)` },
2326
- children: /* @__PURE__ */ a(yn, { ...t })
2327
- }), Sn = ({ children: e }) => {
2328
- let [t] = L((e) => [e.getConfiguration, e.boardState.scale]), { fromWrapperToBoard: n, fromBoardToWrapper: r } = z(), [i, s, c, l] = U((e) => [
2279
+ children: /* @__PURE__ */ a(_n, { ...t })
2280
+ }), bn = ({ children: e }) => {
2281
+ let [t] = F((e) => [e.getConfiguration, e.boardState.scale]), { fromWrapperToBoard: n, fromBoardToWrapper: r } = L(), [i, s, c, l] = V((e) => [
2329
2282
  e.getUser(),
2330
2283
  e.getLocalUsers(),
2331
2284
  e.cursors,
2332
2285
  e.users
2333
- ]), [u, d] = U((e) => [e.moveCursor, e.removeCursor]), { boardWrapperRect: f } = t(), p = ({ clientX: e, clientY: t }) => {
2286
+ ]), [u, d] = V((e) => [e.moveCursor, e.removeCursor]), { boardWrapperRect: f } = t(), p = ({ clientX: e, clientY: t }) => {
2334
2287
  let [r, a] = n(e - f.left, t - f.top);
2335
2288
  u(i.id, {
2336
2289
  x: r,
@@ -2347,83 +2300,268 @@ var _n = K({
2347
2300
  x: n + f.left,
2348
2301
  y: i + f.top
2349
2302
  };
2350
- return N(o, f) ? /* @__PURE__ */ a(xn, {
2303
+ return j(o, f) ? /* @__PURE__ */ a(yn, {
2351
2304
  pos: o,
2352
2305
  text: l[e].name,
2353
2306
  color: l[e].color
2354
2307
  }, e) : null;
2355
2308
  })]
2356
2309
  });
2357
- }, Cn = ({ children: e }) => e, wn = {
2310
+ }, xn = /[+-]?(?:\d*\.)?\d+(?:e[+-]?\d+)?(?:px|%)/gi;
2311
+ function Sn(e, t = ",") {
2312
+ let n = 0, r = "", i = 0, a = [];
2313
+ for (let [o, s] of e.split("").entries()) if (r) s === r && e[o - 1] !== "\\" && (r = "");
2314
+ else if (s === "\"" || s === "'") r = s;
2315
+ else if (s === "(") n++;
2316
+ else if (s === ")") n--;
2317
+ else if (n === 0 && s === t) {
2318
+ let t = e.slice(i, o).trim();
2319
+ t && a.push(t), i = o + 1;
2320
+ }
2321
+ let o = e.slice(i).trim();
2322
+ return o && a.push(o), a;
2323
+ }
2324
+ function $(e, t) {
2325
+ return [...e.replace(/\s/g, "").matchAll(xn)].reduce((e, [n]) => e + Number.parseFloat(n) * (n.endsWith("%") ? t / 100 : 1), 0);
2326
+ }
2327
+ function Cn(e, t, n, r) {
2328
+ let [i, a = "auto"] = Sn(e, " "), o = r?.width, s = r?.height;
2329
+ if (i === "cover" || i === "contain") {
2330
+ if (!o || !s) return [t, n];
2331
+ let e = Math[i === "cover" ? "max" : "min"](t / o, n / s);
2332
+ return [o * e, s * e];
2333
+ }
2334
+ let c = i === "auto" ? null : $(i, t), l = a === "auto" ? null : $(a, n);
2335
+ return c === null && l === null ? [o || t, s || n] : (c === null && (c = o && s ? l * o / s : t), l === null && (l = o && s ? c * s / o : n), [c, l]);
2336
+ }
2337
+ function wn(e, t, n) {
2338
+ let r = [
2339
+ [0, 0],
2340
+ [e, 0],
2341
+ [0, t],
2342
+ [e, t]
2343
+ ].map((e) => k(e, n)), i = r.map(([e]) => e), a = r.map(([, e]) => e), o = Math.floor(Math.min(...i)) - 2, s = Math.floor(Math.min(...a)) - 2, c = Math.ceil(Math.max(...i)) + 2, l = Math.ceil(Math.max(...a)) + 2, [u, d] = A([o, s], n);
2344
+ return {
2345
+ left: o,
2346
+ top: s,
2347
+ width: c - o,
2348
+ height: l - s,
2349
+ x: u,
2350
+ y: d
2351
+ };
2352
+ }
2353
+ var Tn = (e, t, n) => ((e - t) % n + n) % n;
2354
+ function En(e, t, n, r) {
2355
+ let i = wn(e, t, n), a = Number.isFinite(r) && r > 0 ? r : 512 * 2 ** Math.max(0, Math.ceil(Math.log2(1 / n.scale))), o = Math.floor(i.left / a) - 1, s = Math.floor((i.left + i.width) / a) + 1, c = Math.floor(i.top / a) - 1, l = Math.floor((i.top + i.height) / a) + 1, u = o * a, d = c * a, [f, p] = A([u, d], n);
2356
+ return {
2357
+ tiles: Array.from({ length: l - c + 1 }, (e, t) => {
2358
+ let n = c + t;
2359
+ return Array.from({ length: s - o + 1 }, (e, t) => {
2360
+ let r = o + t;
2361
+ return {
2362
+ key: `${a}:${r}:${n}`,
2363
+ left: r * a,
2364
+ top: n * a
2365
+ };
2366
+ });
2367
+ }).flat(),
2368
+ size: a,
2369
+ left: u,
2370
+ top: d,
2371
+ x: f,
2372
+ y: p
2373
+ };
2374
+ }
2375
+ //#endregion
2376
+ //#region src/lib/board/WorldBackground.jsx
2377
+ var Dn = {
2378
+ position: "absolute",
2379
+ inset: 0,
2380
+ pointerEvents: "none"
2381
+ };
2382
+ function On({ style: t, tileSizeOverride: n }) {
2383
+ let [r, i] = F((e) => [e.boardState, e.config.boardWrapperRect]), s = i.width || 1, c = i.height || 1, l = e.useRef(null), [u, d] = e.useState({
2384
+ color: "#333",
2385
+ layers: []
2386
+ }), [f, p] = e.useState({});
2387
+ e.useLayoutEffect(() => {
2388
+ let e = getComputedStyle(l.current), t = (t) => Sn(e[t]), n = t("backgroundSize"), r = t("backgroundPositionX"), i = t("backgroundPositionY"), a = t("backgroundRepeat"), o = t("backgroundBlendMode");
2389
+ d({
2390
+ color: e.backgroundColor,
2391
+ layers: t("backgroundImage").map((e, t) => ({
2392
+ image: e,
2393
+ size: n[t % n.length],
2394
+ x: r[t % r.length],
2395
+ y: i[t % i.length],
2396
+ repeat: a[t % a.length],
2397
+ blend: o[t % o.length]
2398
+ }))
2399
+ });
2400
+ }, [
2401
+ t,
2402
+ s,
2403
+ c
2404
+ ]), e.useEffect(() => {
2405
+ let e = !0;
2406
+ return u.layers.forEach(({ image: t }) => {
2407
+ if (!t.startsWith("url(")) return;
2408
+ let n = new Image();
2409
+ n.onload = () => {
2410
+ e && p((e) => ({
2411
+ ...e,
2412
+ [t]: {
2413
+ width: n.naturalWidth,
2414
+ height: n.naturalHeight
2415
+ }
2416
+ }));
2417
+ }, n.src = t.slice(4, -1).replace(/^["']|["']$/g, "");
2418
+ }), () => {
2419
+ e = !1;
2420
+ };
2421
+ }, [u.layers]);
2422
+ let m = En(s, c, r, n), h = u.layers.map((e) => {
2423
+ let [t, n] = Cn(e.size, s, c, f[e.image]), r = ["repeat", "repeat-x"].includes(e.repeat) || e.repeat.startsWith("repeat "), i = ["repeat", "repeat-y"].includes(e.repeat) || e.repeat.endsWith(" repeat"), a = $(e.x, s - t), o = $(e.y, c - n);
2424
+ return {
2425
+ ...e,
2426
+ size: `${t}px ${n}px`,
2427
+ position: (e, s) => `${r && t ? Tn(a, e, t) : a - e}px ${i && n ? Tn(o, s, n) : o - s}px`
2428
+ };
2429
+ });
2430
+ return /* @__PURE__ */ o("div", {
2431
+ className: "world-background",
2432
+ "aria-hidden": "true",
2433
+ style: {
2434
+ ...Dn,
2435
+ overflow: "hidden",
2436
+ backgroundColor: u.color
2437
+ },
2438
+ children: [/* @__PURE__ */ a("div", {
2439
+ ref: l,
2440
+ style: {
2441
+ backgroundColor: "#333",
2442
+ ...t,
2443
+ position: "absolute",
2444
+ width: s,
2445
+ height: c,
2446
+ visibility: "hidden",
2447
+ pointerEvents: "none"
2448
+ }
2449
+ }), /* @__PURE__ */ a("div", {
2450
+ className: "world-background-tiles",
2451
+ style: {
2452
+ position: "absolute",
2453
+ transformOrigin: "0 0",
2454
+ transform: `translate(${m.x}px, ${m.y}px) rotate(${r.rotate}deg) scale(${r.scale})`
2455
+ },
2456
+ children: m.tiles.map((e) => /* @__PURE__ */ a("div", {
2457
+ className: "world-background-tile",
2458
+ "data-tile": e.key,
2459
+ style: {
2460
+ position: "absolute",
2461
+ left: e.left - m.left,
2462
+ top: e.top - m.top,
2463
+ width: m.size,
2464
+ height: m.size,
2465
+ backgroundImage: h.map((e) => e.image).join(", "),
2466
+ backgroundSize: h.map((e) => e.size).join(", "),
2467
+ backgroundPosition: h.map((t) => t.position(e.left, e.top)).join(", "),
2468
+ backgroundRepeat: h.map((e) => e.repeat).join(", "),
2469
+ backgroundBlendMode: h.map((e) => e.blend).join(", ")
2470
+ }
2471
+ }, e.key))
2472
+ })]
2473
+ });
2474
+ }
2475
+ //#endregion
2476
+ //#region src/lib/board/Board.jsx
2477
+ var kn = ({ children: e }) => e, An = {}, jn = {
2358
2478
  overflow: "hidden",
2359
2479
  position: "absolute",
2360
2480
  inset: 0
2361
- }, Tn = ({ moveFirst: t = !0, style: n, wrapperStyle: r, itemTemplates: i = {}, boardSize: s = Se, children: c, showResizeHandle: l = !1, Wrapper: u = Cn }) => {
2362
- let d = e.useRef(null), [f, m] = L((e) => [e.config.uid, e.updateConfiguration]), { updateItemExtent: h } = z(), g = {
2481
+ }, Mn = ({ moveFirst: t = !0, style: n, wrapperStyle: r, itemTemplates: i = An, boardSize: s = Ce, backgroundTileSize: c, children: l, showResizeHandle: u = !1, Wrapper: d = kn }) => {
2482
+ let f = e.useRef(null), [m, h] = F((e) => [e.config.uid, e.updateConfiguration]), [g, _, v, y] = F((e) => [
2483
+ e.boardState.translateX,
2484
+ e.boardState.translateY,
2485
+ e.boardState.scale,
2486
+ e.boardState.rotate
2487
+ ]), { updateItemExtent: b } = L(), x = {
2363
2488
  userSelect: "none",
2364
- width: `${s}px`,
2365
- height: `${s}px`,
2366
- backgroundColor: "#333",
2367
- ...n
2489
+ position: "absolute",
2490
+ inset: 0,
2491
+ width: "100%",
2492
+ height: "100%",
2493
+ transformOrigin: "0 0",
2494
+ transform: `translate(${g}px, ${_}px) rotate(${y}deg) scale(${v})`,
2495
+ pointerEvents: "none"
2368
2496
  };
2369
2497
  e.useEffect(() => {
2370
2498
  let e = (e) => {
2371
- A(e.target, "board") && e.preventDefault();
2499
+ f.current?.contains(e.target) && e.preventDefault();
2372
2500
  };
2373
2501
  return document.body.addEventListener("wheel", e, { passive: !1 }), () => {
2374
2502
  document.body.removeEventListener("wheel", e);
2375
2503
  };
2376
2504
  }, []), e.useEffect(() => {
2377
- m({ boardWrapper: d.current });
2378
- }, [m]), e.useEffect(() => {
2379
- f || m({ uid: H() });
2380
- }, [f, m]), e.useEffect(() => {
2381
- m({
2505
+ h({ boardWrapper: f.current });
2506
+ }, [h]), e.useEffect(() => {
2507
+ m || h({ uid: B() });
2508
+ }, [m, h]), e.useEffect(() => {
2509
+ h({
2382
2510
  itemTemplates: i,
2383
2511
  boardSize: s,
2384
- showResizeHandle: l
2512
+ showResizeHandle: u
2385
2513
  });
2386
2514
  }, [
2387
2515
  i,
2388
2516
  s,
2389
- l,
2390
- m
2517
+ u,
2518
+ h
2391
2519
  ]), e.useEffect(() => {
2392
- m({ boardWrapperRect: d.current.getBoundingClientRect() }), h(), setTimeout(h, 2e3);
2393
- }, [m, h]), p(d, () => {
2394
- d.current && m({ boardWrapperRect: d.current.getBoundingClientRect() });
2520
+ h({ boardWrapperRect: f.current.getBoundingClientRect() }), b(), setTimeout(b, 2e3);
2521
+ }, [h, b]), p(f, () => {
2522
+ f.current && h({ boardWrapperRect: f.current.getBoundingClientRect() });
2395
2523
  });
2396
- let _ = K({
2397
- ...wn,
2524
+ let S = W({
2525
+ ...jn,
2398
2526
  ...r
2399
2527
  });
2400
2528
  return /* @__PURE__ */ o("div", {
2401
- ref: d,
2402
- id: f,
2403
- className: `sync-board ${_}`,
2404
- children: [/* @__PURE__ */ a(Sn, { children: /* @__PURE__ */ a(Kt, {
2405
- moveFirst: t,
2406
- children: /* @__PURE__ */ a(Zt, {
2529
+ ref: f,
2530
+ id: m,
2531
+ className: `sync-board ${S}`,
2532
+ children: [
2533
+ /* @__PURE__ */ a(On, {
2534
+ style: n,
2535
+ tileSizeOverride: c
2536
+ }),
2537
+ /* @__PURE__ */ a(bn, { children: /* @__PURE__ */ a(Wt, {
2407
2538
  moveFirst: t,
2408
- children: /* @__PURE__ */ a(qt, {
2539
+ children: /* @__PURE__ */ a(Yt, {
2409
2540
  moveFirst: t,
2410
- children: /* @__PURE__ */ a(u, { children: /* @__PURE__ */ o("div", {
2411
- onContextMenu: (e) => {
2412
- e.preventDefault();
2413
- },
2414
- style: g,
2415
- className: "board",
2416
- children: [/* @__PURE__ */ a(Ut, {}), c]
2417
- }) })
2541
+ children: /* @__PURE__ */ a(Gt, {
2542
+ moveFirst: t,
2543
+ children: /* @__PURE__ */ a(d, { children: /* @__PURE__ */ o("div", {
2544
+ onContextMenu: (e) => {
2545
+ e.preventDefault();
2546
+ },
2547
+ style: x,
2548
+ className: `board-pane${v < .5 ? " board-pane__far" : ""}`,
2549
+ children: [/* @__PURE__ */ a(Vt, {}), /* @__PURE__ */ a("div", {
2550
+ style: { pointerEvents: "auto" },
2551
+ children: l
2552
+ })]
2553
+ }) })
2554
+ })
2418
2555
  })
2419
- })
2420
- }) }), /* @__PURE__ */ a(en, {})]
2556
+ }) }),
2557
+ /* @__PURE__ */ a(Qt, {})
2558
+ ]
2421
2559
  });
2422
2560
  };
2423
2561
  //#endregion
2424
2562
  //#region src/lib/index.js
2425
- ht(e.createElement);
2563
+ mt(e.createElement);
2426
2564
  //#endregion
2427
- export { Tn as Board, at as BoardWrapper, ot as RoomWrapper, Re as useAvailableActions, Je as useBoardConfig, z as useBoardPosition, Ye as useBoardState, xe as useDebouncedItems, Ae as useGetSelectedItems, V as useItemActions, B as useItemInteraction, be as useItems, rt as useMessage, ke as useSelectedItems, ze as useSelectionBox, Xe as useSessionInfo, qe as useUsers, O as useWire };
2565
+ export { Mn as Board, it as BoardWrapper, at as RoomWrapper, Le as useAvailableActions, qe as useBoardConfig, L as useBoardPosition, Je as useBoardState, Se as useDebouncedItems, je as useGetSelectedItems, z as useItemActions, R as useItemInteraction, xe as useItems, nt as useMessage, Ae as useSelectedItems, Re as useSelectionBox, Ye as useSessionInfo, Ke as useUsers, D as useWire };
2428
2566
 
2429
2567
  //# sourceMappingURL=react-sync-board.js.map