microboard-ui-temp 0.4.0 → 0.5.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.
@@ -237738,7 +237738,7 @@ function fillHighlight(ctx, textBlock) {
237738
237738
  return;
237739
237739
  }
237740
237740
  const measure = textBlock.measure;
237741
- ctx.fillStyle = textBlock.style.backgroundColor;
237741
+ ctx.fillStyle = resolveColor(textBlock.style.backgroundColor, conf.theme, "background");
237742
237742
  ctx.fillRect(textBlock.x, textBlock.y - measure.ascent, measure.width, measure.height);
237743
237743
  }
237744
237744
  function underline(ctx, textBlock) {
@@ -237750,14 +237750,13 @@ function underline(ctx, textBlock) {
237750
237750
  const style = textBlock.style;
237751
237751
  const measure = textBlock.measure;
237752
237752
  const width = measure.width - (textBlock.marginLeft || 0);
237753
- const color = style.color;
237754
- ctx.strokeStyle = color;
237753
+ ctx.strokeStyle = resolveColor(style.color, conf.theme, "foreground");
237755
237754
  ctx.lineWidth = textBlock.fontSize / 14;
237756
237755
  ctx.beginPath();
237757
237756
  ctx.moveTo(x, y + 2 * textBlock.fontSize / 14);
237758
237757
  ctx.lineTo(x + width, y + 2 * textBlock.fontSize / 14);
237759
237758
  ctx.stroke();
237760
- ctx.strokeStyle = style.backgroundColor ?? "black";
237759
+ ctx.strokeStyle = style.backgroundColor ? resolveColor(style.backgroundColor, conf.theme, "background") : "black";
237761
237760
  ctx.lineWidth = 2;
237762
237761
  }
237763
237762
  function cross(ctx, textBlock) {
@@ -237770,19 +237769,18 @@ function cross(ctx, textBlock) {
237770
237769
  const measure = textBlock.measure;
237771
237770
  const width = measure.width;
237772
237771
  const height = measure.height;
237773
- const color = style.color;
237774
- ctx.strokeStyle = color;
237772
+ ctx.strokeStyle = resolveColor(style.color, conf.theme, "foreground");
237775
237773
  ctx.lineWidth = textBlock.fontSize / 14;
237776
237774
  ctx.beginPath();
237777
237775
  ctx.moveTo(x, y - height / 4);
237778
237776
  ctx.lineTo(x + width, y - height / 4);
237779
237777
  ctx.stroke();
237780
- ctx.strokeStyle = style.backgroundColor ?? "black";
237778
+ ctx.strokeStyle = style.backgroundColor ? resolveColor(style.backgroundColor, conf.theme, "background") : "black";
237781
237779
  ctx.lineWidth = 2;
237782
237780
  }
237783
237781
  function fillText(ctx, textBlock) {
237784
237782
  const { text, style, x, y } = textBlock;
237785
- ctx.fillStyle = style.color;
237783
+ ctx.fillStyle = resolveColor(style.color, conf.theme, "foreground");
237786
237784
  ctx.fillText(text, x, y);
237787
237785
  if (textBlock.listMark) {
237788
237786
  ctx.fillText(textBlock.listMark, x - measureText(textBlock.listMark, style).width - 4, y);
@@ -244857,7 +244855,7 @@ function setSelectionFontHighlight(editor, format, selectionContext) {
244857
244855
  }
244858
244856
  if (format === "none") {
244859
244857
  Editor.removeMark(editor, "fontHighlight");
244860
- } else if (marks3.fontHighlight === format) {
244858
+ } else if (typeof format === "string" && marks3.fontHighlight === format) {
244861
244859
  Editor.removeMark(editor, "fontHighlight");
244862
244860
  } else {
244863
244861
  Editor.addMark(editor, "fontHighlight", format);
@@ -250530,8 +250528,8 @@ class RichText extends BaseItem {
250530
250528
  node22.underline ? "underline" : "",
250531
250529
  node22["line-through"] ? "line-through" : ""
250532
250530
  ].filter(Boolean).join(" "),
250533
- color: node22.fontColor || conf.DEFAULT_TEXT_STYLES.fontColor,
250534
- backgroundColor: node22.fontHighlight || conf.DEFAULT_TEXT_STYLES.fontHighlight,
250531
+ color: node22.fontColor ? resolveColor(node22.fontColor, conf.theme, "foreground") : conf.DEFAULT_TEXT_STYLES.fontColor,
250532
+ backgroundColor: node22.fontHighlight ? resolveColor(node22.fontHighlight, conf.theme, "background") : conf.DEFAULT_TEXT_STYLES.fontHighlight,
250535
250533
  fontSize: node22.fontSize ? `${node22.fontSize}px` : `${conf.DEFAULT_TEXT_STYLES.fontSize}px`,
250536
250534
  fontFamily: node22.fontFamily || conf.DEFAULT_TEXT_STYLES.fontFamily
250537
250535
  });
@@ -265388,6 +265386,12 @@ class Connector2 extends BaseItem {
265388
265386
  mbr.strokeWidth = 3;
265389
265387
  mbr.borderStyle = "solid";
265390
265388
  this.clipText(context);
265389
+ const resolvedLineColor = resolveColor(this.lineColor, conf.theme, "foreground");
265390
+ this.lines.setBorderColor(resolvedLineColor);
265391
+ this.startPointer.path.setBorderColor(resolvedLineColor);
265392
+ this.startPointer.path.setBackgroundColor(resolvedLineColor);
265393
+ this.endPointer.path.setBorderColor(resolvedLineColor);
265394
+ this.endPointer.path.setBackgroundColor(resolvedLineColor);
265391
265395
  if (!this.text.isRenderEnabled && this.board.selection.getContext() !== "EditTextUnderPointer") {
265392
265396
  this.lines.render(context);
265393
265397
  }
@@ -265669,17 +265673,11 @@ class Connector2 extends BaseItem {
265669
265673
  const endPoint = this.endPoint;
265670
265674
  this.lines = getLine(this.lineStyle, startPoint, endPoint, this.middlePoint).addConnectedItemType(this.itemType);
265671
265675
  this.startPointer = getStartPointer(startPoint, this.startPointerStyle, this.lineStyle, this.lines, this.lineWidth * 0.1 + 0.2);
265672
- const resolvedLineColor = resolveColor(this.lineColor, conf.theme, "foreground");
265673
- this.startPointer.path.setBorderColor(resolvedLineColor);
265674
265676
  this.startPointer.path.setBorderWidth(this.lineWidth);
265675
- this.startPointer.path.setBackgroundColor(resolvedLineColor);
265676
265677
  this.endPointer = getEndPointer(endPoint, this.endPointerStyle, this.lineStyle, this.lines, this.lineWidth * 0.1 + 0.2);
265677
- this.endPointer.path.setBorderColor(resolvedLineColor);
265678
265678
  this.endPointer.path.setBorderWidth(this.lineWidth);
265679
- this.endPointer.path.setBackgroundColor(resolvedLineColor);
265680
265679
  this.offsetLines();
265681
265680
  this.lines.setBorderWidth(this.lineWidth);
265682
- this.lines.setBorderColor(resolvedLineColor);
265683
265681
  this.lines.setBorderStyle(this.borderStyle);
265684
265682
  this.updateTitle();
265685
265683
  }
@@ -267366,7 +267364,6 @@ class Shape extends BaseItem {
267366
267364
  }
267367
267365
  applyBackgroundColor(backgroundColor) {
267368
267366
  this.backgroundColor = backgroundColor;
267369
- this.path.setBackgroundColor(resolveColor(backgroundColor, conf.theme, "background"));
267370
267367
  }
267371
267368
  setBackgroundColor(backgroundColor) {
267372
267369
  this.emit({
@@ -267402,7 +267399,6 @@ class Shape extends BaseItem {
267402
267399
  }
267403
267400
  applyBorderColor(borderColor) {
267404
267401
  this.borderColor = borderColor;
267405
- this.path.setBorderColor(resolveColor(borderColor, conf.theme, "foreground"));
267406
267402
  }
267407
267403
  setBorderColor(borderColor) {
267408
267404
  this.emit({
@@ -267510,6 +267506,8 @@ class Shape extends BaseItem {
267510
267506
  if (this.transformationRenderBlock) {
267511
267507
  return;
267512
267508
  }
267509
+ this.path.setBackgroundColor(resolveColor(this.backgroundColor, conf.theme, "background"));
267510
+ this.path.setBorderColor(resolveColor(this.borderColor, conf.theme, "foreground"));
267513
267511
  this.path.render(context);
267514
267512
  this.text.render(context);
267515
267513
  if (this.getLinkTo()) {
@@ -267610,9 +267608,7 @@ class Shape extends BaseItem {
267610
267608
  this.text.setContainer(this.textContainer.copy());
267611
267609
  this.textContainer.transform(this.transformation.toMatrix());
267612
267610
  this.path.transform(this.transformation.toMatrix());
267613
- this.path.setBackgroundColor(this.backgroundColor);
267614
267611
  this.path.setBackgroundOpacity(this.backgroundOpacity);
267615
- this.path.setBorderColor(this.borderColor);
267616
267612
  this.path.setBorderWidth(this.borderWidth);
267617
267613
  this.path.setBorderStyle(this.borderStyle);
267618
267614
  this.path.setBorderOpacity(this.borderOpacity);
@@ -267797,7 +267793,6 @@ class Sticker extends BaseItem {
267797
267793
  this.stickerPath.transform(this.transformation.toMatrix());
267798
267794
  this.text.setContainer(this.textContainer.copy());
267799
267795
  this.textContainer.transform(this.transformation.toMatrix());
267800
- this.stickerPath.setBackgroundColor(resolveColor(this.backgroundColor, conf.theme, "background"));
267801
267796
  this.saveStickerData();
267802
267797
  }
267803
267798
  setId(id2) {
@@ -267841,7 +267836,6 @@ class Sticker extends BaseItem {
267841
267836
  }
267842
267837
  applyBackgroundColor(backgroundColor) {
267843
267838
  this.backgroundColor = backgroundColor;
267844
- this.stickerPath.setBackgroundColor(resolveColor(backgroundColor, conf.theme, "background"));
267845
267839
  }
267846
267840
  setBackgroundColor(backgroundColor) {
267847
267841
  this.emit({
@@ -267888,6 +267882,7 @@ class Sticker extends BaseItem {
267888
267882
  return;
267889
267883
  }
267890
267884
  this.renderShadow(context);
267885
+ this.stickerPath.setBackgroundColor(resolveColor(this.backgroundColor, conf.theme, "background"));
267891
267886
  this.stickerPath.render(context);
267892
267887
  this.text.render(context);
267893
267888
  if (this.getLinkTo()) {
@@ -268425,9 +268420,7 @@ class Frame2 extends BaseItem {
268425
268420
  this.path.transform(this.transformation.toMatrix());
268426
268421
  this.textContainer.transform(this.transformation.toMatrix());
268427
268422
  }
268428
- this.path.setBackgroundColor(resolveColor(this.backgroundColor, conf.theme, "background"));
268429
268423
  this.path.setBackgroundOpacity(this.backgroundOpacity);
268430
- this.path.setBorderColor(resolveColor(this.borderColor, conf.theme, "foreground"));
268431
268424
  this.path.setBorderWidth(this.borderWidth);
268432
268425
  this.path.setBorderStyle(this.borderStyle);
268433
268426
  this.path.setBorderOpacity(this.borderOpacity);
@@ -268578,7 +268571,6 @@ class Frame2 extends BaseItem {
268578
268571
  }
268579
268572
  applyBackgroundColor(backgroundColor) {
268580
268573
  this.backgroundColor = backgroundColor;
268581
- this.path.setBackgroundColor(resolveColor(backgroundColor, conf.theme, "background"));
268582
268574
  }
268583
268575
  setBackgroundColor(backgroundColor) {
268584
268576
  this.emit({
@@ -268626,6 +268618,8 @@ class Frame2 extends BaseItem {
268626
268618
  if (this.transformationRenderBlock) {
268627
268619
  return;
268628
268620
  }
268621
+ this.path.setBackgroundColor(resolveColor(this.backgroundColor, conf.theme, "background"));
268622
+ this.path.setBorderColor(resolveColor(this.borderColor, conf.theme, "foreground"));
268629
268623
  this.path.render(context);
268630
268624
  this.renderNewShape(context);
268631
268625
  if (this.getLinkTo()) {
@@ -373226,7 +373220,6 @@ function FillStyle() {
373226
373220
  board.selection.setFillColor(color2);
373227
373221
  };
373228
373222
  const isSemanticFill = getSemanticId(rawFillColor) !== null;
373229
- const isPredefinedColor = isSemanticFill || window.MICROBOARD_CONFIG.SHAPE_FILL_COLORS.some((color2) => color2 === fillColor);
373230
373223
  return /* @__PURE__ */ import_react239.default.createElement(ButtonWithMenu, {
373231
373224
  menuName: MENU_NAME4,
373232
373225
  openedMenu,
@@ -373257,15 +373250,10 @@ function FillStyle() {
373257
373250
  id: "fill-style",
373258
373251
  currentValue: rawFillColor,
373259
373252
  onPick: handlePick
373260
- }), /* @__PURE__ */ import_react239.default.createElement(ColorPicker, {
373261
- id: "fill-style",
373262
- selectedColor: fillColor,
373263
- colors: window.MICROBOARD_CONFIG.SHAPE_FILL_COLORS,
373264
- onPick: handlePick
373265
373253
  }), /* @__PURE__ */ import_react239.default.createElement(UiColorInput, {
373266
373254
  onChange: handleCustomPick,
373267
- color: isPredefinedColor ? "none" : fillColor,
373268
- isActive: fillColor !== "none" && !isPredefinedColor,
373255
+ color: isSemanticFill ? "none" : fillColor,
373256
+ isActive: fillColor !== "none" && !isSemanticFill,
373269
373257
  toggleMenu
373270
373258
  })));
373271
373259
  }
@@ -373613,7 +373601,6 @@ function FrameFill() {
373613
373601
  board.selection.setFillColor(color2);
373614
373602
  };
373615
373603
  const isSemanticFill = getSemanticId(rawFillColor) !== null;
373616
- const isPredefinedColor = isSemanticFill || FRAME_FILL_COLORS.some((color2) => color2 === fillColor);
373617
373604
  return /* @__PURE__ */ import_react245.default.createElement(ButtonWithMenu, {
373618
373605
  menuName: MENU_NAME7,
373619
373606
  openedMenu,
@@ -373644,15 +373631,10 @@ function FrameFill() {
373644
373631
  id: "frame-fill",
373645
373632
  currentValue: rawFillColor,
373646
373633
  onPick: handlePick
373647
- }), /* @__PURE__ */ import_react245.default.createElement(ColorPicker, {
373648
- id: "fill-style",
373649
- selectedColor: fillColor,
373650
- colors: FRAME_FILL_COLORS,
373651
- onPick: handlePick
373652
373634
  }), /* @__PURE__ */ import_react245.default.createElement(UiColorInput, {
373653
373635
  onChange: handleCustomPick,
373654
- color: isPredefinedColor ? "none" : fillColor,
373655
- isActive: fillColor !== "none" && !isPredefinedColor,
373636
+ color: isSemanticFill ? "none" : fillColor,
373637
+ isActive: fillColor !== "none" && !isSemanticFill,
373656
373638
  toggleMenu
373657
373639
  })));
373658
373640
  }
@@ -374161,11 +374143,6 @@ function StickerFillStyle() {
374161
374143
  id: "sticker-fill",
374162
374144
  currentValue: rawColor,
374163
374145
  onPick: handlePick
374164
- }), /* @__PURE__ */ import_react258.default.createElement(ColorPicker, {
374165
- id: "sticker-fill",
374166
- selectedColor: color2,
374167
- colors: window.MICROBOARD_CONFIG.STICKER_COLORS,
374168
- onPick: handlePick
374169
374146
  })));
374170
374147
  }
374171
374148
 
@@ -374221,7 +374198,6 @@ function StrokeStyle({
374221
374198
  board.selection.setStrokeColor(color2);
374222
374199
  };
374223
374200
  const isSemanticStroke = getSemanticId(rawBorderColor) !== null;
374224
- const isPredefinedColor = isSemanticStroke || window.MICROBOARD_CONFIG.SHAPE_STROKE_COLORS.some((color2) => color2 === borderColor);
374225
374201
  return /* @__PURE__ */ import_react259.default.createElement(ButtonWithMenu, {
374226
374202
  menuName: MENU_NAME13,
374227
374203
  openedMenu,
@@ -374264,15 +374240,10 @@ function StrokeStyle({
374264
374240
  id: "stroke-style",
374265
374241
  currentValue: rawBorderColor,
374266
374242
  onPick: handleStrokeColorPick
374267
- }), /* @__PURE__ */ import_react259.default.createElement(ColorPicker, {
374268
- id: "stroke-style",
374269
- colors: window.MICROBOARD_CONFIG.SHAPE_STROKE_COLORS,
374270
- onPick: handleStrokeColorPick,
374271
- selectedColor: borderColor
374272
374243
  }), /* @__PURE__ */ import_react259.default.createElement(UiColorInput, {
374273
374244
  onChange: handleStrokeCustomColorPick,
374274
- color: isPredefinedColor ? "none" : borderColor,
374275
- isActive: borderColor !== "none" && !isPredefinedColor,
374245
+ color: isSemanticStroke ? "none" : borderColor,
374246
+ isActive: borderColor !== "none" && !isSemanticStroke,
374276
374247
  toggleMenu
374277
374248
  }))));
374278
374249
  }
@@ -374454,15 +374425,20 @@ function TextColor() {
374454
374425
  const handleClick = () => {
374455
374426
  toggleMenu(MENU_NAME15);
374456
374427
  };
374457
- const handlePick = (color2) => {
374458
- board.selection.setFontColor(color2);
374428
+ const handleSemanticPick = (colorValue) => {
374429
+ const resolved = resolveColorForUI(colorValue, "foreground");
374430
+ board.selection.setFontColor(resolved);
374459
374431
  toggleMenu("None");
374460
374432
  };
374461
374433
  const handleCustomPick = (color2) => {
374462
374434
  const rgbColor = convertHexToRGBA2(color2, false);
374463
374435
  board.selection.setFontColor(rgbColor);
374464
374436
  };
374465
- const isPredefinedColor = window.MICROBOARD_CONFIG.TEXT_COLORS.some((color2) => color2 === fontColor);
374437
+ const activeSemanticId = CONTRAST_PALETTE_LIST.find((pair) => {
374438
+ const fg2 = conf.theme === "light" ? pair.dark : pair.light;
374439
+ return fg2 === fontColor;
374440
+ })?.id ?? null;
374441
+ const isSemanticFont = activeSemanticId !== null;
374466
374442
  return /* @__PURE__ */ import_react264.default.createElement(ButtonWithMenu, {
374467
374443
  menuName: MENU_NAME15,
374468
374444
  openedMenu,
@@ -374487,15 +374463,14 @@ function TextColor() {
374487
374463
  grid: true,
374488
374464
  columns: 4,
374489
374465
  gap: 8
374490
- }, /* @__PURE__ */ import_react264.default.createElement(ColorPicker, {
374466
+ }, /* @__PURE__ */ import_react264.default.createElement(SemanticColorPicker, {
374491
374467
  id: "TextColor",
374492
- colors: window.MICROBOARD_CONFIG.TEXT_COLORS,
374493
- selectedColor: fontColor,
374494
- onPick: handlePick
374468
+ currentValue: { type: "semantic", id: activeSemanticId },
374469
+ onPick: handleSemanticPick
374495
374470
  }), /* @__PURE__ */ import_react264.default.createElement(UiColorInput, {
374496
374471
  onChange: handleCustomPick,
374497
- color: isPredefinedColor ? "none" : fontColor,
374498
- isActive: fontColor !== "none" && !isPredefinedColor
374472
+ color: isSemanticFont ? "none" : fontColor,
374473
+ isActive: fontColor !== "none" && !isSemanticFont
374499
374474
  })));
374500
374475
  }
374501
374476
 
@@ -374510,15 +374485,20 @@ function TextHighlight() {
374510
374485
  const handleClick = () => {
374511
374486
  toggleMenu(MENU_NAME16);
374512
374487
  };
374513
- const handlePick = (color2) => {
374514
- board.selection.setFontHighlight(color2);
374488
+ const handleSemanticPick = (colorValue) => {
374489
+ const resolved = resolveColorForUI(colorValue, "background");
374490
+ board.selection.setFontHighlight(resolved);
374515
374491
  toggleMenu("None");
374516
374492
  };
374517
374493
  const handleCustomPick = (color2) => {
374518
374494
  const rgbColor = convertHexToRGBA2(color2, false);
374519
374495
  board.selection.setFontHighlight(rgbColor);
374520
374496
  };
374521
- const isPredefinedColor = window.MICROBOARD_CONFIG.TEXT_HIGHLIGHT_COLORS.includes(highlightColor);
374497
+ const activeSemanticId = CONTRAST_PALETTE_LIST.find((pair) => {
374498
+ const bg = conf.theme === "light" ? pair.light : pair.dark;
374499
+ return bg === highlightColor;
374500
+ })?.id ?? null;
374501
+ const isSemanticHighlight = activeSemanticId !== null;
374522
374502
  return /* @__PURE__ */ import_react265.default.createElement(ButtonWithMenu, {
374523
374503
  menuName: MENU_NAME16,
374524
374504
  openedMenu,
@@ -374543,15 +374523,14 @@ function TextHighlight() {
374543
374523
  grid: true,
374544
374524
  columns: 4,
374545
374525
  gap: 8
374546
- }, /* @__PURE__ */ import_react265.default.createElement(ColorPicker, {
374526
+ }, /* @__PURE__ */ import_react265.default.createElement(SemanticColorPicker, {
374547
374527
  id: "TextHighlight",
374548
- colors: window.MICROBOARD_CONFIG.TEXT_HIGHLIGHT_COLORS,
374549
- selectedColor: highlightColor,
374550
- onPick: handlePick
374528
+ currentValue: { type: "semantic", id: activeSemanticId },
374529
+ onPick: handleSemanticPick
374551
374530
  }), /* @__PURE__ */ import_react265.default.createElement(UiColorInput, {
374552
374531
  onChange: handleCustomPick,
374553
- color: isPredefinedColor ? "none" : highlightColor,
374554
- isActive: highlightColor !== "none" && !isPredefinedColor,
374532
+ color: isSemanticHighlight ? "none" : highlightColor,
374533
+ isActive: highlightColor !== "none" && !isSemanticHighlight,
374555
374534
  toggleMenu
374556
374535
  })));
374557
374536
  }
@@ -374663,7 +374642,6 @@ function ConnectorLineColor() {
374663
374642
  board.selection.setStrokeColor(color2);
374664
374643
  };
374665
374644
  const isSemanticLine = getSemanticId(rawLineColor) !== null;
374666
- const isPredefinedColor = isSemanticLine || window.MICROBOARD_CONFIG.SHAPE_STROKE_COLORS.some((color2) => color2 === connectorLineColor);
374667
374645
  return /* @__PURE__ */ import_react268.default.createElement(ButtonWithMenu, {
374668
374646
  menuName: MENU_NAME17,
374669
374647
  openedMenu,
@@ -374694,15 +374672,10 @@ function ConnectorLineColor() {
374694
374672
  id: "connector-line-color",
374695
374673
  currentValue: rawLineColor,
374696
374674
  onPick: handlePick
374697
- }), /* @__PURE__ */ import_react268.default.createElement(ColorPicker, {
374698
- id: "connector-line-color",
374699
- selectedColor: connectorLineColor,
374700
- colors: window.MICROBOARD_CONFIG.SHAPE_STROKE_COLORS,
374701
- onPick: handlePick
374702
374675
  }), /* @__PURE__ */ import_react268.default.createElement(UiColorInput, {
374703
374676
  onChange: handleCustomPick,
374704
- color: isPredefinedColor ? "none" : connectorLineColor,
374705
- isActive: connectorLineColor !== "none" && !isPredefinedColor,
374677
+ color: isSemanticLine ? "none" : connectorLineColor,
374678
+ isActive: connectorLineColor !== "none" && !isSemanticLine,
374706
374679
  toggleMenu
374707
374680
  })));
374708
374681
  }
@@ -376803,7 +376776,7 @@ function shouldShow(panel) {
376803
376776
  }
376804
376777
 
376805
376778
  // src/features/SidePanelsContainer/SidePanelsContainer.tsx
376806
- var import_react369 = __toESM(require_react(), 1);
376779
+ var import_react368 = __toESM(require_react(), 1);
376807
376780
 
376808
376781
  // src/features/AppView/InactiveBoardHidder.tsx
376809
376782
  var import_react309 = __toESM(require_react(), 1);
@@ -437851,7 +437824,7 @@ var AIChatPanel = ({ board }) => {
437851
437824
  var AIChatPanel_default = AIChatPanel;
437852
437825
 
437853
437826
  // src/features/ToolsPanel/ToolsPanel.tsx
437854
- var import_react363 = __toESM(require_react(), 1);
437827
+ var import_react362 = __toESM(require_react(), 1);
437855
437828
 
437856
437829
  // src/features/ToolsPanel/Buttons/AddConnector.tsx
437857
437830
  var import_react325 = __toESM(require_react(), 1);
@@ -439644,28 +439617,8 @@ function Select3({ rounded = "top" }) {
439644
439617
  }));
439645
439618
  }
439646
439619
 
439647
- // src/features/ToolsPanel/Buttons/ThemeToggle.tsx
439648
- var import_react354 = __toESM(require_react(), 1);
439649
- function ThemeToggle() {
439650
- const { board } = useAppContext();
439651
- const [theme2, setTheme] = import_react354.useState(conf.theme);
439652
- const handleClick = () => {
439653
- const next5 = conf.theme === "light" ? "dark" : "light";
439654
- conf.theme = next5;
439655
- setTheme(next5);
439656
- board.items.subject.publish(board.items);
439657
- };
439658
- return /* @__PURE__ */ import_react354.default.createElement(UiButton, {
439659
- id: "theme-toggle",
439660
- tooltip: theme2 === "light" ? "Switch to dark theme" : "Switch to light theme",
439661
- onClick: handleClick,
439662
- variant: "secondary",
439663
- rounded: "none"
439664
- }, theme2 === "light" ? "☀" : "☾");
439665
- }
439666
-
439667
439620
  // src/features/ToolsPanel/Buttons/Undo.tsx
439668
- var import_react355 = __toESM(require_react(), 1);
439621
+ var import_react354 = __toESM(require_react(), 1);
439669
439622
  function Undo() {
439670
439623
  const { board } = useAppContext();
439671
439624
  const { t: t11 } = useTranslation();
@@ -439678,7 +439631,7 @@ function Undo() {
439678
439631
  board.events?.undo();
439679
439632
  };
439680
439633
  const canUndo = board.events?.canUndo();
439681
- return /* @__PURE__ */ import_react355.default.createElement(UiButton, {
439634
+ return /* @__PURE__ */ import_react354.default.createElement(UiButton, {
439682
439635
  id: "undo",
439683
439636
  tooltip: t11("toolsPanel.undo.tooltip"),
439684
439637
  hotkey: getHotkeyLabel("undo"),
@@ -439686,7 +439639,7 @@ function Undo() {
439686
439639
  disabled: !canUndo,
439687
439640
  rounded: "top",
439688
439641
  variant: "secondary"
439689
- }, /* @__PURE__ */ import_react355.default.createElement(Icon, {
439642
+ }, /* @__PURE__ */ import_react354.default.createElement(Icon, {
439690
439643
  iconName: "Undo"
439691
439644
  }));
439692
439645
  }
@@ -439702,13 +439655,13 @@ var ToolsPanel_module_default = {
439702
439655
  };
439703
439656
 
439704
439657
  // src/features/ToolsPanel/Buttons/AddGameItem/AddGameItem.tsx
439705
- var import_react362 = __toESM(require_react(), 1);
439658
+ var import_react361 = __toESM(require_react(), 1);
439706
439659
 
439707
439660
  // src/features/ToolsPanel/Buttons/AddGameItem/AddDice.tsx
439708
- var import_react357 = __toESM(require_react(), 1);
439661
+ var import_react356 = __toESM(require_react(), 1);
439709
439662
 
439710
439663
  // src/features/GameItems/CreateDiceModal.tsx
439711
- var import_react356 = __toESM(require_react(), 1);
439664
+ var import_react355 = __toESM(require_react(), 1);
439712
439665
 
439713
439666
  // src/features/GameItems/Modal.module.css
439714
439667
  var Modal_module_default = {
@@ -439734,14 +439687,14 @@ var MIN_SIDES = 3;
439734
439687
  var MAX_SIDES = 20;
439735
439688
  function CreateDiceModal() {
439736
439689
  const { closeModal: closeModal2 } = useUiModalContext();
439737
- const [faces, setFaces] = import_react356.useState(Array(MIN_SIDES).fill(null));
439738
- const [previews, setPreviews] = import_react356.useState(Array(MIN_SIDES).fill(null));
439739
- const [isLoading, setIsLoading] = import_react356.useState(false);
439740
- const inputRefs = import_react356.useRef([]);
439690
+ const [faces, setFaces] = import_react355.useState(Array(MIN_SIDES).fill(null));
439691
+ const [previews, setPreviews] = import_react355.useState(Array(MIN_SIDES).fill(null));
439692
+ const [isLoading, setIsLoading] = import_react355.useState(false);
439693
+ const inputRefs = import_react355.useRef([]);
439741
439694
  const { board } = useAppContext();
439742
439695
  const account = useAccount();
439743
439696
  const { t: t11 } = useTranslation();
439744
- import_react356.useEffect(() => {
439697
+ import_react355.useEffect(() => {
439745
439698
  faces.forEach((file, idx) => {
439746
439699
  if (file) {
439747
439700
  const reader = new FileReader;
@@ -439827,43 +439780,43 @@ function CreateDiceModal() {
439827
439780
  }
439828
439781
  closeModal2();
439829
439782
  };
439830
- return /* @__PURE__ */ import_react356.default.createElement(UiModal, {
439783
+ return /* @__PURE__ */ import_react355.default.createElement(UiModal, {
439831
439784
  modalId: CREATE_DICE_MODAL,
439832
439785
  closeOnClickOutside: false,
439833
439786
  renderAsPageOnMobile: true
439834
- }, /* @__PURE__ */ import_react356.default.createElement("div", {
439787
+ }, /* @__PURE__ */ import_react355.default.createElement("div", {
439835
439788
  className: Modal_module_default.modalContent
439836
- }, /* @__PURE__ */ import_react356.default.createElement("div", {
439789
+ }, /* @__PURE__ */ import_react355.default.createElement("div", {
439837
439790
  className: Modal_module_default.title
439838
- }, t11("toolsPanel.addGameItem.addDice.title")), /* @__PURE__ */ import_react356.default.createElement("div", {
439791
+ }, t11("toolsPanel.addGameItem.addDice.title")), /* @__PURE__ */ import_react355.default.createElement("div", {
439839
439792
  className: Modal_module_default.cardsRow,
439840
439793
  style: { flexWrap: "wrap", gap: 16 }
439841
- }, faces.map((face, idx) => /* @__PURE__ */ import_react356.default.createElement("div", {
439794
+ }, faces.map((face, idx) => /* @__PURE__ */ import_react355.default.createElement("div", {
439842
439795
  key: idx,
439843
439796
  className: Modal_module_default.diceFace,
439844
439797
  onClick: () => handleFaceClick(idx)
439845
- }, previews[idx] ? /* @__PURE__ */ import_react356.default.createElement("img", {
439798
+ }, previews[idx] ? /* @__PURE__ */ import_react355.default.createElement("img", {
439846
439799
  src: previews[idx] || undefined,
439847
439800
  alt: `face-${idx + 1}`,
439848
439801
  className: Modal_module_default.dicePreview
439849
- }) : /* @__PURE__ */ import_react356.default.createElement("span", {
439802
+ }) : /* @__PURE__ */ import_react355.default.createElement("span", {
439850
439803
  className: Modal_module_default.diceLabel
439851
- }, idx + 1), /* @__PURE__ */ import_react356.default.createElement("input", {
439804
+ }, idx + 1), /* @__PURE__ */ import_react355.default.createElement("input", {
439852
439805
  type: "file",
439853
439806
  accept: "image/*",
439854
439807
  style: { display: "none" },
439855
439808
  ref: (el2) => inputRefs.current[idx] = el2,
439856
439809
  onChange: (ev) => handleFileChange(idx, ev)
439857
- }))), faces.length < MAX_SIDES && /* @__PURE__ */ import_react356.default.createElement("div", {
439810
+ }))), faces.length < MAX_SIDES && /* @__PURE__ */ import_react355.default.createElement("div", {
439858
439811
  className: Modal_module_default.addFaceBtn,
439859
439812
  onClick: handleAddFace
439860
- }, "+")), faces.length > MIN_SIDES && /* @__PURE__ */ import_react356.default.createElement("div", {
439813
+ }, "+")), faces.length > MIN_SIDES && /* @__PURE__ */ import_react355.default.createElement("div", {
439861
439814
  className: Modal_module_default.removeFaceBtnWrapper
439862
- }, /* @__PURE__ */ import_react356.default.createElement(UiButton, {
439815
+ }, /* @__PURE__ */ import_react355.default.createElement(UiButton, {
439863
439816
  variant: "secondary",
439864
439817
  onClick: handleRemoveLastFace,
439865
439818
  className: Modal_module_default.removeFaceBtn
439866
- }, t11("toolsPanel.addGameItem.addDice.removeFace"))), /* @__PURE__ */ import_react356.default.createElement(UiButton, {
439819
+ }, t11("toolsPanel.addGameItem.addDice.removeFace"))), /* @__PURE__ */ import_react355.default.createElement(UiButton, {
439867
439820
  className: Modal_module_default.acceptBtn,
439868
439821
  variant: "primary",
439869
439822
  onClick: handleAccept,
@@ -439878,23 +439831,23 @@ function AddDice2({ rounded }) {
439878
439831
  const handleClick = () => {
439879
439832
  openModal2(CREATE_DICE_MODAL);
439880
439833
  };
439881
- return /* @__PURE__ */ import_react357.default.createElement(UiButton, {
439834
+ return /* @__PURE__ */ import_react356.default.createElement(UiButton, {
439882
439835
  id: "tool-add-dice",
439883
439836
  tooltip: t11("toolsPanel.addGameItem.addDice.tooltip"),
439884
439837
  onClick: handleClick,
439885
439838
  active: false,
439886
439839
  variant: "secondary",
439887
439840
  rounded
439888
- }, /* @__PURE__ */ import_react357.default.createElement(Icon, {
439841
+ }, /* @__PURE__ */ import_react356.default.createElement(Icon, {
439889
439842
  iconName: "Dice"
439890
439843
  }));
439891
439844
  }
439892
439845
 
439893
439846
  // src/features/ToolsPanel/Buttons/AddGameItem/AddCard.tsx
439894
- var import_react359 = __toESM(require_react(), 1);
439847
+ var import_react358 = __toESM(require_react(), 1);
439895
439848
 
439896
439849
  // src/features/GameItems/CreateCardsModal.tsx
439897
- var import_react358 = __toESM(require_react(), 1);
439850
+ var import_react357 = __toESM(require_react(), 1);
439898
439851
  var CREATE_CARDS_MODAL = Symbol("createCardsModal");
439899
439852
  var getImageDimensions = (file) => {
439900
439853
  return new Promise((resolve2) => {
@@ -439913,14 +439866,14 @@ function CreateCardsModal() {
439913
439866
  const { closeModal: closeModal2 } = useUiModalContext();
439914
439867
  const { board } = useAppContext();
439915
439868
  const account = useAccount();
439916
- const [cover, setCover] = import_react358.default.useState(null);
439917
- const [coverPreview, setCoverPreview] = import_react358.default.useState(null);
439918
- const [cards, setCards] = import_react358.default.useState([]);
439919
- const [cardsPreview, setCardsPreview] = import_react358.default.useState([]);
439920
- const [loading, setLoading] = import_react358.default.useState(false);
439921
- const [cardDimensions, setCardDimensions] = import_react358.useState(conf.DEFAULT_GAME_ITEM_DIMENSIONS);
439922
- const coverInputRef = import_react358.default.useRef(null);
439923
- const cardsInputRef = import_react358.default.useRef(null);
439869
+ const [cover, setCover] = import_react357.default.useState(null);
439870
+ const [coverPreview, setCoverPreview] = import_react357.default.useState(null);
439871
+ const [cards, setCards] = import_react357.default.useState([]);
439872
+ const [cardsPreview, setCardsPreview] = import_react357.default.useState([]);
439873
+ const [loading, setLoading] = import_react357.default.useState(false);
439874
+ const [cardDimensions, setCardDimensions] = import_react357.useState(conf.DEFAULT_GAME_ITEM_DIMENSIONS);
439875
+ const coverInputRef = import_react357.default.useRef(null);
439876
+ const cardsInputRef = import_react357.default.useRef(null);
439924
439877
  const handleCoverClick = () => coverInputRef.current?.click();
439925
439878
  const handleCardsClick = () => cardsInputRef.current?.click();
439926
439879
  const createDeck2 = (backsideUrl, faceUrls) => {
@@ -439984,17 +439937,17 @@ function CreateCardsModal() {
439984
439937
  setLoading(false);
439985
439938
  }
439986
439939
  };
439987
- return /* @__PURE__ */ import_react358.default.createElement(UiModal, {
439940
+ return /* @__PURE__ */ import_react357.default.createElement(UiModal, {
439988
439941
  modalId: CREATE_CARDS_MODAL,
439989
439942
  closeOnClickOutside: false,
439990
439943
  renderAsPageOnMobile: true
439991
- }, /* @__PURE__ */ import_react358.default.createElement("div", {
439944
+ }, /* @__PURE__ */ import_react357.default.createElement("div", {
439992
439945
  className: Modal_module_default.modalContent
439993
- }, /* @__PURE__ */ import_react358.default.createElement("div", {
439946
+ }, /* @__PURE__ */ import_react357.default.createElement("div", {
439994
439947
  className: Modal_module_default.title
439995
- }, t11("toolsPanel.addGameItem.addCard.title")), /* @__PURE__ */ import_react358.default.createElement("div", {
439948
+ }, t11("toolsPanel.addGameItem.addCard.title")), /* @__PURE__ */ import_react357.default.createElement("div", {
439996
439949
  className: Modal_module_default.cardsRow
439997
- }, /* @__PURE__ */ import_react358.default.createElement("div", {
439950
+ }, /* @__PURE__ */ import_react357.default.createElement("div", {
439998
439951
  className: Modal_module_default.cardSilhouette,
439999
439952
  onClick: handleCoverClick,
440000
439953
  style: {
@@ -440002,19 +439955,19 @@ function CreateCardsModal() {
440002
439955
  height: cardDimensions.height,
440003
439956
  maxWidth: "80vw"
440004
439957
  }
440005
- }, coverPreview ? /* @__PURE__ */ import_react358.default.createElement("img", {
439958
+ }, coverPreview ? /* @__PURE__ */ import_react357.default.createElement("img", {
440006
439959
  src: coverPreview,
440007
439960
  alt: "cover",
440008
439961
  className: Modal_module_default.cardPreview
440009
- }) : /* @__PURE__ */ import_react358.default.createElement("span", {
439962
+ }) : /* @__PURE__ */ import_react357.default.createElement("span", {
440010
439963
  className: Modal_module_default.cardLabel
440011
- }, t11("toolsPanel.addGameItem.addCard.cover")), /* @__PURE__ */ import_react358.default.createElement("input", {
439964
+ }, t11("toolsPanel.addGameItem.addCard.cover")), /* @__PURE__ */ import_react357.default.createElement("input", {
440012
439965
  type: "file",
440013
439966
  accept: "image/*",
440014
439967
  style: { display: "none" },
440015
439968
  ref: coverInputRef,
440016
439969
  onChange: handleCoverChange
440017
- })), /* @__PURE__ */ import_react358.default.createElement("div", {
439970
+ })), /* @__PURE__ */ import_react357.default.createElement("div", {
440018
439971
  className: Modal_module_default.cardSilhouette,
440019
439972
  onClick: handleCardsClick,
440020
439973
  style: {
@@ -440022,20 +439975,20 @@ function CreateCardsModal() {
440022
439975
  height: cardDimensions.height,
440023
439976
  maxWidth: "80vw"
440024
439977
  }
440025
- }, cardsPreview.length > 0 ? /* @__PURE__ */ import_react358.default.createElement("img", {
439978
+ }, cardsPreview.length > 0 ? /* @__PURE__ */ import_react357.default.createElement("img", {
440026
439979
  src: cardsPreview[0],
440027
439980
  alt: "preview",
440028
439981
  className: Modal_module_default.cardPreview
440029
- }) : /* @__PURE__ */ import_react358.default.createElement("span", {
439982
+ }) : /* @__PURE__ */ import_react357.default.createElement("span", {
440030
439983
  className: Modal_module_default.cardLabel
440031
- }, t11("toolsPanel.addGameItem.addCard.cards")), /* @__PURE__ */ import_react358.default.createElement("input", {
439984
+ }, t11("toolsPanel.addGameItem.addCard.cards")), /* @__PURE__ */ import_react357.default.createElement("input", {
440032
439985
  type: "file",
440033
439986
  accept: "image/*",
440034
439987
  multiple: true,
440035
439988
  style: { display: "none" },
440036
439989
  ref: cardsInputRef,
440037
439990
  onChange: handleCardsChange
440038
- }))), /* @__PURE__ */ import_react358.default.createElement(UiButton, {
439991
+ }))), /* @__PURE__ */ import_react357.default.createElement(UiButton, {
440039
439992
  className: Modal_module_default.acceptBtn,
440040
439993
  variant: "primary",
440041
439994
  onClick: handleAccept,
@@ -440050,13 +440003,13 @@ function AddCard({ rounded = "none" }) {
440050
440003
  const handleClick = () => {
440051
440004
  openModal2(CREATE_CARDS_MODAL);
440052
440005
  };
440053
- return /* @__PURE__ */ import_react359.default.createElement(UiButton, {
440006
+ return /* @__PURE__ */ import_react358.default.createElement(UiButton, {
440054
440007
  id: `tool-add-card`,
440055
440008
  tooltip: t11("toolsPanel.addGameItem.addCard.tooltip"),
440056
440009
  onClick: handleClick,
440057
440010
  rounded,
440058
440011
  variant: "secondary"
440059
- }, /* @__PURE__ */ import_react359.default.createElement(Icon, {
440012
+ }, /* @__PURE__ */ import_react358.default.createElement(Icon, {
440060
440013
  iconName: "Card",
440061
440014
  width: 24,
440062
440015
  height: 24
@@ -440064,7 +440017,7 @@ function AddCard({ rounded = "none" }) {
440064
440017
  }
440065
440018
 
440066
440019
  // src/features/ToolsPanel/Buttons/AddGameItem/AddScreen.tsx
440067
- var import_react360 = __toESM(require_react(), 1);
440020
+ var import_react359 = __toESM(require_react(), 1);
440068
440021
  function AddScreen2() {
440069
440022
  const { board } = useAppContext();
440070
440023
  const { t: t11 } = useTranslation();
@@ -440072,20 +440025,20 @@ function AddScreen2() {
440072
440025
  board.tools.addRegisteredTool("AddScreen", true);
440073
440026
  };
440074
440027
  const isActive = Boolean(board.tools.getAddRegisteredTool("AddScreen"));
440075
- return /* @__PURE__ */ import_react360.default.createElement(UiButton, {
440028
+ return /* @__PURE__ */ import_react359.default.createElement(UiButton, {
440076
440029
  id: "tool-add-screen",
440077
440030
  tooltip: t11("toolsPanel.addGameItem.addScreen.tooltip"),
440078
440031
  onClick: handleClick,
440079
440032
  variant: "secondary",
440080
440033
  rounded: "none",
440081
440034
  active: isActive
440082
- }, /* @__PURE__ */ import_react360.default.createElement(Icon, {
440035
+ }, /* @__PURE__ */ import_react359.default.createElement(Icon, {
440083
440036
  iconName: "AddScreen"
440084
440037
  }));
440085
440038
  }
440086
440039
 
440087
440040
  // src/features/ToolsPanel/Buttons/AddGameItem/AddPouch.tsx
440088
- var import_react361 = __toESM(require_react(), 1);
440041
+ var import_react360 = __toESM(require_react(), 1);
440089
440042
  function AddPouch2() {
440090
440043
  const { board } = useAppContext();
440091
440044
  const { t: t11 } = useTranslation();
@@ -440093,14 +440046,14 @@ function AddPouch2() {
440093
440046
  board.tools.addRegisteredTool("AddPouch", true);
440094
440047
  };
440095
440048
  const isActive = Boolean(board.tools.getAddRegisteredTool("AddPouch"));
440096
- return /* @__PURE__ */ import_react361.default.createElement(UiButton, {
440049
+ return /* @__PURE__ */ import_react360.default.createElement(UiButton, {
440097
440050
  id: "tool-add-pouch",
440098
440051
  tooltip: t11("toolsPanel.addGameItem.addPouch.tooltip"),
440099
440052
  onClick: handleClick,
440100
440053
  variant: "secondary",
440101
440054
  rounded: "none",
440102
440055
  active: isActive
440103
- }, /* @__PURE__ */ import_react361.default.createElement(Icon, {
440056
+ }, /* @__PURE__ */ import_react360.default.createElement(Icon, {
440104
440057
  iconName: "AddPouch",
440105
440058
  width: 24,
440106
440059
  height: 24
@@ -440109,35 +440062,35 @@ function AddPouch2() {
440109
440062
 
440110
440063
  // src/features/ToolsPanel/Buttons/AddGameItem/AddGameItem.tsx
440111
440064
  function AddGameItem() {
440112
- const [isOpen, setIsOpen] = import_react362.useState(false);
440065
+ const [isOpen, setIsOpen] = import_react361.useState(false);
440113
440066
  const { t: t11 } = useTranslation();
440114
440067
  const ref4 = useClickOutside(() => setIsOpen(false), [], true);
440115
- return /* @__PURE__ */ import_react362.default.createElement(ButtonWithMenu2, {
440068
+ return /* @__PURE__ */ import_react361.default.createElement(ButtonWithMenu2, {
440116
440069
  ref: ref4,
440117
- button: /* @__PURE__ */ import_react362.default.createElement(UiButton, {
440070
+ button: /* @__PURE__ */ import_react361.default.createElement(UiButton, {
440118
440071
  id: "tool-add-game-item",
440119
440072
  tooltip: t11("toolsPanel.addGameItem.tooltip"),
440120
440073
  active: isOpen,
440121
440074
  variant: "secondary",
440122
440075
  rounded: "top",
440123
440076
  onClick: () => setIsOpen(!isOpen)
440124
- }, /* @__PURE__ */ import_react362.default.createElement(Icon, {
440077
+ }, /* @__PURE__ */ import_react361.default.createElement(Icon, {
440125
440078
  iconName: "GameItems"
440126
440079
  })),
440127
440080
  isOpen
440128
- }, /* @__PURE__ */ import_react362.default.createElement(UiPanel, {
440081
+ }, /* @__PURE__ */ import_react361.default.createElement(UiPanel, {
440129
440082
  vertical: true,
440130
440083
  padding: 0
440131
- }, /* @__PURE__ */ import_react362.default.createElement(AddDice2, {
440084
+ }, /* @__PURE__ */ import_react361.default.createElement(AddDice2, {
440132
440085
  rounded: "top"
440133
- }), /* @__PURE__ */ import_react362.default.createElement(AddScreen2, null), /* @__PURE__ */ import_react362.default.createElement(AddPouch2, null), /* @__PURE__ */ import_react362.default.createElement(AddCard, {
440086
+ }), /* @__PURE__ */ import_react361.default.createElement(AddScreen2, null), /* @__PURE__ */ import_react361.default.createElement(AddPouch2, null), /* @__PURE__ */ import_react361.default.createElement(AddCard, {
440134
440087
  rounded: "bottom"
440135
440088
  })));
440136
440089
  }
440137
440090
 
440138
440091
  // src/features/ToolsPanel/ToolsPanel.tsx
440139
440092
  function ToolsPanel() {
440140
- const [openedMenu, setOpenedMenu] = import_react363.useState("None");
440093
+ const [openedMenu, setOpenedMenu] = import_react362.useState("None");
440141
440094
  const toggleMenu = (menu) => setOpenedMenu((prev2) => prev2 === menu ? "None" : menu);
440142
440095
  const { app } = useAppContext();
440143
440096
  const forceUpdate = useForceUpdate();
@@ -440145,31 +440098,31 @@ function ToolsPanel() {
440145
440098
  subjects: ["tools"],
440146
440099
  observer: forceUpdate
440147
440100
  });
440148
- import_react363.useEffect(() => {}, [window.showDebug]);
440149
- return /* @__PURE__ */ import_react363.default.createElement(PanelContext2.Provider, {
440101
+ import_react362.useEffect(() => {}, [window.showDebug]);
440102
+ return /* @__PURE__ */ import_react362.default.createElement(PanelContext2.Provider, {
440150
440103
  value: { toggleMenu, openedMenu }
440151
- }, /* @__PURE__ */ import_react363.default.createElement("div", {
440104
+ }, /* @__PURE__ */ import_react362.default.createElement("div", {
440152
440105
  className: window.location.protocol === "file:" ? ToolsPanel_module_default.localWrapper : ToolsPanel_module_default.wrapper
440153
- }, /* @__PURE__ */ import_react363.default.createElement(UiPanel, {
440106
+ }, /* @__PURE__ */ import_react362.default.createElement(UiPanel, {
440154
440107
  vertical: true,
440155
440108
  padding: 0,
440156
440109
  zIndex: 20
440157
- }, /* @__PURE__ */ import_react363.default.createElement(AddGameItem, null), /* @__PURE__ */ import_react363.default.createElement(AddTemplate, null), /* @__PURE__ */ import_react363.default.createElement(UiSeparator, null), /* @__PURE__ */ import_react363.default.createElement(Select3, {
440110
+ }, /* @__PURE__ */ import_react362.default.createElement(AddGameItem, null), /* @__PURE__ */ import_react362.default.createElement(AddTemplate, null), /* @__PURE__ */ import_react362.default.createElement(UiSeparator, null), /* @__PURE__ */ import_react362.default.createElement(Select3, {
440158
440111
  rounded: "none"
440159
- }), /* @__PURE__ */ import_react363.default.createElement(AddDrawing2, null), /* @__PURE__ */ import_react363.default.createElement(AddText2, null), /* @__PURE__ */ import_react363.default.createElement(AddShape2, null), /* @__PURE__ */ import_react363.default.createElement(AddConnector2, null), /* @__PURE__ */ import_react363.default.createElement(AddSticker2, null), /* @__PURE__ */ import_react363.default.createElement(AddFrame2, null), /* @__PURE__ */ import_react363.default.createElement(AddMedia, null)), /* @__PURE__ */ import_react363.default.createElement(UiPanel, {
440112
+ }), /* @__PURE__ */ import_react362.default.createElement(AddDrawing2, null), /* @__PURE__ */ import_react362.default.createElement(AddText2, null), /* @__PURE__ */ import_react362.default.createElement(AddShape2, null), /* @__PURE__ */ import_react362.default.createElement(AddConnector2, null), /* @__PURE__ */ import_react362.default.createElement(AddSticker2, null), /* @__PURE__ */ import_react362.default.createElement(AddFrame2, null), /* @__PURE__ */ import_react362.default.createElement(AddMedia, null)), /* @__PURE__ */ import_react362.default.createElement(UiPanel, {
440160
440113
  vertical: true,
440161
440114
  padding: 0
440162
- }, /* @__PURE__ */ import_react363.default.createElement(Undo, null), /* @__PURE__ */ import_react363.default.createElement(Redo, null), /* @__PURE__ */ import_react363.default.createElement(ThemeToggle, null)), /* @__PURE__ */ import_react363.default.createElement("div", {
440115
+ }, /* @__PURE__ */ import_react362.default.createElement(Undo, null), /* @__PURE__ */ import_react362.default.createElement(Redo, null)), /* @__PURE__ */ import_react362.default.createElement("div", {
440163
440116
  className: ToolsPanel_module_default.bottomLeftWrapper
440164
- }, window.showDebug && /* @__PURE__ */ import_react363.default.createElement(EventList, null), window.enableDiagrams && /* @__PURE__ */ import_react363.default.createElement(AIChatPanel_default, {
440117
+ }, window.showDebug && /* @__PURE__ */ import_react362.default.createElement(EventList, null), window.enableDiagrams && /* @__PURE__ */ import_react362.default.createElement(AIChatPanel_default, {
440165
440118
  board: app.getBoard()
440166
440119
  }))));
440167
440120
  }
440168
440121
  // src/features/ToolsPanel/ViewToolsPanel.tsx
440169
- var import_react365 = __toESM(require_react(), 1);
440122
+ var import_react364 = __toESM(require_react(), 1);
440170
440123
 
440171
440124
  // src/features/ToolsPanel/Buttons/Grab.tsx
440172
- var import_react364 = __toESM(require_react(), 1);
440125
+ var import_react363 = __toESM(require_react(), 1);
440173
440126
  function Grab() {
440174
440127
  const { board } = useAppContext();
440175
440128
  const { t: t11 } = useTranslation();
@@ -440177,14 +440130,14 @@ function Grab() {
440177
440130
  board.tools.navigate();
440178
440131
  };
440179
440132
  const isActive = Boolean(board.tools.getNavigate());
440180
- return /* @__PURE__ */ import_react364.default.createElement(UiButton, {
440133
+ return /* @__PURE__ */ import_react363.default.createElement(UiButton, {
440181
440134
  id: "tool-select",
440182
440135
  tooltip: isActive ? undefined : t11("toolsPanel.grab.tooltip"),
440183
440136
  onClick: handleClick,
440184
440137
  active: isActive,
440185
440138
  variant: "secondary",
440186
440139
  rounded: "top"
440187
- }, /* @__PURE__ */ import_react364.default.createElement(Icon, {
440140
+ }, /* @__PURE__ */ import_react363.default.createElement(Icon, {
440188
440141
  iconName: "Hand"
440189
440142
  }));
440190
440143
  }
@@ -440196,25 +440149,25 @@ function ViewToolsPanel() {
440196
440149
  subjects: ["tools"],
440197
440150
  observer: forceUpdate
440198
440151
  });
440199
- import_react365.useEffect(() => {}, [window.showDebug]);
440200
- return /* @__PURE__ */ import_react365.default.createElement("div", {
440152
+ import_react364.useEffect(() => {}, [window.showDebug]);
440153
+ return /* @__PURE__ */ import_react364.default.createElement("div", {
440201
440154
  className: ToolsPanel_module_default.wrapper
440202
- }, /* @__PURE__ */ import_react365.default.createElement(UiPanel, {
440155
+ }, /* @__PURE__ */ import_react364.default.createElement(UiPanel, {
440203
440156
  vertical: true,
440204
440157
  padding: 0,
440205
440158
  zIndex: 20
440206
- }, /* @__PURE__ */ import_react365.default.createElement(Grab, null), /* @__PURE__ */ import_react365.default.createElement(UiSeparator, null), /* @__PURE__ */ import_react365.default.createElement(Select3, {
440159
+ }, /* @__PURE__ */ import_react364.default.createElement(Grab, null), /* @__PURE__ */ import_react364.default.createElement(UiSeparator, null), /* @__PURE__ */ import_react364.default.createElement(Select3, {
440207
440160
  rounded: "bottom"
440208
- })), window.showDebug && /* @__PURE__ */ import_react365.default.createElement(EventList, null));
440161
+ })), window.showDebug && /* @__PURE__ */ import_react364.default.createElement(EventList, null));
440209
440162
  }
440210
440163
 
440211
440164
  // src/features/BoardItemsPanel/BoardItemsPanel.tsx
440212
- var import_react368 = __toESM(require_react(), 1);
440165
+ var import_react367 = __toESM(require_react(), 1);
440213
440166
 
440214
440167
  // src/shared/lib/useHotkey.ts
440215
- var import_react366 = __toESM(require_react(), 1);
440168
+ var import_react365 = __toESM(require_react(), 1);
440216
440169
  function useHotkey(code4, callback, options3 = {}) {
440217
- import_react366.useEffect(() => {
440170
+ import_react365.useEffect(() => {
440218
440171
  const { ctrl = false, shift: shift2 = false, alt = false, meta: meta3 = false } = options3;
440219
440172
  const handler = (event) => {
440220
440173
  const target = event.target;
@@ -440232,7 +440185,7 @@ function useHotkey(code4, callback, options3 = {}) {
440232
440185
  }
440233
440186
 
440234
440187
  // src/features/BoardItemsPanel/BoardItemsPanelContext.tsx
440235
- var import_react367 = __toESM(require_react(), 1);
440188
+ var import_react366 = __toESM(require_react(), 1);
440236
440189
  var BoardItemsPanelContext = createStrictContext();
440237
440190
  function useBoardItemsPanelContext() {
440238
440191
  return useStrictContext(BoardItemsPanelContext);
@@ -440240,8 +440193,8 @@ function useBoardItemsPanelContext() {
440240
440193
  function BoardItemsPanelContextProvider({
440241
440194
  children
440242
440195
  }) {
440243
- const [isOpen, setIsOpen] = import_react367.useState(false);
440244
- return /* @__PURE__ */ import_react367.default.createElement(BoardItemsPanelContext.Provider, {
440196
+ const [isOpen, setIsOpen] = import_react366.useState(false);
440197
+ return /* @__PURE__ */ import_react366.default.createElement(BoardItemsPanelContext.Provider, {
440245
440198
  value: {
440246
440199
  isOpen,
440247
440200
  openPanel: () => setIsOpen(true),
@@ -440268,49 +440221,49 @@ var BoardItemsPanel_module_default = {
440268
440221
  // src/features/BoardItemsPanel/BoardItemsPanel.tsx
440269
440222
  function BoardItemsPanel() {
440270
440223
  const { isOpen, openPanel, closePanel } = useBoardItemsPanelContext();
440271
- const [query2, setQuery] = import_react368.useState("");
440272
- const inputRef = import_react368.useRef(null);
440273
- const handleOpenSearch = import_react368.useCallback(() => {
440224
+ const [query2, setQuery] = import_react367.useState("");
440225
+ const inputRef = import_react367.useRef(null);
440226
+ const handleOpenSearch = import_react367.useCallback(() => {
440274
440227
  openPanel();
440275
440228
  setTimeout(() => inputRef.current?.focus(), 50);
440276
440229
  }, [openPanel]);
440277
440230
  useHotkey("KeyF", handleOpenSearch, { ctrl: true });
440278
- return /* @__PURE__ */ import_react368.default.createElement(UiPanel, {
440231
+ return /* @__PURE__ */ import_react367.default.createElement(UiPanel, {
440279
440232
  padding: 0,
440280
440233
  className: clsx_default(BoardItemsPanel_module_default.panel, isOpen && BoardItemsPanel_module_default.open)
440281
- }, /* @__PURE__ */ import_react368.default.createElement("div", {
440234
+ }, /* @__PURE__ */ import_react367.default.createElement("div", {
440282
440235
  className: BoardItemsPanel_module_default.header
440283
- }, /* @__PURE__ */ import_react368.default.createElement("h3", {
440236
+ }, /* @__PURE__ */ import_react367.default.createElement("h3", {
440284
440237
  className: BoardItemsPanel_module_default.title
440285
- }, "Предметы"), /* @__PURE__ */ import_react368.default.createElement(UiButton, {
440238
+ }, "Предметы"), /* @__PURE__ */ import_react367.default.createElement(UiButton, {
440286
440239
  onClick: closePanel,
440287
440240
  variant: "secondary",
440288
440241
  className: BoardItemsPanel_module_default.close
440289
- }, /* @__PURE__ */ import_react368.default.createElement(Icon, {
440242
+ }, /* @__PURE__ */ import_react367.default.createElement(Icon, {
440290
440243
  iconName: "Close"
440291
- }))), /* @__PURE__ */ import_react368.default.createElement("div", {
440244
+ }))), /* @__PURE__ */ import_react367.default.createElement("div", {
440292
440245
  className: BoardItemsPanel_module_default.search
440293
- }, /* @__PURE__ */ import_react368.default.createElement(Icon, {
440246
+ }, /* @__PURE__ */ import_react367.default.createElement(Icon, {
440294
440247
  iconName: "Search",
440295
440248
  width: 14,
440296
440249
  height: 14,
440297
440250
  className: BoardItemsPanel_module_default.searchIcon
440298
- }), /* @__PURE__ */ import_react368.default.createElement("input", {
440251
+ }), /* @__PURE__ */ import_react367.default.createElement("input", {
440299
440252
  className: BoardItemsPanel_module_default.searchInput,
440300
440253
  placeholder: "Поиск...",
440301
440254
  ref: inputRef,
440302
440255
  value: query2,
440303
440256
  onChange: (e15) => setQuery(e15.target.value)
440304
- }), query2 && /* @__PURE__ */ import_react368.default.createElement("button", {
440257
+ }), query2 && /* @__PURE__ */ import_react367.default.createElement("button", {
440305
440258
  className: BoardItemsPanel_module_default.searchClear,
440306
440259
  onClick: () => setQuery("")
440307
- }, /* @__PURE__ */ import_react368.default.createElement(Icon, {
440260
+ }, /* @__PURE__ */ import_react367.default.createElement(Icon, {
440308
440261
  iconName: "Close",
440309
440262
  width: 12,
440310
440263
  height: 12
440311
- }))), /* @__PURE__ */ import_react368.default.createElement("div", {
440264
+ }))), /* @__PURE__ */ import_react367.default.createElement("div", {
440312
440265
  className: BoardItemsPanel_module_default.content
440313
- }, /* @__PURE__ */ import_react368.default.createElement(BoardItemsList, {
440266
+ }, /* @__PURE__ */ import_react367.default.createElement(BoardItemsList, {
440314
440267
  query: query2
440315
440268
  })));
440316
440269
  }
@@ -440321,7 +440274,7 @@ var SidePanelsContainer_module_default = {
440321
440274
  };
440322
440275
 
440323
440276
  // src/features/SidePanelsContainer/SidePanelsContainer.tsx
440324
- var SidePanelsContainer = import_react369.memo(({ isBlank }) => {
440277
+ var SidePanelsContainer = import_react368.memo(({ isBlank }) => {
440325
440278
  const { toggleSideMenu, isOpen } = useSidePanelContext();
440326
440279
  const { renamingId } = useRenameContext();
440327
440280
  const containerRef = useClickOutside(() => {
@@ -440329,21 +440282,21 @@ var SidePanelsContainer = import_react369.memo(({ isBlank }) => {
440329
440282
  toggleSideMenu();
440330
440283
  }
440331
440284
  });
440332
- return /* @__PURE__ */ import_react369.default.createElement(BoardItemsPanelContextProvider, null, /* @__PURE__ */ import_react369.default.createElement(ShapesPanelContextProvider, null, /* @__PURE__ */ import_react369.default.createElement("div", {
440285
+ return /* @__PURE__ */ import_react368.default.createElement(BoardItemsPanelContextProvider, null, /* @__PURE__ */ import_react368.default.createElement(ShapesPanelContextProvider, null, /* @__PURE__ */ import_react368.default.createElement("div", {
440333
440286
  ref: containerRef,
440334
440287
  className: SidePanelsContainer_module_default.sidePanels
440335
- }, (shouldShow("titlePanel") || !isIframe2()) && /* @__PURE__ */ import_react369.default.createElement(TitlePanel, null), /* @__PURE__ */ import_react369.default.createElement(ViewModeGuard, {
440288
+ }, (shouldShow("titlePanel") || !isIframe2()) && /* @__PURE__ */ import_react368.default.createElement(TitlePanel, null), /* @__PURE__ */ import_react368.default.createElement(ViewModeGuard, {
440336
440289
  iframe: true
440337
- }, /* @__PURE__ */ import_react369.default.createElement("div", {
440290
+ }, /* @__PURE__ */ import_react368.default.createElement("div", {
440338
440291
  className: SidePanelsContainer_module_default.hidingPanels
440339
- }, /* @__PURE__ */ import_react369.default.createElement(SidePanel, null), /* @__PURE__ */ import_react369.default.createElement(ShapesPanel, null), /* @__PURE__ */ import_react369.default.createElement(BoardItemsPanel, null)), /* @__PURE__ */ import_react369.default.createElement(InactiveBoardHidder, null, /* @__PURE__ */ import_react369.default.createElement(ViewModeGuard, {
440292
+ }, /* @__PURE__ */ import_react368.default.createElement(SidePanel, null), /* @__PURE__ */ import_react368.default.createElement(ShapesPanel, null), /* @__PURE__ */ import_react368.default.createElement(BoardItemsPanel, null)), /* @__PURE__ */ import_react368.default.createElement(InactiveBoardHidder, null, /* @__PURE__ */ import_react368.default.createElement(ViewModeGuard, {
440340
440293
  mode: ["edit", "view"]
440341
440294
  }, (interfaceType) => {
440342
440295
  switch (interfaceType) {
440343
440296
  case "view":
440344
- return /* @__PURE__ */ import_react369.default.createElement(ViewToolsPanel, null);
440297
+ return /* @__PURE__ */ import_react368.default.createElement(ViewToolsPanel, null);
440345
440298
  case "edit":
440346
- return /* @__PURE__ */ import_react369.default.createElement(ToolsPanel, null);
440299
+ return /* @__PURE__ */ import_react368.default.createElement(ToolsPanel, null);
440347
440300
  default:
440348
440301
  return null;
440349
440302
  }
@@ -440351,10 +440304,10 @@ var SidePanelsContainer = import_react369.memo(({ isBlank }) => {
440351
440304
  });
440352
440305
  SidePanelsContainer.displayName = "SidePanelsContainer";
440353
440306
  // src/features/TextEditor/TextEditor.tsx
440354
- var import_react372 = __toESM(require_react(), 1);
440307
+ var import_react371 = __toESM(require_react(), 1);
440355
440308
 
440356
440309
  // src/features/TextEditor/Leaf.tsx
440357
- var import_react370 = __toESM(require_react(), 1);
440310
+ var import_react369 = __toESM(require_react(), 1);
440358
440311
  function Leaf2(props) {
440359
440312
  const { attributes, leaf: leaf3, fontSize, isAutoSize, text: text5 } = props;
440360
440313
  let { children } = props;
@@ -440380,26 +440333,26 @@ function Leaf2(props) {
440380
440333
  for (const style3 of styles2) {
440381
440334
  switch (style3) {
440382
440335
  case "bold":
440383
- children = /* @__PURE__ */ import_react370.default.createElement("strong", null, children);
440336
+ children = /* @__PURE__ */ import_react369.default.createElement("strong", null, children);
440384
440337
  break;
440385
440338
  case "italic":
440386
- children = /* @__PURE__ */ import_react370.default.createElement("em", null, children);
440339
+ children = /* @__PURE__ */ import_react369.default.createElement("em", null, children);
440387
440340
  break;
440388
440341
  case "underline":
440389
- children = /* @__PURE__ */ import_react370.default.createElement("u", null, children);
440342
+ children = /* @__PURE__ */ import_react369.default.createElement("u", null, children);
440390
440343
  break;
440391
440344
  case "line-through":
440392
- children = /* @__PURE__ */ import_react370.default.createElement("s", null, children);
440345
+ children = /* @__PURE__ */ import_react369.default.createElement("s", null, children);
440393
440346
  break;
440394
440347
  case "sub":
440395
- children = /* @__PURE__ */ import_react370.default.createElement("sub", null, children);
440348
+ children = /* @__PURE__ */ import_react369.default.createElement("sub", null, children);
440396
440349
  break;
440397
440350
  case "super":
440398
- children = /* @__PURE__ */ import_react370.default.createElement("sup", null, children);
440351
+ children = /* @__PURE__ */ import_react369.default.createElement("sup", null, children);
440399
440352
  break;
440400
440353
  }
440401
440354
  }
440402
- return /* @__PURE__ */ import_react370.default.createElement("span", {
440355
+ return /* @__PURE__ */ import_react369.default.createElement("span", {
440403
440356
  ...attributes,
440404
440357
  style: {
440405
440358
  color: props.text.fontColor,
@@ -440411,7 +440364,7 @@ function Leaf2(props) {
440411
440364
  }
440412
440365
 
440413
440366
  // src/features/TextEditor/Element.tsx
440414
- var import_react371 = __toESM(require_react(), 1);
440367
+ var import_react370 = __toESM(require_react(), 1);
440415
440368
 
440416
440369
  // src/features/TextEditor/TextEditor.module.css
440417
440370
  var TextEditor_module_default = {
@@ -440456,7 +440409,7 @@ function Element4(props) {
440456
440409
  }
440457
440410
  switch (element5.type) {
440458
440411
  case "paragraph":
440459
- return /* @__PURE__ */ import_react371.default.createElement("p", {
440412
+ return /* @__PURE__ */ import_react370.default.createElement("p", {
440460
440413
  ...attributes,
440461
440414
  style: {
440462
440415
  textAlign: props.element.horisontalAlignment,
@@ -440466,7 +440419,7 @@ function Element4(props) {
440466
440419
  }
440467
440420
  }, children);
440468
440421
  case "ul_list":
440469
- return /* @__PURE__ */ import_react371.default.createElement("ul", {
440422
+ return /* @__PURE__ */ import_react370.default.createElement("ul", {
440470
440423
  ...attributes,
440471
440424
  style: {
440472
440425
  textAlign: props.element.horisontalAlignment,
@@ -440476,7 +440429,7 @@ function Element4(props) {
440476
440429
  }
440477
440430
  }, children);
440478
440431
  case "ol_list":
440479
- return /* @__PURE__ */ import_react371.default.createElement("ol", {
440432
+ return /* @__PURE__ */ import_react370.default.createElement("ol", {
440480
440433
  ...attributes,
440481
440434
  style: {
440482
440435
  textAlign: props.element.horisontalAlignment,
@@ -440487,7 +440440,7 @@ function Element4(props) {
440487
440440
  className: getListMarkType2(element5.listLevel || 1)
440488
440441
  }, children);
440489
440442
  case "block-quote":
440490
- return /* @__PURE__ */ import_react371.default.createElement("blockquote", {
440443
+ return /* @__PURE__ */ import_react370.default.createElement("blockquote", {
440491
440444
  ...attributes,
440492
440445
  style: {
440493
440446
  textAlign: props.element.horisontalAlignment,
@@ -440496,7 +440449,7 @@ function Element4(props) {
440496
440449
  }
440497
440450
  }, children);
440498
440451
  case "heading_one":
440499
- return /* @__PURE__ */ import_react371.default.createElement("h1", {
440452
+ return /* @__PURE__ */ import_react370.default.createElement("h1", {
440500
440453
  ...attributes,
440501
440454
  style: {
440502
440455
  textAlign: props.element.horisontalAlignment,
@@ -440505,7 +440458,7 @@ function Element4(props) {
440505
440458
  }
440506
440459
  }, children);
440507
440460
  case "heading_two":
440508
- return /* @__PURE__ */ import_react371.default.createElement("h2", {
440461
+ return /* @__PURE__ */ import_react370.default.createElement("h2", {
440509
440462
  ...attributes,
440510
440463
  style: {
440511
440464
  textAlign: props.element.horisontalAlignment,
@@ -440514,7 +440467,7 @@ function Element4(props) {
440514
440467
  }
440515
440468
  }, children);
440516
440469
  case "heading_three":
440517
- return /* @__PURE__ */ import_react371.default.createElement("h3", {
440470
+ return /* @__PURE__ */ import_react370.default.createElement("h3", {
440518
440471
  ...attributes,
440519
440472
  style: {
440520
440473
  textAlign: props.element.horisontalAlignment,
@@ -440523,7 +440476,7 @@ function Element4(props) {
440523
440476
  }
440524
440477
  }, children);
440525
440478
  case "heading_four":
440526
- return /* @__PURE__ */ import_react371.default.createElement("h4", {
440479
+ return /* @__PURE__ */ import_react370.default.createElement("h4", {
440527
440480
  ...attributes,
440528
440481
  style: {
440529
440482
  textAlign: props.element.horisontalAlignment,
@@ -440532,7 +440485,7 @@ function Element4(props) {
440532
440485
  }
440533
440486
  }, children);
440534
440487
  case "heading_five":
440535
- return /* @__PURE__ */ import_react371.default.createElement("h5", {
440488
+ return /* @__PURE__ */ import_react370.default.createElement("h5", {
440536
440489
  ...attributes,
440537
440490
  style: {
440538
440491
  textAlign: props.element.horisontalAlignment,
@@ -440541,7 +440494,7 @@ function Element4(props) {
440541
440494
  }
440542
440495
  }, children);
440543
440496
  case "code_block":
440544
- return /* @__PURE__ */ import_react371.default.createElement("code", {
440497
+ return /* @__PURE__ */ import_react370.default.createElement("code", {
440545
440498
  ...attributes,
440546
440499
  style: {
440547
440500
  textAlign: props.element.horisontalAlignment,
@@ -440551,7 +440504,7 @@ function Element4(props) {
440551
440504
  }
440552
440505
  }, children);
440553
440506
  case "list_item":
440554
- return /* @__PURE__ */ import_react371.default.createElement("li", {
440507
+ return /* @__PURE__ */ import_react370.default.createElement("li", {
440555
440508
  ...attributes,
440556
440509
  className: TextEditor_module_default.listItem,
440557
440510
  style: {
@@ -440565,7 +440518,7 @@ function Element4(props) {
440565
440518
  }
440566
440519
  }, children);
440567
440520
  default:
440568
- return /* @__PURE__ */ import_react371.default.createElement("span", {
440521
+ return /* @__PURE__ */ import_react370.default.createElement("span", {
440569
440522
  ...attributes,
440570
440523
  style: {
440571
440524
  textAlign: props.element.horisontalAlignment,
@@ -440588,7 +440541,7 @@ function verticalAlignmentToFlex(align2) {
440588
440541
  }
440589
440542
 
440590
440543
  // src/features/TextEditor/TextEditor.tsx
440591
- class TextEditors extends import_react372.default.Component {
440544
+ class TextEditors extends import_react371.default.Component {
440592
440545
  observer = () => {
440593
440546
  this.forceUpdate();
440594
440547
  };
@@ -440607,7 +440560,7 @@ class TextEditors extends import_react372.default.Component {
440607
440560
  if (!text5) {
440608
440561
  return null;
440609
440562
  }
440610
- return /* @__PURE__ */ import_react372.default.createElement(TextEditor, {
440563
+ return /* @__PURE__ */ import_react371.default.createElement(TextEditor, {
440611
440564
  app: this.props.app,
440612
440565
  board: this.props.board,
440613
440566
  text: text5,
@@ -440619,7 +440572,7 @@ class TextEditors extends import_react372.default.Component {
440619
440572
  }
440620
440573
  }
440621
440574
 
440622
- class TextEditor extends import_react372.default.Component {
440575
+ class TextEditor extends import_react371.default.Component {
440623
440576
  static getDerivedStateFromError(error3) {
440624
440577
  console.error("Text Editor error", error3);
440625
440578
  return { hasError: true };
@@ -440648,8 +440601,8 @@ class TextEditor extends import_react372.default.Component {
440648
440601
  isButtonVisible: false,
440649
440602
  isQuoteBtnTooltipVisible: false
440650
440603
  };
440651
- containerRef = import_react372.default.createRef();
440652
- editableRef = import_react372.default.createRef();
440604
+ containerRef = import_react371.default.createRef();
440605
+ editableRef = import_react371.default.createRef();
440653
440606
  updateHyperLinkDataFromSelectionAnchor(editor, isWatchMode) {
440654
440607
  const link2 = editor.getFirstSelectionLink(editor.getSelection());
440655
440608
  if (link2) {
@@ -440830,7 +440783,7 @@ class TextEditor extends import_react372.default.Component {
440830
440783
  const editorMaxWidth = text5.insideOf === "Sticker" ? maxWidth3 : Math.ceil(maxWidth3);
440831
440784
  const showPlaceholder = !text5.editor.includesListNode() && text5.getTextString().length === 0;
440832
440785
  if (this.state.hasError) {
440833
- return /* @__PURE__ */ import_react372.default.createElement("div", {
440786
+ return /* @__PURE__ */ import_react371.default.createElement("div", {
440834
440787
  id: "TextEditor",
440835
440788
  ref: this.containerRef,
440836
440789
  className: "notranslate",
@@ -440862,7 +440815,7 @@ class TextEditor extends import_react372.default.Component {
440862
440815
  }
440863
440816
  }, "An editor error has occured");
440864
440817
  }
440865
- return /* @__PURE__ */ import_react372.default.createElement(import_react372.default.Fragment, null, /* @__PURE__ */ import_react372.default.createElement("div", {
440818
+ return /* @__PURE__ */ import_react371.default.createElement(import_react371.default.Fragment, null, /* @__PURE__ */ import_react371.default.createElement("div", {
440866
440819
  id: "TextEditor",
440867
440820
  ref: this.containerRef,
440868
440821
  className: "notranslate",
@@ -440895,7 +440848,7 @@ class TextEditor extends import_react372.default.Component {
440895
440848
  willChange: "transform",
440896
440849
  transform: "translate3d(0,0,0)"
440897
440850
  }
440898
- }, /* @__PURE__ */ import_react372.default.createElement("div", {
440851
+ }, /* @__PURE__ */ import_react371.default.createElement("div", {
440899
440852
  ref: this.editableRef,
440900
440853
  style: {
440901
440854
  position: "relative",
@@ -440911,14 +440864,14 @@ class TextEditor extends import_react372.default.Component {
440911
440864
  },
440912
440865
  className: clsx_default(TextEditor_module_default.editorContainer, showPlaceholder && TextEditor_module_default.showPlaceholder),
440913
440866
  "data-placeholder": text5.placeholderText
440914
- }, /* @__PURE__ */ import_react372.default.createElement(Slate, {
440867
+ }, /* @__PURE__ */ import_react371.default.createElement(Slate, {
440915
440868
  editor: text5.editor.editor,
440916
440869
  initialValue: text5.getText(),
440917
440870
  key: text5.rtCounter,
440918
440871
  onChange: this.handleSelectionChange
440919
- }, /* @__PURE__ */ import_react372.default.createElement(Editable, {
440872
+ }, /* @__PURE__ */ import_react371.default.createElement(Editable, {
440920
440873
  renderElement: Element4,
440921
- renderLeaf: (props) => /* @__PURE__ */ import_react372.default.createElement(Leaf2, {
440874
+ renderLeaf: (props) => /* @__PURE__ */ import_react371.default.createElement(Leaf2, {
440922
440875
  fontSize: text5.getFontSize(),
440923
440876
  isAutoSize: text5.isAutosize(),
440924
440877
  ...props
@@ -440936,7 +440889,7 @@ class TextEditor extends import_react372.default.Component {
440936
440889
  fontSize: text5.isEmpty() ? `${window.MICROBOARD_CONFIG.DEFAULT_TEXT_STYLES.fontSize}px` : undefined
440937
440890
  },
440938
440891
  autoFocus: this.props.text.getLastClickPoint() ? false : true
440939
- }))), /* @__PURE__ */ import_react372.default.createElement(Icon, {
440892
+ }))), /* @__PURE__ */ import_react371.default.createElement(Icon, {
440940
440893
  iconName: "TextLimitWarning",
440941
440894
  width: this.editableRef.current?.offsetWidth,
440942
440895
  height: this.editableRef.current?.offsetHeight,
@@ -440944,7 +440897,7 @@ class TextEditor extends import_react372.default.Component {
440944
440897
  style: {
440945
440898
  transform: `translate(0px) scale(${editorScale})`
440946
440899
  }
440947
- })), isButtonVisible && buttonPosition && text5.insideOf === "AINode" && /* @__PURE__ */ import_react372.default.createElement("button", {
440900
+ })), isButtonVisible && buttonPosition && text5.insideOf === "AINode" && /* @__PURE__ */ import_react371.default.createElement("button", {
440948
440901
  onMouseEnter: () => this.setState({
440949
440902
  isQuoteBtnTooltipVisible: true
440950
440903
  }),
@@ -440958,15 +440911,15 @@ class TextEditor extends import_react372.default.Component {
440958
440911
  top: buttonPosition.top,
440959
440912
  left: buttonPosition.left
440960
440913
  }
440961
- }, this.state.isQuoteBtnTooltipVisible && /* @__PURE__ */ import_react372.default.createElement("div", {
440914
+ }, this.state.isQuoteBtnTooltipVisible && /* @__PURE__ */ import_react371.default.createElement("div", {
440962
440915
  className: TextEditor_module_default.tooltip
440963
- }, window.MICROBOARD_CONFIG.i18n.t("AIInput.quoteBtnTooltip")), /* @__PURE__ */ import_react372.default.createElement("svg", {
440916
+ }, window.MICROBOARD_CONFIG.i18n.t("AIInput.quoteBtnTooltip")), /* @__PURE__ */ import_react371.default.createElement("svg", {
440964
440917
  width: "16",
440965
440918
  height: "16",
440966
440919
  viewBox: "0 0 12 10",
440967
440920
  fill: "none",
440968
440921
  xmlns: "http://www.w3.org/2000/svg"
440969
- }, /* @__PURE__ */ import_react372.default.createElement("path", {
440922
+ }, /* @__PURE__ */ import_react371.default.createElement("path", {
440970
440923
  d: "M10.9485 1.45275C11.6352 2.18208 12.0039 3.00008 12.0039 4.32608C12.0039 6.65942 10.3659 8.75075 7.98385 9.78475L7.38852 8.86608C9.61185 7.66341 10.0465 6.10275 10.2199 5.11875C9.86185 5.30408 9.39319 5.36875 8.93385 5.32608C7.73119 5.21475 6.78319 4.22741 6.78319 3.00008C6.78319 2.38124 7.02902 1.78775 7.4666 1.35017C7.90419 0.912581 8.49768 0.666748 9.11652 0.666748C9.83185 0.666748 10.5159 0.993415 10.9485 1.45275ZM4.28185 1.45275C4.96852 2.18208 5.33719 3.00008 5.33719 4.32608C5.33719 6.65942 3.69919 8.75075 1.31719 9.78475L0.721854 8.86608C2.94519 7.66341 3.37985 6.10275 3.55319 5.11875C3.19519 5.30408 2.72652 5.36875 2.26719 5.32608C1.06452 5.21475 0.117188 4.22741 0.117188 3.00008C0.117188 2.38124 0.36302 1.78775 0.800605 1.35017C1.23819 0.912581 1.83168 0.666748 2.45052 0.666748C3.16585 0.666748 3.84985 0.993415 4.28252 1.45275H4.28185Z",
440971
440924
  fill: "#696B76"
440972
440925
  }))));
@@ -440974,11 +440927,11 @@ class TextEditor extends import_react372.default.Component {
440974
440927
  }
440975
440928
 
440976
440929
  // src/features/ToastProvider.tsx
440977
- var import_react373 = __toESM(require_react(), 1);
440930
+ var import_react372 = __toESM(require_react(), 1);
440978
440931
  function ToastProvider() {
440979
440932
  const isPhoneScreenCheck = () => matchMedia("screen and (max-width: 640px)").matches;
440980
- const [isPhoneScreen, setIsPhoneScreen] = import_react373.useState(isPhoneScreenCheck);
440981
- import_react373.useEffect(() => {
440933
+ const [isPhoneScreen, setIsPhoneScreen] = import_react372.useState(isPhoneScreenCheck);
440934
+ import_react372.useEffect(() => {
440982
440935
  const setScreen = () => {
440983
440936
  setIsPhoneScreen(isPhoneScreenCheck());
440984
440937
  };
@@ -440987,7 +440940,7 @@ function ToastProvider() {
440987
440940
  window.removeEventListener("resize", setScreen);
440988
440941
  };
440989
440942
  });
440990
- return /* @__PURE__ */ import_react373.default.createElement(Ie, {
440943
+ return /* @__PURE__ */ import_react372.default.createElement(Ie, {
440991
440944
  containerStyle: isPhoneScreen ? {
440992
440945
  left: 10,
440993
440946
  top: 10,
@@ -441001,7 +440954,7 @@ function ToastProvider() {
441001
440954
  var import_react405 = __toESM(require_react(), 1);
441002
440955
 
441003
440956
  // src/entities/comments/CommentsPanel/CommentsPanelContext.tsx
441004
- var import_react374 = __toESM(require_react(), 1);
440957
+ var import_react373 = __toESM(require_react(), 1);
441005
440958
  var CommentsPanelContext = createStrictContext();
441006
440959
  function useCommentsPanelContext() {
441007
440960
  return useStrictContext(CommentsPanelContext);
@@ -441009,8 +440962,8 @@ function useCommentsPanelContext() {
441009
440962
  var CommentsPanelContextProvider = ({
441010
440963
  children
441011
440964
  }) => {
441012
- const [isPanelOpen, setIsPanelOpen] = import_react374.useState(false);
441013
- return /* @__PURE__ */ import_react374.default.createElement(CommentsPanelContext.Provider, {
440965
+ const [isPanelOpen, setIsPanelOpen] = import_react373.useState(false);
440966
+ return /* @__PURE__ */ import_react373.default.createElement(CommentsPanelContext.Provider, {
441014
440967
  value: {
441015
440968
  isPanelOpen,
441016
440969
  setIsPanelOpen
@@ -441019,20 +440972,20 @@ var CommentsPanelContextProvider = ({
441019
440972
  };
441020
440973
 
441021
440974
  // src/features/UserPanel/UserPic/UserPic.tsx
441022
- var import_react378 = __toESM(require_react(), 1);
440975
+ var import_react377 = __toESM(require_react(), 1);
441023
440976
 
441024
440977
  // src/features/Presence/BringToMe/BringToMe.tsx
441025
- var import_react376 = __toESM(require_react(), 1);
440978
+ var import_react375 = __toESM(require_react(), 1);
441026
440979
 
441027
440980
  // src/features/Presence/PresenceUsers/EyeIcon.tsx
441028
- var import_react375 = __toESM(require_react(), 1);
441029
- var EyeIcon = ({ fill: fill3 = "#14151A" }) => /* @__PURE__ */ import_react375.default.createElement("svg", {
440981
+ var import_react374 = __toESM(require_react(), 1);
440982
+ var EyeIcon = ({ fill: fill3 = "#14151A" }) => /* @__PURE__ */ import_react374.default.createElement("svg", {
441030
440983
  width: "16",
441031
440984
  height: "16",
441032
440985
  viewBox: "0 0 16 16",
441033
440986
  fill: "none",
441034
440987
  xmlns: "http://www.w3.org/2000/svg"
441035
- }, /* @__PURE__ */ import_react375.default.createElement("path", {
440988
+ }, /* @__PURE__ */ import_react374.default.createElement("path", {
441036
440989
  d: "M0.787109 8C1.41378 4.58667 4.40511 2 7.99978 2C11.5944 2 14.5851 4.58667 15.2124 8C14.5858 11.4133 11.5944 14 7.99978 14C4.40511 14 1.41444 11.4133 0.787109 8V8ZM7.99978 11.3333C8.88383 11.3333 9.73168 10.9821 10.3568 10.357C10.9819 9.7319 11.3331 8.88406 11.3331 8C11.3331 7.11595 10.9819 6.2681 10.3568 5.64298C9.73168 5.01786 8.88383 4.66667 7.99978 4.66667C7.11572 4.66667 6.26788 5.01786 5.64275 5.64298C5.01763 6.2681 4.66644 7.11595 4.66644 8C4.66644 8.88406 5.01763 9.7319 5.64275 10.357C6.26788 10.9821 7.11572 11.3333 7.99978 11.3333ZM7.99978 10C7.46934 10 6.96064 9.78929 6.58556 9.41421C6.21049 9.03914 5.99978 8.53043 5.99978 8C5.99978 7.46957 6.21049 6.96086 6.58556 6.58579C6.96064 6.21071 7.46934 6 7.99978 6C8.53021 6 9.03892 6.21071 9.41399 6.58579C9.78906 6.96086 9.99978 7.46957 9.99978 8C9.99978 8.53043 9.78906 9.03914 9.41399 9.41421C9.03892 9.78929 8.53021 10 7.99978 10Z",
441037
440990
  fill: fill3
441038
440991
  }));
@@ -441105,11 +441058,11 @@ var UserActionsDropdown = ({
441105
441058
  userId,
441106
441059
  onClose
441107
441060
  }) => {
441108
- const dropdownRef = import_react376.useRef(null);
441061
+ const dropdownRef = import_react375.useRef(null);
441109
441062
  const { board } = useAppContext();
441110
441063
  const { t: t11 } = useTranslation();
441111
441064
  const notifyPosition = window.innerWidth < 768 ? "top-center" : "bottom-center";
441112
- import_react376.useEffect(() => {
441065
+ import_react375.useEffect(() => {
441113
441066
  const handleClickOutside = (event) => {
441114
441067
  if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {
441115
441068
  onClose();
@@ -441147,10 +441100,10 @@ var UserActionsDropdown = ({
441147
441100
  });
441148
441101
  onClose();
441149
441102
  };
441150
- return /* @__PURE__ */ import_react376.default.createElement("div", {
441103
+ return /* @__PURE__ */ import_react375.default.createElement("div", {
441151
441104
  ref: dropdownRef,
441152
441105
  className: BringToMe_module_default.userActionsDropdown
441153
- }, /* @__PURE__ */ import_react376.default.createElement(UiButton, {
441106
+ }, /* @__PURE__ */ import_react375.default.createElement(UiButton, {
441154
441107
  className: BringToMe_module_default.dropdownButton,
441155
441108
  size: "sm",
441156
441109
  radius: "md",
@@ -441159,12 +441112,12 @@ var UserActionsDropdown = ({
441159
441112
  onMouseDown: (ev) => {
441160
441113
  ev.stopPropagation();
441161
441114
  }
441162
- }, /* @__PURE__ */ import_react376.default.createElement(Icon, {
441115
+ }, /* @__PURE__ */ import_react375.default.createElement(Icon, {
441163
441116
  iconName: "FollowUser",
441164
441117
  width: 16,
441165
441118
  height: 16,
441166
441119
  className: BringToMe_module_default.icon
441167
- }), /* @__PURE__ */ import_react376.default.createElement("span", null, t11("presence.followUser"))), /* @__PURE__ */ import_react376.default.createElement(UiButton, {
441120
+ }), /* @__PURE__ */ import_react375.default.createElement("span", null, t11("presence.followUser"))), /* @__PURE__ */ import_react375.default.createElement(UiButton, {
441168
441121
  className: BringToMe_module_default.dropdownButton,
441169
441122
  size: "sm",
441170
441123
  radius: "md",
@@ -441173,22 +441126,22 @@ var UserActionsDropdown = ({
441173
441126
  onMouseDown: (ev) => {
441174
441127
  ev.stopPropagation();
441175
441128
  }
441176
- }, /* @__PURE__ */ import_react376.default.createElement(Icon, {
441129
+ }, /* @__PURE__ */ import_react375.default.createElement(Icon, {
441177
441130
  iconName: "BringToMe",
441178
441131
  width: 16,
441179
441132
  height: 16,
441180
441133
  className: BringToMe_module_default.icon
441181
- }), /* @__PURE__ */ import_react376.default.createElement("span", null, t11("presence.bringToMe"))));
441134
+ }), /* @__PURE__ */ import_react375.default.createElement("span", null, t11("presence.bringToMe"))));
441182
441135
  };
441183
441136
  var BringToMe = ({ followers, users }) => {
441184
441137
  const { board } = useAppContext();
441185
441138
  const { t: t11 } = useTranslation();
441186
- const modalRef = import_react376.useRef(null);
441187
- const [trackedUser, setIsTrackedUser] = import_react376.useState();
441188
- const [openDropdownUserId, setOpenDropdownUserId] = import_react376.useState(null);
441189
- const [searchTerm, setSearchTerm] = import_react376.useState("");
441139
+ const modalRef = import_react375.useRef(null);
441140
+ const [trackedUser, setIsTrackedUser] = import_react375.useState();
441141
+ const [openDropdownUserId, setOpenDropdownUserId] = import_react375.useState(null);
441142
+ const [searchTerm, setSearchTerm] = import_react375.useState("");
441190
441143
  const notifyPosition = window.innerWidth < 768 ? "top-center" : "bottom-center";
441191
- import_react376.useEffect(() => {
441144
+ import_react375.useEffect(() => {
441192
441145
  const observer = (presence) => {
441193
441146
  setIsTrackedUser(presence.trackedUser || null);
441194
441147
  };
@@ -441197,18 +441150,18 @@ var BringToMe = ({ followers, users }) => {
441197
441150
  board.presence.subject.unsubscribe(observer);
441198
441151
  };
441199
441152
  });
441200
- const filteredUsers = import_react376.useMemo(() => {
441153
+ const filteredUsers = import_react375.useMemo(() => {
441201
441154
  return users.filter((user) => user.name.toLowerCase().includes(searchTerm.toLowerCase()));
441202
441155
  }, [users, searchTerm]);
441203
- return /* @__PURE__ */ import_react376.default.createElement("div", {
441156
+ return /* @__PURE__ */ import_react375.default.createElement("div", {
441204
441157
  className: PresenceUsers_module_default.shareModal,
441205
441158
  ref: modalRef
441206
- }, /* @__PURE__ */ import_react376.default.createElement("div", {
441159
+ }, /* @__PURE__ */ import_react375.default.createElement("div", {
441207
441160
  className: PresenceUsers_module_default.shareModalSearch
441208
- }, /* @__PURE__ */ import_react376.default.createElement(Input, {
441161
+ }, /* @__PURE__ */ import_react375.default.createElement(Input, {
441209
441162
  id: "searchNicknameId",
441210
441163
  placeholder: t11("presence.searchByName"),
441211
- prefixIcon: /* @__PURE__ */ import_react376.default.createElement(Icon, {
441164
+ prefixIcon: /* @__PURE__ */ import_react375.default.createElement(Icon, {
441212
441165
  iconName: "Search",
441213
441166
  height: 16,
441214
441167
  width: 16,
@@ -441221,34 +441174,34 @@ var BringToMe = ({ followers, users }) => {
441221
441174
  setSearchTerm(ev.target.value);
441222
441175
  setOpenDropdownUserId(null);
441223
441176
  }
441224
- })), /* @__PURE__ */ import_react376.default.createElement("div", {
441177
+ })), /* @__PURE__ */ import_react375.default.createElement("div", {
441225
441178
  className: PresenceUsers_module_default.shareList
441226
- }, filteredUsers.map((user) => /* @__PURE__ */ import_react376.default.createElement("div", {
441179
+ }, filteredUsers.map((user) => /* @__PURE__ */ import_react375.default.createElement("div", {
441227
441180
  key: user.id,
441228
441181
  className: `${PresenceUsers_module_default.shareUser} ${BringToMe_module_default.userListItem}`
441229
- }, user?.avatar ? /* @__PURE__ */ import_react376.default.createElement("img", {
441182
+ }, user?.avatar ? /* @__PURE__ */ import_react375.default.createElement("img", {
441230
441183
  src: user.avatar,
441231
441184
  className: clsx_default(PresenceUsers_module_default.shareUserPic, user.idle && BringToMe_module_default.idleAvatar),
441232
441185
  style: {
441233
441186
  border: `1px solid ${trackedUser && trackedUser.userId === user.id ? user.color : "transparent"}`
441234
441187
  }
441235
- }) : /* @__PURE__ */ import_react376.default.createElement("div", {
441188
+ }) : /* @__PURE__ */ import_react375.default.createElement("div", {
441236
441189
  className: clsx_default(PresenceUsers_module_default.shareUserPic, user.idle && BringToMe_module_default.idleAvatar),
441237
441190
  style: {
441238
441191
  backgroundColor: rgbToRgba(user.color, 0.5),
441239
441192
  border: `1px solid ${trackedUser && trackedUser.userId === user.id ? user.color : "transparent"}`
441240
441193
  }
441241
- }, user.name.charAt(0).toUpperCase()), trackedUser && trackedUser.userId === user.id && /* @__PURE__ */ import_react376.default.createElement("div", {
441194
+ }, user.name.charAt(0).toUpperCase()), trackedUser && trackedUser.userId === user.id && /* @__PURE__ */ import_react375.default.createElement("div", {
441242
441195
  className: PresenceUsers_module_default.shareEye
441243
- }, /* @__PURE__ */ import_react376.default.createElement(EyeIcon, null)), /* @__PURE__ */ import_react376.default.createElement("div", {
441196
+ }, /* @__PURE__ */ import_react375.default.createElement(EyeIcon, null)), /* @__PURE__ */ import_react375.default.createElement("div", {
441244
441197
  className: clsx_default(user.idle && BringToMe_module_default.idleHide)
441245
- }, /* @__PURE__ */ import_react376.default.createElement("p", {
441198
+ }, /* @__PURE__ */ import_react375.default.createElement("p", {
441246
441199
  className: BringToMe_module_default.nickname
441247
- }, user.name), user.idle && /* @__PURE__ */ import_react376.default.createElement("p", {
441200
+ }, user.name), user.idle && /* @__PURE__ */ import_react375.default.createElement("p", {
441248
441201
  className: BringToMe_module_default.idle
441249
- }, t11("presence.idle"))), /* @__PURE__ */ import_react376.default.createElement("div", {
441202
+ }, t11("presence.idle"))), /* @__PURE__ */ import_react375.default.createElement("div", {
441250
441203
  className: BringToMe_module_default.userActionsContainer
441251
- }, /* @__PURE__ */ import_react376.default.createElement(UiButton, {
441204
+ }, /* @__PURE__ */ import_react375.default.createElement(UiButton, {
441252
441205
  className: BringToMe_module_default.btn,
441253
441206
  size: "md",
441254
441207
  radius: "md",
@@ -441260,20 +441213,20 @@ var BringToMe = ({ followers, users }) => {
441260
441213
  onClick: (ev) => {
441261
441214
  ev.stopPropagation();
441262
441215
  }
441263
- }, /* @__PURE__ */ import_react376.default.createElement(Icon, {
441216
+ }, /* @__PURE__ */ import_react375.default.createElement(Icon, {
441264
441217
  iconName: "ThreeDots",
441265
441218
  width: 20,
441266
441219
  height: 20
441267
- })), openDropdownUserId === user.id && /* @__PURE__ */ import_react376.default.createElement(UserActionsDropdown, {
441220
+ })), openDropdownUserId === user.id && /* @__PURE__ */ import_react375.default.createElement(UserActionsDropdown, {
441268
441221
  userId: user.id,
441269
441222
  onClose: () => setOpenDropdownUserId(null)
441270
- }))))), filteredUsers.length === 0 && searchTerm && /* @__PURE__ */ import_react376.default.createElement("div", {
441223
+ }))))), filteredUsers.length === 0 && searchTerm && /* @__PURE__ */ import_react375.default.createElement("div", {
441271
441224
  className: BringToMe_module_default.noResults
441272
- }, /* @__PURE__ */ import_react376.default.createElement("span", null, t11("presence.noUsersFound")), /* @__PURE__ */ import_react376.default.createElement("p", {
441225
+ }, /* @__PURE__ */ import_react375.default.createElement("span", null, t11("presence.noUsersFound")), /* @__PURE__ */ import_react375.default.createElement("p", {
441273
441226
  className: BringToMe_module_default.noResultsTerm
441274
- }, '"', searchTerm, '"'), /* @__PURE__ */ import_react376.default.createElement("span", null, t11("presence.noUsersFoundPostfix"))), /* @__PURE__ */ import_react376.default.createElement("div", {
441227
+ }, '"', searchTerm, '"'), /* @__PURE__ */ import_react375.default.createElement("span", null, t11("presence.noUsersFoundPostfix"))), /* @__PURE__ */ import_react375.default.createElement("div", {
441275
441228
  className: BringToMe_module_default.btns
441276
- }, /* @__PURE__ */ import_react376.default.createElement(UiButton, {
441229
+ }, /* @__PURE__ */ import_react375.default.createElement(UiButton, {
441277
441230
  size: "md",
441278
441231
  className: BringToMe_module_default.btnBring,
441279
441232
  onClick: () => {
@@ -441298,7 +441251,7 @@ var BringToMe = ({ followers, users }) => {
441298
441251
  });
441299
441252
  }
441300
441253
  }
441301
- }, t11("presence.bringToMe")), followers.length > 0 && /* @__PURE__ */ import_react376.default.createElement(UiButton, {
441254
+ }, t11("presence.bringToMe")), followers.length > 0 && /* @__PURE__ */ import_react375.default.createElement(UiButton, {
441302
441255
  className: BringToMe_module_default.btnStop,
441303
441256
  variant: "secondary",
441304
441257
  size: "md",
@@ -441310,18 +441263,18 @@ var BringToMe = ({ followers, users }) => {
441310
441263
  users: followers.map((follower) => follower.userId)
441311
441264
  });
441312
441265
  }
441313
- }, /* @__PURE__ */ import_react376.default.createElement(Icon, {
441266
+ }, /* @__PURE__ */ import_react375.default.createElement(Icon, {
441314
441267
  iconName: "EyeDashed",
441315
441268
  width: 16,
441316
441269
  height: 16,
441317
441270
  style: { color: "#696B76" }
441318
- }), /* @__PURE__ */ import_react376.default.createElement("span", {
441271
+ }), /* @__PURE__ */ import_react375.default.createElement("span", {
441319
441272
  className: BringToMe_module_default.text
441320
441273
  }, `${t11("presence.stop")} ${followers.length} ${followers?.length > 1 ? t11("presence.followers") : t11("presence.follower")}`))));
441321
441274
  };
441322
441275
 
441323
441276
  // src/features/UserPanel/UserDropdown/UserDropdown.tsx
441324
- var import_react377 = __toESM(require_react(), 1);
441277
+ var import_react376 = __toESM(require_react(), 1);
441325
441278
  var UserDropDown = ({
441326
441279
  setIsDropdownOpen,
441327
441280
  isOpen,
@@ -441340,26 +441293,26 @@ var UserDropDown = ({
441340
441293
  if (!isOpen) {
441341
441294
  return null;
441342
441295
  }
441343
- return /* @__PURE__ */ import_react377.default.createElement("div", {
441296
+ return /* @__PURE__ */ import_react376.default.createElement("div", {
441344
441297
  className: UserPanel_module_default.dropdownWrapper,
441345
441298
  ref: dropdownRef,
441346
441299
  style: { top: customTop }
441347
- }, email && /* @__PURE__ */ import_react377.default.createElement("div", {
441300
+ }, email && /* @__PURE__ */ import_react376.default.createElement("div", {
441348
441301
  className: UserPanel_module_default.userInfo
441349
- }, /* @__PURE__ */ import_react377.default.createElement(UserAvatar, {
441302
+ }, /* @__PURE__ */ import_react376.default.createElement(UserAvatar, {
441350
441303
  src: account.info?.avatar,
441351
441304
  width: 40,
441352
441305
  height: 40
441353
- }), /* @__PURE__ */ import_react377.default.createElement("p", {
441306
+ }), /* @__PURE__ */ import_react376.default.createElement("p", {
441354
441307
  className: UserPanel_module_default.userName
441355
- }, email)), /* @__PURE__ */ import_react377.default.createElement("div", {
441308
+ }, email)), /* @__PURE__ */ import_react376.default.createElement("div", {
441356
441309
  className: UserPanel_module_default.dropdownBtns
441357
- }, buttons.filter(import_react377.default.isValidElement).map((button, index4) => {
441358
- return import_react377.default.cloneElement(button, {
441310
+ }, buttons.filter(import_react376.default.isValidElement).map((button, index4) => {
441311
+ return import_react376.default.cloneElement(button, {
441359
441312
  className: UserPanel_module_default.dropdownBtn,
441360
441313
  key: index4
441361
441314
  });
441362
- }), presenceUsers.length > 0 && /* @__PURE__ */ import_react377.default.createElement(BringToMe, {
441315
+ }), presenceUsers.length > 0 && /* @__PURE__ */ import_react376.default.createElement(BringToMe, {
441363
441316
  followers,
441364
441317
  users: presenceUsers
441365
441318
  })));
@@ -441384,7 +441337,7 @@ var UserPic = ({ ...props }) => {
441384
441337
  const { t: t11 } = useTranslation();
441385
441338
  const { board } = useAppContext();
441386
441339
  const { setIsPanelOpen } = useCommentsPanelContext();
441387
- const userPanelRef = import_react378.useRef(null);
441340
+ const userPanelRef = import_react377.useRef(null);
441388
441341
  const account = useAccount();
441389
441342
  const { openModal: openModal2 } = useUiModalContext();
441390
441343
  const navigate = useNavigate();
@@ -441415,7 +441368,7 @@ var UserPic = ({ ...props }) => {
441415
441368
  ev.stopPropagation();
441416
441369
  navigate("/admin");
441417
441370
  };
441418
- return /* @__PURE__ */ import_react378.default.createElement(import_react378.default.Fragment, null, /* @__PURE__ */ import_react378.default.createElement("div", {
441371
+ return /* @__PURE__ */ import_react377.default.createElement(import_react377.default.Fragment, null, /* @__PURE__ */ import_react377.default.createElement("div", {
441419
441372
  className: UserPanel_module_default.userPicWrapper,
441420
441373
  ref: userPanelRef,
441421
441374
  onClick: (event) => {
@@ -441428,14 +441381,14 @@ var UserPic = ({ ...props }) => {
441428
441381
  setIsPanelOpen(false);
441429
441382
  }
441430
441383
  }
441431
- }, /* @__PURE__ */ import_react378.default.createElement(UserAvatar, {
441384
+ }, /* @__PURE__ */ import_react377.default.createElement(UserAvatar, {
441432
441385
  src: account.info?.avatar,
441433
441386
  isOwner,
441434
441387
  tooltip: !props.isDropdownOpen,
441435
441388
  name: account.info?.name
441436
- }), /* @__PURE__ */ import_react378.default.createElement(FollowingUsersCount, {
441389
+ }), /* @__PURE__ */ import_react377.default.createElement(FollowingUsersCount, {
441437
441390
  followers: props.followers
441438
- })), /* @__PURE__ */ import_react378.default.createElement(UserDropDown, {
441391
+ })), /* @__PURE__ */ import_react377.default.createElement(UserDropDown, {
441439
441392
  openerRef: userPanelRef,
441440
441393
  isOpen: props.isDropdownOpen,
441441
441394
  setIsDropdownOpen: props.setIsDropdownOpen,
@@ -441443,67 +441396,67 @@ var UserPic = ({ ...props }) => {
441443
441396
  followers: props.followers,
441444
441397
  presenceUsers: props.presenceUsers,
441445
441398
  buttons: [
441446
- /* @__PURE__ */ import_react378.default.createElement(UiButton, {
441399
+ /* @__PURE__ */ import_react377.default.createElement(UiButton, {
441447
441400
  type: "button",
441448
441401
  key: "userDropDown1",
441449
441402
  onClick: handlePlanModalOpen,
441450
441403
  variant: "ghost",
441451
441404
  size: "lg"
441452
- }, /* @__PURE__ */ import_react378.default.createElement(Icon, {
441405
+ }, /* @__PURE__ */ import_react377.default.createElement(Icon, {
441453
441406
  iconName: "ArrowUpCircle",
441454
441407
  width: 20,
441455
441408
  height: 20
441456
- }), " ", /* @__PURE__ */ import_react378.default.createElement("span", {
441409
+ }), " ", /* @__PURE__ */ import_react377.default.createElement("span", {
441457
441410
  className: UserPanel_module_default.userDropDownButton
441458
441411
  }, t11("userPlan.upgradePlan"))),
441459
- /* @__PURE__ */ import_react378.default.createElement(UiButton, {
441412
+ /* @__PURE__ */ import_react377.default.createElement(UiButton, {
441460
441413
  type: "button",
441461
441414
  key: "userDropDown2",
441462
441415
  onClick: handleOpenProfileSettings,
441463
441416
  variant: "ghost",
441464
441417
  size: "lg"
441465
- }, /* @__PURE__ */ import_react378.default.createElement(Icon, {
441418
+ }, /* @__PURE__ */ import_react377.default.createElement(Icon, {
441466
441419
  width: 20,
441467
441420
  height: 20,
441468
441421
  iconName: "human"
441469
- }), " ", /* @__PURE__ */ import_react378.default.createElement("span", {
441422
+ }), " ", /* @__PURE__ */ import_react377.default.createElement("span", {
441470
441423
  className: UserPanel_module_default.userDropDownButton
441471
441424
  }, t11("profile.title"))),
441472
- /* @__PURE__ */ import_react378.default.createElement(UiButton, {
441425
+ /* @__PURE__ */ import_react377.default.createElement(UiButton, {
441473
441426
  type: "button",
441474
441427
  key: "userDropDown2",
441475
441428
  onClick: handleOpenSupport,
441476
441429
  variant: "ghost",
441477
441430
  size: "lg"
441478
- }, /* @__PURE__ */ import_react378.default.createElement(Icon, {
441431
+ }, /* @__PURE__ */ import_react377.default.createElement(Icon, {
441479
441432
  width: 20,
441480
441433
  height: 20,
441481
441434
  iconName: "support"
441482
- }), " ", /* @__PURE__ */ import_react378.default.createElement("span", {
441435
+ }), " ", /* @__PURE__ */ import_react377.default.createElement("span", {
441483
441436
  className: UserPanel_module_default.userDropDownButton
441484
441437
  }, t11("profile.support"))),
441485
- /* @__PURE__ */ import_react378.default.createElement(ComponentRolesGuard, {
441438
+ /* @__PURE__ */ import_react377.default.createElement(ComponentRolesGuard, {
441486
441439
  allowedRoles: ["ADMIN" /* ADMIN */]
441487
- }, /* @__PURE__ */ import_react378.default.createElement(UiButton, {
441440
+ }, /* @__PURE__ */ import_react377.default.createElement(UiButton, {
441488
441441
  type: "button",
441489
441442
  key: "userDropDown3",
441490
441443
  onClick: handleOpenAdminPage,
441491
441444
  variant: "ghost",
441492
441445
  size: "lg"
441493
- }, /* @__PURE__ */ import_react378.default.createElement(Icon, {
441446
+ }, /* @__PURE__ */ import_react377.default.createElement(Icon, {
441494
441447
  width: 20,
441495
441448
  height: 20,
441496
441449
  iconName: "Admin"
441497
- }), " ", /* @__PURE__ */ import_react378.default.createElement("span", {
441450
+ }), " ", /* @__PURE__ */ import_react377.default.createElement("span", {
441498
441451
  className: UserPanel_module_default.userDropDownButton
441499
441452
  }, t11("profile.adminPanel")))),
441500
- /* @__PURE__ */ import_react378.default.createElement(UiButton, {
441453
+ /* @__PURE__ */ import_react377.default.createElement(UiButton, {
441501
441454
  type: "button",
441502
441455
  key: "userDropDown4",
441503
441456
  onClick: handleLogout,
441504
441457
  variant: "ghost",
441505
441458
  size: "lg"
441506
- }, /* @__PURE__ */ import_react378.default.createElement(Logout, null), /* @__PURE__ */ import_react378.default.createElement("span", {
441459
+ }, /* @__PURE__ */ import_react377.default.createElement(Logout, null), /* @__PURE__ */ import_react377.default.createElement("span", {
441507
441460
  className: UserPanel_module_default.userDropDownButton
441508
441461
  }, t11("profile.logout")))
441509
441462
  ]
@@ -441511,18 +441464,18 @@ var UserPic = ({ ...props }) => {
441511
441464
  };
441512
441465
 
441513
441466
  // src/features/Presence/PresenceUsers/PresenceUsers.tsx
441514
- var import_react380 = __toESM(require_react(), 1);
441467
+ var import_react379 = __toESM(require_react(), 1);
441515
441468
 
441516
441469
  // src/features/Presence/PresenceUsers/PresenceUserAvatar.tsx
441517
- var import_react379 = __toESM(require_react(), 1);
441470
+ var import_react378 = __toESM(require_react(), 1);
441518
441471
  var TippySvg = () => {
441519
- return /* @__PURE__ */ import_react379.default.createElement("svg", {
441472
+ return /* @__PURE__ */ import_react378.default.createElement("svg", {
441520
441473
  width: "14",
441521
441474
  height: "4",
441522
441475
  viewBox: "0 0 14 4",
441523
441476
  fill: "none",
441524
441477
  xmlns: "http://www.w3.org/2000/svg"
441525
- }, /* @__PURE__ */ import_react379.default.createElement("path", {
441478
+ }, /* @__PURE__ */ import_react378.default.createElement("path", {
441526
441479
  d: "M6.9372 0C6.9372 0 3.40535 3.99848 0.0980963 3.99963C-1.46344 4.00017 16.1695 4.00007 13.7763 3.99963C10.2587 3.99898 6.9372 0 6.9372 0Z",
441527
441480
  fill: "#0B0C0E"
441528
441481
  }));
@@ -441535,35 +441488,35 @@ var PresenceUserAvatar = ({
441535
441488
  }) => {
441536
441489
  const isTracked = trackedUser?.userId === user.id;
441537
441490
  const { t: t11 } = useTranslation();
441538
- return /* @__PURE__ */ import_react379.default.createElement("div", {
441491
+ return /* @__PURE__ */ import_react378.default.createElement("div", {
441539
441492
  className: PresenceUsers_module_default.userWrapper,
441540
441493
  style: { "--index": index4 },
441541
441494
  onClick
441542
- }, /* @__PURE__ */ import_react379.default.createElement("div", {
441495
+ }, /* @__PURE__ */ import_react378.default.createElement("div", {
441543
441496
  className: clsx_default(PresenceUsers_module_default.userAvatar, isTracked ? PresenceUsers_module_default.selectedAvatar : "", user.idle && !isTracked ? PresenceUsers_module_default.idle : ""),
441544
441497
  style: {
441545
441498
  borderColor: user.color,
441546
441499
  backgroundColor: user.avatar ? undefined : rgbToRgba(user.color, 0.5)
441547
441500
  }
441548
- }, user.avatar ? /* @__PURE__ */ import_react379.default.createElement("img", {
441501
+ }, user.avatar ? /* @__PURE__ */ import_react378.default.createElement("img", {
441549
441502
  src: user.avatar,
441550
441503
  alt: user.name
441551
- }) : user.name.charAt(0), isTracked && /* @__PURE__ */ import_react379.default.createElement("div", {
441504
+ }) : user.name.charAt(0), isTracked && /* @__PURE__ */ import_react378.default.createElement("div", {
441552
441505
  className: PresenceUsers_module_default.trackedUserOverlay,
441553
441506
  style: {
441554
441507
  backgroundColor: rgbToRgba(user.color, 0.5) || user.color
441555
441508
  }
441556
- }, /* @__PURE__ */ import_react379.default.createElement(EyeIcon, null))), /* @__PURE__ */ import_react379.default.createElement("div", {
441509
+ }, /* @__PURE__ */ import_react378.default.createElement(EyeIcon, null))), /* @__PURE__ */ import_react378.default.createElement("div", {
441557
441510
  className: PresenceUsers_module_default.tooltip
441558
- }, user.name === "Anonymous" ? t11("presence.anonymous") : user.name), /* @__PURE__ */ import_react379.default.createElement("div", {
441511
+ }, user.name === "Anonymous" ? t11("presence.anonymous") : user.name), /* @__PURE__ */ import_react378.default.createElement("div", {
441559
441512
  className: PresenceUsers_module_default.tippy
441560
- }, /* @__PURE__ */ import_react379.default.createElement(TippySvg, null)));
441513
+ }, /* @__PURE__ */ import_react378.default.createElement(TippySvg, null)));
441561
441514
  };
441562
441515
 
441563
441516
  // src/features/Presence/PresenceUsers/PresenceUsers.tsx
441564
441517
  var FollowingUsersCount = ({ followers }) => {
441565
441518
  const { t: t11 } = useTranslation();
441566
- const [isOpen, setIsOpen] = import_react380.useState(false);
441519
+ const [isOpen, setIsOpen] = import_react379.useState(false);
441567
441520
  const account = useAccount();
441568
441521
  const tooltipRef = useClickOutside(() => {
441569
441522
  setIsOpen(false);
@@ -441571,9 +441524,9 @@ var FollowingUsersCount = ({ followers }) => {
441571
441524
  if (!followers.length) {
441572
441525
  return null;
441573
441526
  }
441574
- return /* @__PURE__ */ import_react380.default.createElement("div", {
441527
+ return /* @__PURE__ */ import_react379.default.createElement("div", {
441575
441528
  className: PresenceUsers_module_default.followingCounter
441576
- }, /* @__PURE__ */ import_react380.default.createElement("div", {
441529
+ }, /* @__PURE__ */ import_react379.default.createElement("div", {
441577
441530
  className: PresenceUsers_module_default.followingCounterIcon,
441578
441531
  onMouseDown: (ev) => {
441579
441532
  ev.stopPropagation();
@@ -441584,20 +441537,20 @@ var FollowingUsersCount = ({ followers }) => {
441584
441537
  }
441585
441538
  setIsOpen(!isOpen);
441586
441539
  }
441587
- }, /* @__PURE__ */ import_react380.default.createElement(EyeIcon, {
441540
+ }, /* @__PURE__ */ import_react379.default.createElement(EyeIcon, {
441588
441541
  fill: "white"
441589
- }), /* @__PURE__ */ import_react380.default.createElement("span", null, followers.length)), /* @__PURE__ */ import_react380.default.createElement("div", {
441542
+ }), /* @__PURE__ */ import_react379.default.createElement("span", null, followers.length)), /* @__PURE__ */ import_react379.default.createElement("div", {
441590
441543
  ref: tooltipRef,
441591
441544
  className: clsx_default(PresenceUsers_module_default.followersTooltip, isOpen && PresenceUsers_module_default.followersVisible)
441592
- }, /* @__PURE__ */ import_react380.default.createElement("p", {
441545
+ }, /* @__PURE__ */ import_react379.default.createElement("p", {
441593
441546
  className: PresenceUsers_module_default.followersMe
441594
- }, account.info?.email, " ", t11("presence.(you)")), /* @__PURE__ */ import_react380.default.createElement("span", {
441547
+ }, account.info?.email, " ", t11("presence.(you)")), /* @__PURE__ */ import_react379.default.createElement("span", {
441595
441548
  className: PresenceUsers_module_default.followersBoard
441596
- }, t11("presence.yourBoard")), /* @__PURE__ */ import_react380.default.createElement("div", {
441549
+ }, t11("presence.yourBoard")), /* @__PURE__ */ import_react379.default.createElement("div", {
441597
441550
  className: PresenceUsers_module_default.followersHr
441598
- }), /* @__PURE__ */ import_react380.default.createElement("div", {
441551
+ }), /* @__PURE__ */ import_react379.default.createElement("div", {
441599
441552
  className: PresenceUsers_module_default.followersList
441600
- }, followers.map((follower) => /* @__PURE__ */ import_react380.default.createElement("span", {
441553
+ }, followers.map((follower) => /* @__PURE__ */ import_react379.default.createElement("span", {
441601
441554
  key: follower.userId,
441602
441555
  className: PresenceUsers_module_default.followersItem
441603
441556
  }, follower.nickname, " ", t11("presence.following"))))));
@@ -441605,16 +441558,16 @@ var FollowingUsersCount = ({ followers }) => {
441605
441558
  var USERS_IN_ROW = 3;
441606
441559
  var PresenceUsers = () => {
441607
441560
  const { board } = useAppContext();
441608
- const [selectedUsers, setSelectedUsers] = import_react380.useState(new Set);
441609
- const [users, setUsers] = import_react380.useState([]);
441610
- const [followers, setFollowers] = import_react380.useState([]);
441611
- const [trackedUser, setTrackedUser] = import_react380.useState(null);
441612
- const [displayUsers, setDisplayUsers] = import_react380.useState(users);
441613
- const [isUserDropdownOpen, setIsUserDropdownOpen] = import_react380.useState(false);
441561
+ const [selectedUsers, setSelectedUsers] = import_react379.useState(new Set);
441562
+ const [users, setUsers] = import_react379.useState([]);
441563
+ const [followers, setFollowers] = import_react379.useState([]);
441564
+ const [trackedUser, setTrackedUser] = import_react379.useState(null);
441565
+ const [displayUsers, setDisplayUsers] = import_react379.useState(users);
441566
+ const [isUserDropdownOpen, setIsUserDropdownOpen] = import_react379.useState(false);
441614
441567
  const account = useAccount();
441615
441568
  const { setIsPanelOpen } = useCommentsPanelContext();
441616
441569
  const needsCollapse = users.length >= 3;
441617
- import_react380.useEffect(() => {
441570
+ import_react379.useEffect(() => {
441618
441571
  const sortedUsers = [...users].sort((first2, second) => selectedUsers.has(first2.id) === selectedUsers.has(second.id) ? 0 : selectedUsers.has(first2.id) ? -1 : 1).sort((first2, second) => first2.idle === second.idle ? 0 : first2.idle ? 1 : -1);
441619
441572
  setDisplayUsers(sortedUsers.slice(0, USERS_IN_ROW));
441620
441573
  }, [users, selectedUsers]);
@@ -441644,7 +441597,7 @@ var PresenceUsers = () => {
441644
441597
  setUsers(uniqueUsersByHardId);
441645
441598
  setFollowers(board.presence.getFollowers());
441646
441599
  };
441647
- import_react380.useEffect(() => {
441600
+ import_react379.useEffect(() => {
441648
441601
  const observer = (presence) => {
441649
441602
  updateUsers(presence);
441650
441603
  setTrackedUser(presence.trackedUser || null);
@@ -441654,22 +441607,22 @@ var PresenceUsers = () => {
441654
441607
  board.presence.subject.unsubscribe(observer);
441655
441608
  };
441656
441609
  }, [board]);
441657
- import_react380.useEffect(() => {
441610
+ import_react379.useEffect(() => {
441658
441611
  updateUsers(board.presence);
441659
441612
  }, [board.getInterfaceType()]);
441660
- return /* @__PURE__ */ import_react380.default.createElement("div", {
441613
+ return /* @__PURE__ */ import_react379.default.createElement("div", {
441661
441614
  className: PresenceUsers_module_default.wrapper
441662
- }, /* @__PURE__ */ import_react380.default.createElement("div", {
441615
+ }, /* @__PURE__ */ import_react379.default.createElement("div", {
441663
441616
  className: PresenceUsers_module_default.container
441664
- }, /* @__PURE__ */ import_react380.default.createElement("div", {
441617
+ }, /* @__PURE__ */ import_react379.default.createElement("div", {
441665
441618
  className: PresenceUsers_module_default.userList
441666
- }, displayUsers.map((user, index4) => /* @__PURE__ */ import_react380.default.createElement(PresenceUserAvatar, {
441619
+ }, displayUsers.map((user, index4) => /* @__PURE__ */ import_react379.default.createElement(PresenceUserAvatar, {
441667
441620
  key: user.id,
441668
441621
  user,
441669
441622
  trackedUser,
441670
441623
  index: index4,
441671
441624
  onClick: () => selectUser(user.id)
441672
- })), /* @__PURE__ */ import_react380.default.createElement(UserPic, {
441625
+ })), /* @__PURE__ */ import_react379.default.createElement(UserPic, {
441673
441626
  className: PresenceUsers_module_default.userWrapper,
441674
441627
  style: { zIndex: 1000 },
441675
441628
  followers,
@@ -441677,7 +441630,7 @@ var PresenceUsers = () => {
441677
441630
  email: account.info?.name ?? getEmailPrefix(account.info?.email ?? "", "Anonymous"),
441678
441631
  setIsDropdownOpen: setIsUserDropdownOpen,
441679
441632
  isDropdownOpen: isUserDropdownOpen
441680
- }), needsCollapse && /* @__PURE__ */ import_react380.default.createElement("button", {
441633
+ }), needsCollapse && /* @__PURE__ */ import_react379.default.createElement("button", {
441681
441634
  onClick: (event) => {
441682
441635
  event.stopPropagation();
441683
441636
  if (!isUserDropdownOpen) {
@@ -441692,11 +441645,11 @@ var PresenceUsers = () => {
441692
441645
  "--index": displayUsers.length
441693
441646
  },
441694
441647
  className: PresenceUsers_module_default.usersOverflowWrapper
441695
- }, /* @__PURE__ */ import_react380.default.createElement("div", {
441648
+ }, /* @__PURE__ */ import_react379.default.createElement("div", {
441696
441649
  className: PresenceUsers_module_default.usersOverflowGap
441697
- }), /* @__PURE__ */ import_react380.default.createElement("div", {
441650
+ }), /* @__PURE__ */ import_react379.default.createElement("div", {
441698
441651
  className: PresenceUsers_module_default.usersOverflowCounter
441699
- }, /* @__PURE__ */ import_react380.default.createElement("span", null, users.length), /* @__PURE__ */ import_react380.default.createElement(Icon, {
441652
+ }, /* @__PURE__ */ import_react379.default.createElement("span", null, users.length), /* @__PURE__ */ import_react379.default.createElement(Icon, {
441700
441653
  iconName: "StrokeChevronDown",
441701
441654
  width: 11,
441702
441655
  height: 6
@@ -441707,7 +441660,7 @@ var PresenceUsers = () => {
441707
441660
  var import_react383 = __toESM(require_react(), 1);
441708
441661
 
441709
441662
  // src/features/UserPanel/Buttons/AddComment/AddComment.tsx
441710
- var import_react381 = __toESM(require_react(), 1);
441663
+ var import_react380 = __toESM(require_react(), 1);
441711
441664
 
441712
441665
  // src/features/UserPanel/Buttons/AddComment/AddComment.module.css
441713
441666
  var AddComment_module_default = {
@@ -441742,7 +441695,7 @@ function AddComment2() {
441742
441695
  }
441743
441696
  board.tools.addComment(true);
441744
441697
  };
441745
- return /* @__PURE__ */ import_react381.default.createElement(UiButton, {
441698
+ return /* @__PURE__ */ import_react380.default.createElement(UiButton, {
441746
441699
  className: AddComment_module_default.btn,
441747
441700
  id: "tool-add-comment",
441748
441701
  tooltipPosition: "bottom",
@@ -441751,16 +441704,16 @@ function AddComment2() {
441751
441704
  active: isActive,
441752
441705
  variant: "secondary",
441753
441706
  rounded: "left"
441754
- }, /* @__PURE__ */ import_react381.default.createElement(Icon, {
441707
+ }, /* @__PURE__ */ import_react380.default.createElement(Icon, {
441755
441708
  iconName: "Comment",
441756
441709
  width: 20,
441757
441710
  height: 20
441758
- }), showBadge && /* @__PURE__ */ import_react381.default.createElement("div", {
441711
+ }), showBadge && /* @__PURE__ */ import_react380.default.createElement("div", {
441759
441712
  className: AddComment_module_default.badge
441760
441713
  }));
441761
441714
  }
441762
441715
  // src/features/UserPanel/Buttons/TogglePresenceRender/TogglePresenceRender.tsx
441763
- var import_react382 = __toESM(require_react(), 1);
441716
+ var import_react381 = __toESM(require_react(), 1);
441764
441717
 
441765
441718
  // src/features/UserPanel/Buttons/TogglePresenceRender/TogglePresenceRender.module.css
441766
441719
  var TogglePresenceRender_module_default = {
@@ -441771,9 +441724,9 @@ var TogglePresenceRender_module_default = {
441771
441724
  // src/features/UserPanel/Buttons/TogglePresenceRender/TogglePresenceRender.tsx
441772
441725
  var TogglePresenceRender = () => {
441773
441726
  const { t: t11 } = useTranslation();
441774
- const [cursorsActive, setCursorsActive] = import_react382.useState(true);
441727
+ const [cursorsActive, setCursorsActive] = import_react381.useState(true);
441775
441728
  const { app } = useAppContext();
441776
- return /* @__PURE__ */ import_react382.default.createElement(UiButton, {
441729
+ return /* @__PURE__ */ import_react381.default.createElement(UiButton, {
441777
441730
  id: "tool-cursors-toggle",
441778
441731
  tooltipPosition: "bottom",
441779
441732
  tooltip: cursorsActive ? t11("presence.hideCursors") : t11("presence.showCursors"),
@@ -441785,13 +441738,127 @@ var TogglePresenceRender = () => {
441785
441738
  const cursorsEnabled = app.getBoard().presence.toggleCursorsRendering();
441786
441739
  setCursorsActive(cursorsEnabled);
441787
441740
  }
441788
- }, /* @__PURE__ */ import_react382.default.createElement(Icon, {
441741
+ }, /* @__PURE__ */ import_react381.default.createElement(Icon, {
441789
441742
  iconName: "ToggleCursors",
441790
441743
  width: 20,
441791
441744
  height: 20
441792
441745
  }));
441793
441746
  };
441794
441747
 
441748
+ // src/features/ToolsPanel/Buttons/ThemeToggle.tsx
441749
+ var import_react382 = __toESM(require_react(), 1);
441750
+ function SunIcon() {
441751
+ return /* @__PURE__ */ import_react382.default.createElement("svg", {
441752
+ width: "20",
441753
+ height: "20",
441754
+ viewBox: "0 0 20 20",
441755
+ fill: "none",
441756
+ xmlns: "http://www.w3.org/2000/svg"
441757
+ }, /* @__PURE__ */ import_react382.default.createElement("circle", {
441758
+ cx: "10",
441759
+ cy: "10",
441760
+ r: "3.5",
441761
+ stroke: "currentColor",
441762
+ strokeWidth: "1.5"
441763
+ }), /* @__PURE__ */ import_react382.default.createElement("line", {
441764
+ x1: "10",
441765
+ y1: "1",
441766
+ x2: "10",
441767
+ y2: "3.5",
441768
+ stroke: "currentColor",
441769
+ strokeWidth: "1.5",
441770
+ strokeLinecap: "round"
441771
+ }), /* @__PURE__ */ import_react382.default.createElement("line", {
441772
+ x1: "10",
441773
+ y1: "16.5",
441774
+ x2: "10",
441775
+ y2: "19",
441776
+ stroke: "currentColor",
441777
+ strokeWidth: "1.5",
441778
+ strokeLinecap: "round"
441779
+ }), /* @__PURE__ */ import_react382.default.createElement("line", {
441780
+ x1: "19",
441781
+ y1: "10",
441782
+ x2: "16.5",
441783
+ y2: "10",
441784
+ stroke: "currentColor",
441785
+ strokeWidth: "1.5",
441786
+ strokeLinecap: "round"
441787
+ }), /* @__PURE__ */ import_react382.default.createElement("line", {
441788
+ x1: "3.5",
441789
+ y1: "10",
441790
+ x2: "1",
441791
+ y2: "10",
441792
+ stroke: "currentColor",
441793
+ strokeWidth: "1.5",
441794
+ strokeLinecap: "round"
441795
+ }), /* @__PURE__ */ import_react382.default.createElement("line", {
441796
+ x1: "16.07",
441797
+ y1: "3.93",
441798
+ x2: "14.31",
441799
+ y2: "5.69",
441800
+ stroke: "currentColor",
441801
+ strokeWidth: "1.5",
441802
+ strokeLinecap: "round"
441803
+ }), /* @__PURE__ */ import_react382.default.createElement("line", {
441804
+ x1: "5.69",
441805
+ y1: "14.31",
441806
+ x2: "3.93",
441807
+ y2: "16.07",
441808
+ stroke: "currentColor",
441809
+ strokeWidth: "1.5",
441810
+ strokeLinecap: "round"
441811
+ }), /* @__PURE__ */ import_react382.default.createElement("line", {
441812
+ x1: "16.07",
441813
+ y1: "16.07",
441814
+ x2: "14.31",
441815
+ y2: "14.31",
441816
+ stroke: "currentColor",
441817
+ strokeWidth: "1.5",
441818
+ strokeLinecap: "round"
441819
+ }), /* @__PURE__ */ import_react382.default.createElement("line", {
441820
+ x1: "5.69",
441821
+ y1: "5.69",
441822
+ x2: "3.93",
441823
+ y2: "3.93",
441824
+ stroke: "currentColor",
441825
+ strokeWidth: "1.5",
441826
+ strokeLinecap: "round"
441827
+ }));
441828
+ }
441829
+ function MoonIcon() {
441830
+ return /* @__PURE__ */ import_react382.default.createElement("svg", {
441831
+ width: "20",
441832
+ height: "20",
441833
+ viewBox: "0 0 20 20",
441834
+ fill: "none",
441835
+ xmlns: "http://www.w3.org/2000/svg"
441836
+ }, /* @__PURE__ */ import_react382.default.createElement("path", {
441837
+ d: "M17 12.5A7.5 7.5 0 1 1 7.5 3a5.5 5.5 0 0 0 9.5 9.5z",
441838
+ stroke: "currentColor",
441839
+ strokeWidth: "1.5",
441840
+ strokeLinecap: "round",
441841
+ strokeLinejoin: "round"
441842
+ }));
441843
+ }
441844
+ function ThemeToggle() {
441845
+ const { board } = useAppContext();
441846
+ const [theme2, setTheme] = import_react382.useState(conf.theme);
441847
+ const handleClick = () => {
441848
+ const next5 = conf.theme === "light" ? "dark" : "light";
441849
+ conf.theme = next5;
441850
+ setTheme(next5);
441851
+ board.items.subject.publish(board.items);
441852
+ };
441853
+ return /* @__PURE__ */ import_react382.default.createElement(UiButton, {
441854
+ id: "theme-toggle",
441855
+ tooltip: theme2 === "light" ? "Switch to dark theme" : "Switch to light theme",
441856
+ onClick: handleClick,
441857
+ variant: "secondary",
441858
+ rounded: "none"
441859
+ }, theme2 === "light" ? /* @__PURE__ */ import_react382.default.createElement(MoonIcon, null) : /* @__PURE__ */ import_react382.default.createElement(SunIcon, null));
441860
+ }
441861
+
441795
441862
  // src/features/UserPanel/ActionButtons/ActionButtons.module.css
441796
441863
  var ActionButtons_module_default = {
441797
441864
  wrapper: "wrapper_VBuAXg"
@@ -441807,7 +441874,7 @@ var ActionButtons = () => {
441807
441874
  }
441808
441875
  return /* @__PURE__ */ import_react383.default.createElement("div", {
441809
441876
  className: ActionButtons_module_default.wrapper
441810
- }, (account.info?.name || account.info?.email) && /* @__PURE__ */ import_react383.default.createElement(AddComment2, null), /* @__PURE__ */ import_react383.default.createElement(TogglePresenceRender, null));
441877
+ }, (account.info?.name || account.info?.email) && /* @__PURE__ */ import_react383.default.createElement(AddComment2, null), /* @__PURE__ */ import_react383.default.createElement(TogglePresenceRender, null), /* @__PURE__ */ import_react383.default.createElement(ThemeToggle, null));
441811
441878
  };
441812
441879
 
441813
441880
  // src/features/UserPanel/Buttons/ShareBtn/ShareBtn.tsx