microboard-ui-temp 0.9.0 → 0.9.2

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.
@@ -376852,7 +376852,7 @@ function shouldShow(panel) {
376852
376852
  }
376853
376853
 
376854
376854
  // src/features/SidePanelsContainer/SidePanelsContainer.tsx
376855
- var import_react369 = __toESM(require_react(), 1);
376855
+ var import_react367 = __toESM(require_react(), 1);
376856
376856
 
376857
376857
  // src/features/AppView/InactiveBoardHidder.tsx
376858
376858
  var import_react308 = __toESM(require_react(), 1);
@@ -437242,7 +437242,7 @@ function ExportDropdown({
437242
437242
  openShareSnapshot
437243
437243
  }) {
437244
437244
  const { t: t11 } = useTranslation();
437245
- const [position5, setPosition] = import_react320.useState({ top: 0, left: 0 });
437245
+ const [position5, setPosition] = import_react320.useState(null);
437246
437246
  import_react320.useEffect(() => {
437247
437247
  if (buttonRef.current) {
437248
437248
  const rect = buttonRef.current.getBoundingClientRect();
@@ -437252,6 +437252,8 @@ function ExportDropdown({
437252
437252
  });
437253
437253
  }
437254
437254
  }, [buttonRef]);
437255
+ if (!position5)
437256
+ return null;
437255
437257
  return import_react_dom14.createPortal(/* @__PURE__ */ import_react320.default.createElement("div", {
437256
437258
  className: TitlePanel_module_default.exportDropdown,
437257
437259
  style: {
@@ -437900,7 +437902,7 @@ var AIChatPanel = ({ board }) => {
437900
437902
  var AIChatPanel_default = AIChatPanel;
437901
437903
 
437902
437904
  // src/features/ToolsPanel/ToolsPanel.tsx
437903
- var import_react363 = __toESM(require_react(), 1);
437905
+ var import_react361 = __toESM(require_react(), 1);
437904
437906
 
437905
437907
  // src/features/ToolsPanel/Buttons/AddConnector.tsx
437906
437908
  var import_react324 = __toESM(require_react(), 1);
@@ -439671,157 +439673,8 @@ function Redo() {
439671
439673
  }));
439672
439674
  }
439673
439675
 
439674
- // src/features/ToolsPanel/Buttons/ThemeToggle.tsx
439675
- var import_react353 = __toESM(require_react(), 1);
439676
-
439677
- // src/shared/lib/uiTheme.ts
439678
- var import_react352 = __toESM(require_react(), 1);
439679
- var STORAGE_KEY = "ui-theme";
439680
- function applyTheme(theme2) {
439681
- document.documentElement.setAttribute("data-theme", theme2);
439682
- conf.theme = theme2;
439683
- }
439684
- function getInitialTheme() {
439685
- const stored = localStorage.getItem(STORAGE_KEY);
439686
- if (stored === "light" || stored === "dark")
439687
- return stored;
439688
- return window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
439689
- }
439690
- function initTheme() {
439691
- applyTheme(getInitialTheme());
439692
- }
439693
- function toggleUITheme() {
439694
- const current2 = document.documentElement.getAttribute("data-theme");
439695
- const next5 = current2 === "dark" ? "light" : "dark";
439696
- localStorage.setItem(STORAGE_KEY, next5);
439697
- applyTheme(next5);
439698
- return next5;
439699
- }
439700
- function getCurrentUITheme() {
439701
- return document.documentElement.getAttribute("data-theme") ?? "light";
439702
- }
439703
- function useUITheme() {
439704
- const [theme2, setTheme] = import_react352.useState(getCurrentUITheme);
439705
- const toggle = () => {
439706
- setTheme(toggleUITheme());
439707
- };
439708
- return { theme: theme2, toggle };
439709
- }
439710
-
439711
- // src/features/ToolsPanel/Buttons/ThemeToggle.tsx
439712
- function SunIcon() {
439713
- return /* @__PURE__ */ import_react353.default.createElement("svg", {
439714
- width: "20",
439715
- height: "20",
439716
- viewBox: "0 0 20 20",
439717
- fill: "none",
439718
- xmlns: "http://www.w3.org/2000/svg"
439719
- }, /* @__PURE__ */ import_react353.default.createElement("circle", {
439720
- cx: "10",
439721
- cy: "10",
439722
- r: "3.5",
439723
- stroke: "currentColor",
439724
- strokeWidth: "1.5"
439725
- }), /* @__PURE__ */ import_react353.default.createElement("line", {
439726
- x1: "10",
439727
- y1: "1",
439728
- x2: "10",
439729
- y2: "3.5",
439730
- stroke: "currentColor",
439731
- strokeWidth: "1.5",
439732
- strokeLinecap: "round"
439733
- }), /* @__PURE__ */ import_react353.default.createElement("line", {
439734
- x1: "10",
439735
- y1: "16.5",
439736
- x2: "10",
439737
- y2: "19",
439738
- stroke: "currentColor",
439739
- strokeWidth: "1.5",
439740
- strokeLinecap: "round"
439741
- }), /* @__PURE__ */ import_react353.default.createElement("line", {
439742
- x1: "19",
439743
- y1: "10",
439744
- x2: "16.5",
439745
- y2: "10",
439746
- stroke: "currentColor",
439747
- strokeWidth: "1.5",
439748
- strokeLinecap: "round"
439749
- }), /* @__PURE__ */ import_react353.default.createElement("line", {
439750
- x1: "3.5",
439751
- y1: "10",
439752
- x2: "1",
439753
- y2: "10",
439754
- stroke: "currentColor",
439755
- strokeWidth: "1.5",
439756
- strokeLinecap: "round"
439757
- }), /* @__PURE__ */ import_react353.default.createElement("line", {
439758
- x1: "16.07",
439759
- y1: "3.93",
439760
- x2: "14.31",
439761
- y2: "5.69",
439762
- stroke: "currentColor",
439763
- strokeWidth: "1.5",
439764
- strokeLinecap: "round"
439765
- }), /* @__PURE__ */ import_react353.default.createElement("line", {
439766
- x1: "5.69",
439767
- y1: "14.31",
439768
- x2: "3.93",
439769
- y2: "16.07",
439770
- stroke: "currentColor",
439771
- strokeWidth: "1.5",
439772
- strokeLinecap: "round"
439773
- }), /* @__PURE__ */ import_react353.default.createElement("line", {
439774
- x1: "16.07",
439775
- y1: "16.07",
439776
- x2: "14.31",
439777
- y2: "14.31",
439778
- stroke: "currentColor",
439779
- strokeWidth: "1.5",
439780
- strokeLinecap: "round"
439781
- }), /* @__PURE__ */ import_react353.default.createElement("line", {
439782
- x1: "5.69",
439783
- y1: "5.69",
439784
- x2: "3.93",
439785
- y2: "3.93",
439786
- stroke: "currentColor",
439787
- strokeWidth: "1.5",
439788
- strokeLinecap: "round"
439789
- }));
439790
- }
439791
- function MoonIcon() {
439792
- return /* @__PURE__ */ import_react353.default.createElement("svg", {
439793
- width: "20",
439794
- height: "20",
439795
- viewBox: "0 0 20 20",
439796
- fill: "none",
439797
- xmlns: "http://www.w3.org/2000/svg"
439798
- }, /* @__PURE__ */ import_react353.default.createElement("path", {
439799
- d: "M17 12.5A7.5 7.5 0 1 1 7.5 3a5.5 5.5 0 0 0 9.5 9.5z",
439800
- stroke: "currentColor",
439801
- strokeWidth: "1.5",
439802
- strokeLinecap: "round",
439803
- strokeLinejoin: "round"
439804
- }));
439805
- }
439806
- function ThemeToggle() {
439807
- const { board } = useAppContext();
439808
- const { theme: theme2, toggle } = useUITheme();
439809
- const handleClick = () => {
439810
- toggle();
439811
- board.items.subject.publish(board.items);
439812
- };
439813
- return /* @__PURE__ */ import_react353.default.createElement(UiButton, {
439814
- id: "theme-toggle",
439815
- tooltip: theme2 === "light" ? "Switch to dark theme" : "Switch to light theme",
439816
- tooltipPosition: "bottom",
439817
- onClick: handleClick,
439818
- variant: "secondary",
439819
- rounded: "none"
439820
- }, theme2 === "light" ? /* @__PURE__ */ import_react353.default.createElement(MoonIcon, null) : /* @__PURE__ */ import_react353.default.createElement(SunIcon, null));
439821
- }
439822
-
439823
439676
  // src/features/ToolsPanel/Buttons/Select.tsx
439824
- var import_react354 = __toESM(require_react(), 1);
439677
+ var import_react352 = __toESM(require_react(), 1);
439825
439678
  function Select3({ rounded = "top" }) {
439826
439679
  const { board } = useAppContext();
439827
439680
  const { t: t11 } = useTranslation();
@@ -439833,7 +439686,7 @@ function Select3({ rounded = "top" }) {
439833
439686
  }
439834
439687
  }
439835
439688
  const isActive = Boolean(board.tools.getSelect());
439836
- return /* @__PURE__ */ import_react354.default.createElement(UiButton, {
439689
+ return /* @__PURE__ */ import_react352.default.createElement(UiButton, {
439837
439690
  id: "tool-select",
439838
439691
  tooltip: isActive ? undefined : t11("toolsPanel.select.tooltip"),
439839
439692
  hotkey: getHotkeyLabel("select"),
@@ -439841,13 +439694,13 @@ function Select3({ rounded = "top" }) {
439841
439694
  active: isActive,
439842
439695
  variant: "secondary",
439843
439696
  rounded
439844
- }, /* @__PURE__ */ import_react354.default.createElement(Icon, {
439697
+ }, /* @__PURE__ */ import_react352.default.createElement(Icon, {
439845
439698
  iconName: "Select"
439846
439699
  }));
439847
439700
  }
439848
439701
 
439849
439702
  // src/features/ToolsPanel/Buttons/Undo.tsx
439850
- var import_react355 = __toESM(require_react(), 1);
439703
+ var import_react353 = __toESM(require_react(), 1);
439851
439704
  function Undo() {
439852
439705
  const { board } = useAppContext();
439853
439706
  const { t: t11 } = useTranslation();
@@ -439860,7 +439713,7 @@ function Undo() {
439860
439713
  board.events?.undo();
439861
439714
  };
439862
439715
  const canUndo = board.events?.canUndo();
439863
- return /* @__PURE__ */ import_react355.default.createElement(UiButton, {
439716
+ return /* @__PURE__ */ import_react353.default.createElement(UiButton, {
439864
439717
  id: "undo",
439865
439718
  tooltip: t11("toolsPanel.undo.tooltip"),
439866
439719
  hotkey: getHotkeyLabel("undo"),
@@ -439868,7 +439721,7 @@ function Undo() {
439868
439721
  disabled: !canUndo,
439869
439722
  rounded: "top",
439870
439723
  variant: "secondary"
439871
- }, /* @__PURE__ */ import_react355.default.createElement(Icon, {
439724
+ }, /* @__PURE__ */ import_react353.default.createElement(Icon, {
439872
439725
  iconName: "Undo"
439873
439726
  }));
439874
439727
  }
@@ -439884,13 +439737,13 @@ var ToolsPanel_module_default = {
439884
439737
  };
439885
439738
 
439886
439739
  // src/features/ToolsPanel/Buttons/AddGameItem/AddGameItem.tsx
439887
- var import_react362 = __toESM(require_react(), 1);
439740
+ var import_react360 = __toESM(require_react(), 1);
439888
439741
 
439889
439742
  // src/features/ToolsPanel/Buttons/AddGameItem/AddDice.tsx
439890
- var import_react357 = __toESM(require_react(), 1);
439743
+ var import_react355 = __toESM(require_react(), 1);
439891
439744
 
439892
439745
  // src/features/GameItems/CreateDiceModal.tsx
439893
- var import_react356 = __toESM(require_react(), 1);
439746
+ var import_react354 = __toESM(require_react(), 1);
439894
439747
 
439895
439748
  // src/features/GameItems/Modal.module.css
439896
439749
  var Modal_module_default = {
@@ -439916,14 +439769,14 @@ var MIN_SIDES = 3;
439916
439769
  var MAX_SIDES = 20;
439917
439770
  function CreateDiceModal() {
439918
439771
  const { closeModal: closeModal2 } = useUiModalContext();
439919
- const [faces, setFaces] = import_react356.useState(Array(MIN_SIDES).fill(null));
439920
- const [previews, setPreviews] = import_react356.useState(Array(MIN_SIDES).fill(null));
439921
- const [isLoading, setIsLoading] = import_react356.useState(false);
439922
- const inputRefs = import_react356.useRef([]);
439772
+ const [faces, setFaces] = import_react354.useState(Array(MIN_SIDES).fill(null));
439773
+ const [previews, setPreviews] = import_react354.useState(Array(MIN_SIDES).fill(null));
439774
+ const [isLoading, setIsLoading] = import_react354.useState(false);
439775
+ const inputRefs = import_react354.useRef([]);
439923
439776
  const { board } = useAppContext();
439924
439777
  const account = useAccount();
439925
439778
  const { t: t11 } = useTranslation();
439926
- import_react356.useEffect(() => {
439779
+ import_react354.useEffect(() => {
439927
439780
  faces.forEach((file, idx) => {
439928
439781
  if (file) {
439929
439782
  const reader = new FileReader;
@@ -440009,43 +439862,43 @@ function CreateDiceModal() {
440009
439862
  }
440010
439863
  closeModal2();
440011
439864
  };
440012
- return /* @__PURE__ */ import_react356.default.createElement(UiModal, {
439865
+ return /* @__PURE__ */ import_react354.default.createElement(UiModal, {
440013
439866
  modalId: CREATE_DICE_MODAL,
440014
439867
  closeOnClickOutside: false,
440015
439868
  renderAsPageOnMobile: true
440016
- }, /* @__PURE__ */ import_react356.default.createElement("div", {
439869
+ }, /* @__PURE__ */ import_react354.default.createElement("div", {
440017
439870
  className: Modal_module_default.modalContent
440018
- }, /* @__PURE__ */ import_react356.default.createElement("div", {
439871
+ }, /* @__PURE__ */ import_react354.default.createElement("div", {
440019
439872
  className: Modal_module_default.title
440020
- }, t11("toolsPanel.addGameItem.addDice.title")), /* @__PURE__ */ import_react356.default.createElement("div", {
439873
+ }, t11("toolsPanel.addGameItem.addDice.title")), /* @__PURE__ */ import_react354.default.createElement("div", {
440021
439874
  className: Modal_module_default.cardsRow,
440022
439875
  style: { flexWrap: "wrap", gap: 16 }
440023
- }, faces.map((face, idx) => /* @__PURE__ */ import_react356.default.createElement("div", {
439876
+ }, faces.map((face, idx) => /* @__PURE__ */ import_react354.default.createElement("div", {
440024
439877
  key: idx,
440025
439878
  className: Modal_module_default.diceFace,
440026
439879
  onClick: () => handleFaceClick(idx)
440027
- }, previews[idx] ? /* @__PURE__ */ import_react356.default.createElement("img", {
439880
+ }, previews[idx] ? /* @__PURE__ */ import_react354.default.createElement("img", {
440028
439881
  src: previews[idx] || undefined,
440029
439882
  alt: `face-${idx + 1}`,
440030
439883
  className: Modal_module_default.dicePreview
440031
- }) : /* @__PURE__ */ import_react356.default.createElement("span", {
439884
+ }) : /* @__PURE__ */ import_react354.default.createElement("span", {
440032
439885
  className: Modal_module_default.diceLabel
440033
- }, idx + 1), /* @__PURE__ */ import_react356.default.createElement("input", {
439886
+ }, idx + 1), /* @__PURE__ */ import_react354.default.createElement("input", {
440034
439887
  type: "file",
440035
439888
  accept: "image/*",
440036
439889
  style: { display: "none" },
440037
439890
  ref: (el2) => inputRefs.current[idx] = el2,
440038
439891
  onChange: (ev) => handleFileChange(idx, ev)
440039
- }))), faces.length < MAX_SIDES && /* @__PURE__ */ import_react356.default.createElement("div", {
439892
+ }))), faces.length < MAX_SIDES && /* @__PURE__ */ import_react354.default.createElement("div", {
440040
439893
  className: Modal_module_default.addFaceBtn,
440041
439894
  onClick: handleAddFace
440042
- }, "+")), faces.length > MIN_SIDES && /* @__PURE__ */ import_react356.default.createElement("div", {
439895
+ }, "+")), faces.length > MIN_SIDES && /* @__PURE__ */ import_react354.default.createElement("div", {
440043
439896
  className: Modal_module_default.removeFaceBtnWrapper
440044
- }, /* @__PURE__ */ import_react356.default.createElement(UiButton, {
439897
+ }, /* @__PURE__ */ import_react354.default.createElement(UiButton, {
440045
439898
  variant: "secondary",
440046
439899
  onClick: handleRemoveLastFace,
440047
439900
  className: Modal_module_default.removeFaceBtn
440048
- }, t11("toolsPanel.addGameItem.addDice.removeFace"))), /* @__PURE__ */ import_react356.default.createElement(UiButton, {
439901
+ }, t11("toolsPanel.addGameItem.addDice.removeFace"))), /* @__PURE__ */ import_react354.default.createElement(UiButton, {
440049
439902
  className: Modal_module_default.acceptBtn,
440050
439903
  variant: "primary",
440051
439904
  onClick: handleAccept,
@@ -440060,23 +439913,23 @@ function AddDice2({ rounded }) {
440060
439913
  const handleClick = () => {
440061
439914
  openModal2(CREATE_DICE_MODAL);
440062
439915
  };
440063
- return /* @__PURE__ */ import_react357.default.createElement(UiButton, {
439916
+ return /* @__PURE__ */ import_react355.default.createElement(UiButton, {
440064
439917
  id: "tool-add-dice",
440065
439918
  tooltip: t11("toolsPanel.addGameItem.addDice.tooltip"),
440066
439919
  onClick: handleClick,
440067
439920
  active: false,
440068
439921
  variant: "secondary",
440069
439922
  rounded
440070
- }, /* @__PURE__ */ import_react357.default.createElement(Icon, {
439923
+ }, /* @__PURE__ */ import_react355.default.createElement(Icon, {
440071
439924
  iconName: "Dice"
440072
439925
  }));
440073
439926
  }
440074
439927
 
440075
439928
  // src/features/ToolsPanel/Buttons/AddGameItem/AddCard.tsx
440076
- var import_react359 = __toESM(require_react(), 1);
439929
+ var import_react357 = __toESM(require_react(), 1);
440077
439930
 
440078
439931
  // src/features/GameItems/CreateCardsModal.tsx
440079
- var import_react358 = __toESM(require_react(), 1);
439932
+ var import_react356 = __toESM(require_react(), 1);
440080
439933
  var CREATE_CARDS_MODAL = Symbol("createCardsModal");
440081
439934
  var getImageDimensions = (file) => {
440082
439935
  return new Promise((resolve2) => {
@@ -440095,14 +439948,14 @@ function CreateCardsModal() {
440095
439948
  const { closeModal: closeModal2 } = useUiModalContext();
440096
439949
  const { board } = useAppContext();
440097
439950
  const account = useAccount();
440098
- const [cover, setCover] = import_react358.default.useState(null);
440099
- const [coverPreview, setCoverPreview] = import_react358.default.useState(null);
440100
- const [cards, setCards] = import_react358.default.useState([]);
440101
- const [cardsPreview, setCardsPreview] = import_react358.default.useState([]);
440102
- const [loading, setLoading] = import_react358.default.useState(false);
440103
- const [cardDimensions, setCardDimensions] = import_react358.useState(conf.DEFAULT_GAME_ITEM_DIMENSIONS);
440104
- const coverInputRef = import_react358.default.useRef(null);
440105
- const cardsInputRef = import_react358.default.useRef(null);
439951
+ const [cover, setCover] = import_react356.default.useState(null);
439952
+ const [coverPreview, setCoverPreview] = import_react356.default.useState(null);
439953
+ const [cards, setCards] = import_react356.default.useState([]);
439954
+ const [cardsPreview, setCardsPreview] = import_react356.default.useState([]);
439955
+ const [loading, setLoading] = import_react356.default.useState(false);
439956
+ const [cardDimensions, setCardDimensions] = import_react356.useState(conf.DEFAULT_GAME_ITEM_DIMENSIONS);
439957
+ const coverInputRef = import_react356.default.useRef(null);
439958
+ const cardsInputRef = import_react356.default.useRef(null);
440106
439959
  const handleCoverClick = () => coverInputRef.current?.click();
440107
439960
  const handleCardsClick = () => cardsInputRef.current?.click();
440108
439961
  const createDeck2 = (backsideUrl, faceUrls) => {
@@ -440166,17 +440019,17 @@ function CreateCardsModal() {
440166
440019
  setLoading(false);
440167
440020
  }
440168
440021
  };
440169
- return /* @__PURE__ */ import_react358.default.createElement(UiModal, {
440022
+ return /* @__PURE__ */ import_react356.default.createElement(UiModal, {
440170
440023
  modalId: CREATE_CARDS_MODAL,
440171
440024
  closeOnClickOutside: false,
440172
440025
  renderAsPageOnMobile: true
440173
- }, /* @__PURE__ */ import_react358.default.createElement("div", {
440026
+ }, /* @__PURE__ */ import_react356.default.createElement("div", {
440174
440027
  className: Modal_module_default.modalContent
440175
- }, /* @__PURE__ */ import_react358.default.createElement("div", {
440028
+ }, /* @__PURE__ */ import_react356.default.createElement("div", {
440176
440029
  className: Modal_module_default.title
440177
- }, t11("toolsPanel.addGameItem.addCard.title")), /* @__PURE__ */ import_react358.default.createElement("div", {
440030
+ }, t11("toolsPanel.addGameItem.addCard.title")), /* @__PURE__ */ import_react356.default.createElement("div", {
440178
440031
  className: Modal_module_default.cardsRow
440179
- }, /* @__PURE__ */ import_react358.default.createElement("div", {
440032
+ }, /* @__PURE__ */ import_react356.default.createElement("div", {
440180
440033
  className: Modal_module_default.cardSilhouette,
440181
440034
  onClick: handleCoverClick,
440182
440035
  style: {
@@ -440184,19 +440037,19 @@ function CreateCardsModal() {
440184
440037
  height: cardDimensions.height,
440185
440038
  maxWidth: "80vw"
440186
440039
  }
440187
- }, coverPreview ? /* @__PURE__ */ import_react358.default.createElement("img", {
440040
+ }, coverPreview ? /* @__PURE__ */ import_react356.default.createElement("img", {
440188
440041
  src: coverPreview,
440189
440042
  alt: "cover",
440190
440043
  className: Modal_module_default.cardPreview
440191
- }) : /* @__PURE__ */ import_react358.default.createElement("span", {
440044
+ }) : /* @__PURE__ */ import_react356.default.createElement("span", {
440192
440045
  className: Modal_module_default.cardLabel
440193
- }, t11("toolsPanel.addGameItem.addCard.cover")), /* @__PURE__ */ import_react358.default.createElement("input", {
440046
+ }, t11("toolsPanel.addGameItem.addCard.cover")), /* @__PURE__ */ import_react356.default.createElement("input", {
440194
440047
  type: "file",
440195
440048
  accept: "image/*",
440196
440049
  style: { display: "none" },
440197
440050
  ref: coverInputRef,
440198
440051
  onChange: handleCoverChange
440199
- })), /* @__PURE__ */ import_react358.default.createElement("div", {
440052
+ })), /* @__PURE__ */ import_react356.default.createElement("div", {
440200
440053
  className: Modal_module_default.cardSilhouette,
440201
440054
  onClick: handleCardsClick,
440202
440055
  style: {
@@ -440204,20 +440057,20 @@ function CreateCardsModal() {
440204
440057
  height: cardDimensions.height,
440205
440058
  maxWidth: "80vw"
440206
440059
  }
440207
- }, cardsPreview.length > 0 ? /* @__PURE__ */ import_react358.default.createElement("img", {
440060
+ }, cardsPreview.length > 0 ? /* @__PURE__ */ import_react356.default.createElement("img", {
440208
440061
  src: cardsPreview[0],
440209
440062
  alt: "preview",
440210
440063
  className: Modal_module_default.cardPreview
440211
- }) : /* @__PURE__ */ import_react358.default.createElement("span", {
440064
+ }) : /* @__PURE__ */ import_react356.default.createElement("span", {
440212
440065
  className: Modal_module_default.cardLabel
440213
- }, t11("toolsPanel.addGameItem.addCard.cards")), /* @__PURE__ */ import_react358.default.createElement("input", {
440066
+ }, t11("toolsPanel.addGameItem.addCard.cards")), /* @__PURE__ */ import_react356.default.createElement("input", {
440214
440067
  type: "file",
440215
440068
  accept: "image/*",
440216
440069
  multiple: true,
440217
440070
  style: { display: "none" },
440218
440071
  ref: cardsInputRef,
440219
440072
  onChange: handleCardsChange
440220
- }))), /* @__PURE__ */ import_react358.default.createElement(UiButton, {
440073
+ }))), /* @__PURE__ */ import_react356.default.createElement(UiButton, {
440221
440074
  className: Modal_module_default.acceptBtn,
440222
440075
  variant: "primary",
440223
440076
  onClick: handleAccept,
@@ -440232,13 +440085,13 @@ function AddCard({ rounded = "none" }) {
440232
440085
  const handleClick = () => {
440233
440086
  openModal2(CREATE_CARDS_MODAL);
440234
440087
  };
440235
- return /* @__PURE__ */ import_react359.default.createElement(UiButton, {
440088
+ return /* @__PURE__ */ import_react357.default.createElement(UiButton, {
440236
440089
  id: `tool-add-card`,
440237
440090
  tooltip: t11("toolsPanel.addGameItem.addCard.tooltip"),
440238
440091
  onClick: handleClick,
440239
440092
  rounded,
440240
440093
  variant: "secondary"
440241
- }, /* @__PURE__ */ import_react359.default.createElement(Icon, {
440094
+ }, /* @__PURE__ */ import_react357.default.createElement(Icon, {
440242
440095
  iconName: "Card",
440243
440096
  width: 24,
440244
440097
  height: 24
@@ -440246,7 +440099,7 @@ function AddCard({ rounded = "none" }) {
440246
440099
  }
440247
440100
 
440248
440101
  // src/features/ToolsPanel/Buttons/AddGameItem/AddScreen.tsx
440249
- var import_react360 = __toESM(require_react(), 1);
440102
+ var import_react358 = __toESM(require_react(), 1);
440250
440103
  function AddScreen2() {
440251
440104
  const { board } = useAppContext();
440252
440105
  const { t: t11 } = useTranslation();
@@ -440254,20 +440107,20 @@ function AddScreen2() {
440254
440107
  board.tools.addRegisteredTool("AddScreen", true);
440255
440108
  };
440256
440109
  const isActive = Boolean(board.tools.getAddRegisteredTool("AddScreen"));
440257
- return /* @__PURE__ */ import_react360.default.createElement(UiButton, {
440110
+ return /* @__PURE__ */ import_react358.default.createElement(UiButton, {
440258
440111
  id: "tool-add-screen",
440259
440112
  tooltip: t11("toolsPanel.addGameItem.addScreen.tooltip"),
440260
440113
  onClick: handleClick,
440261
440114
  variant: "secondary",
440262
440115
  rounded: "none",
440263
440116
  active: isActive
440264
- }, /* @__PURE__ */ import_react360.default.createElement(Icon, {
440117
+ }, /* @__PURE__ */ import_react358.default.createElement(Icon, {
440265
440118
  iconName: "AddScreen"
440266
440119
  }));
440267
440120
  }
440268
440121
 
440269
440122
  // src/features/ToolsPanel/Buttons/AddGameItem/AddPouch.tsx
440270
- var import_react361 = __toESM(require_react(), 1);
440123
+ var import_react359 = __toESM(require_react(), 1);
440271
440124
  function AddPouch2() {
440272
440125
  const { board } = useAppContext();
440273
440126
  const { t: t11 } = useTranslation();
@@ -440275,14 +440128,14 @@ function AddPouch2() {
440275
440128
  board.tools.addRegisteredTool("AddPouch", true);
440276
440129
  };
440277
440130
  const isActive = Boolean(board.tools.getAddRegisteredTool("AddPouch"));
440278
- return /* @__PURE__ */ import_react361.default.createElement(UiButton, {
440131
+ return /* @__PURE__ */ import_react359.default.createElement(UiButton, {
440279
440132
  id: "tool-add-pouch",
440280
440133
  tooltip: t11("toolsPanel.addGameItem.addPouch.tooltip"),
440281
440134
  onClick: handleClick,
440282
440135
  variant: "secondary",
440283
440136
  rounded: "none",
440284
440137
  active: isActive
440285
- }, /* @__PURE__ */ import_react361.default.createElement(Icon, {
440138
+ }, /* @__PURE__ */ import_react359.default.createElement(Icon, {
440286
440139
  iconName: "AddPouch",
440287
440140
  width: 24,
440288
440141
  height: 24
@@ -440291,35 +440144,35 @@ function AddPouch2() {
440291
440144
 
440292
440145
  // src/features/ToolsPanel/Buttons/AddGameItem/AddGameItem.tsx
440293
440146
  function AddGameItem() {
440294
- const [isOpen, setIsOpen] = import_react362.useState(false);
440147
+ const [isOpen, setIsOpen] = import_react360.useState(false);
440295
440148
  const { t: t11 } = useTranslation();
440296
440149
  const ref4 = useClickOutside(() => setIsOpen(false), [], true);
440297
- return /* @__PURE__ */ import_react362.default.createElement(ButtonWithMenu2, {
440150
+ return /* @__PURE__ */ import_react360.default.createElement(ButtonWithMenu2, {
440298
440151
  ref: ref4,
440299
- button: /* @__PURE__ */ import_react362.default.createElement(UiButton, {
440152
+ button: /* @__PURE__ */ import_react360.default.createElement(UiButton, {
440300
440153
  id: "tool-add-game-item",
440301
440154
  tooltip: t11("toolsPanel.addGameItem.tooltip"),
440302
440155
  active: isOpen,
440303
440156
  variant: "secondary",
440304
440157
  rounded: "top",
440305
440158
  onClick: () => setIsOpen(!isOpen)
440306
- }, /* @__PURE__ */ import_react362.default.createElement(Icon, {
440159
+ }, /* @__PURE__ */ import_react360.default.createElement(Icon, {
440307
440160
  iconName: "GameItems"
440308
440161
  })),
440309
440162
  isOpen
440310
- }, /* @__PURE__ */ import_react362.default.createElement(UiPanel, {
440163
+ }, /* @__PURE__ */ import_react360.default.createElement(UiPanel, {
440311
440164
  vertical: true,
440312
440165
  padding: 0
440313
- }, /* @__PURE__ */ import_react362.default.createElement(AddDice2, {
440166
+ }, /* @__PURE__ */ import_react360.default.createElement(AddDice2, {
440314
440167
  rounded: "top"
440315
- }), /* @__PURE__ */ import_react362.default.createElement(AddScreen2, null), /* @__PURE__ */ import_react362.default.createElement(AddPouch2, null), /* @__PURE__ */ import_react362.default.createElement(AddCard, {
440168
+ }), /* @__PURE__ */ import_react360.default.createElement(AddScreen2, null), /* @__PURE__ */ import_react360.default.createElement(AddPouch2, null), /* @__PURE__ */ import_react360.default.createElement(AddCard, {
440316
440169
  rounded: "bottom"
440317
440170
  })));
440318
440171
  }
440319
440172
 
440320
440173
  // src/features/ToolsPanel/ToolsPanel.tsx
440321
440174
  function ToolsPanel() {
440322
- const [openedMenu, setOpenedMenu] = import_react363.useState("None");
440175
+ const [openedMenu, setOpenedMenu] = import_react361.useState("None");
440323
440176
  const toggleMenu = (menu) => setOpenedMenu((prev2) => prev2 === menu ? "None" : menu);
440324
440177
  const { app } = useAppContext();
440325
440178
  const forceUpdate = useForceUpdate();
@@ -440327,31 +440180,31 @@ function ToolsPanel() {
440327
440180
  subjects: ["tools"],
440328
440181
  observer: forceUpdate
440329
440182
  });
440330
- import_react363.useEffect(() => {}, [window.showDebug]);
440331
- return /* @__PURE__ */ import_react363.default.createElement(PanelContext2.Provider, {
440183
+ import_react361.useEffect(() => {}, [window.showDebug]);
440184
+ return /* @__PURE__ */ import_react361.default.createElement(PanelContext2.Provider, {
440332
440185
  value: { toggleMenu, openedMenu }
440333
- }, /* @__PURE__ */ import_react363.default.createElement("div", {
440186
+ }, /* @__PURE__ */ import_react361.default.createElement("div", {
440334
440187
  className: window.location.protocol === "file:" ? ToolsPanel_module_default.localWrapper : ToolsPanel_module_default.wrapper
440335
- }, /* @__PURE__ */ import_react363.default.createElement(UiPanel, {
440188
+ }, /* @__PURE__ */ import_react361.default.createElement(UiPanel, {
440336
440189
  vertical: true,
440337
440190
  padding: 0,
440338
440191
  zIndex: 20
440339
- }, /* @__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, {
440192
+ }, /* @__PURE__ */ import_react361.default.createElement(AddGameItem, null), /* @__PURE__ */ import_react361.default.createElement(AddTemplate, null), /* @__PURE__ */ import_react361.default.createElement(UiSeparator, null), /* @__PURE__ */ import_react361.default.createElement(Select3, {
440340
440193
  rounded: "none"
440341
- }), /* @__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, {
440194
+ }), /* @__PURE__ */ import_react361.default.createElement(AddDrawing2, null), /* @__PURE__ */ import_react361.default.createElement(AddText2, null), /* @__PURE__ */ import_react361.default.createElement(AddShape2, null), /* @__PURE__ */ import_react361.default.createElement(AddConnector2, null), /* @__PURE__ */ import_react361.default.createElement(AddSticker2, null), /* @__PURE__ */ import_react361.default.createElement(AddFrame2, null), /* @__PURE__ */ import_react361.default.createElement(AddMedia, null)), /* @__PURE__ */ import_react361.default.createElement(UiPanel, {
440342
440195
  vertical: true,
440343
440196
  padding: 0
440344
- }, /* @__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", {
440197
+ }, /* @__PURE__ */ import_react361.default.createElement(Undo, null), /* @__PURE__ */ import_react361.default.createElement(Redo, null)), /* @__PURE__ */ import_react361.default.createElement("div", {
440345
440198
  className: ToolsPanel_module_default.bottomLeftWrapper
440346
- }, window.showDebug && /* @__PURE__ */ import_react363.default.createElement(EventList, null), window.enableDiagrams && /* @__PURE__ */ import_react363.default.createElement(AIChatPanel_default, {
440199
+ }, window.showDebug && /* @__PURE__ */ import_react361.default.createElement(EventList, null), window.enableDiagrams && /* @__PURE__ */ import_react361.default.createElement(AIChatPanel_default, {
440347
440200
  board: app.getBoard()
440348
440201
  }))));
440349
440202
  }
440350
440203
  // src/features/ToolsPanel/ViewToolsPanel.tsx
440351
- var import_react365 = __toESM(require_react(), 1);
440204
+ var import_react363 = __toESM(require_react(), 1);
440352
440205
 
440353
440206
  // src/features/ToolsPanel/Buttons/Grab.tsx
440354
- var import_react364 = __toESM(require_react(), 1);
440207
+ var import_react362 = __toESM(require_react(), 1);
440355
440208
  function Grab() {
440356
440209
  const { board } = useAppContext();
440357
440210
  const { t: t11 } = useTranslation();
@@ -440359,14 +440212,14 @@ function Grab() {
440359
440212
  board.tools.navigate();
440360
440213
  };
440361
440214
  const isActive = Boolean(board.tools.getNavigate());
440362
- return /* @__PURE__ */ import_react364.default.createElement(UiButton, {
440215
+ return /* @__PURE__ */ import_react362.default.createElement(UiButton, {
440363
440216
  id: "tool-select",
440364
440217
  tooltip: isActive ? undefined : t11("toolsPanel.grab.tooltip"),
440365
440218
  onClick: handleClick,
440366
440219
  active: isActive,
440367
440220
  variant: "secondary",
440368
440221
  rounded: "top"
440369
- }, /* @__PURE__ */ import_react364.default.createElement(Icon, {
440222
+ }, /* @__PURE__ */ import_react362.default.createElement(Icon, {
440370
440223
  iconName: "Hand"
440371
440224
  }));
440372
440225
  }
@@ -440378,25 +440231,25 @@ function ViewToolsPanel() {
440378
440231
  subjects: ["tools"],
440379
440232
  observer: forceUpdate
440380
440233
  });
440381
- import_react365.useEffect(() => {}, [window.showDebug]);
440382
- return /* @__PURE__ */ import_react365.default.createElement("div", {
440234
+ import_react363.useEffect(() => {}, [window.showDebug]);
440235
+ return /* @__PURE__ */ import_react363.default.createElement("div", {
440383
440236
  className: ToolsPanel_module_default.wrapper
440384
- }, /* @__PURE__ */ import_react365.default.createElement(UiPanel, {
440237
+ }, /* @__PURE__ */ import_react363.default.createElement(UiPanel, {
440385
440238
  vertical: true,
440386
440239
  padding: 0,
440387
440240
  zIndex: 20
440388
- }, /* @__PURE__ */ import_react365.default.createElement(Grab, null), /* @__PURE__ */ import_react365.default.createElement(UiSeparator, null), /* @__PURE__ */ import_react365.default.createElement(Select3, {
440241
+ }, /* @__PURE__ */ import_react363.default.createElement(Grab, null), /* @__PURE__ */ import_react363.default.createElement(UiSeparator, null), /* @__PURE__ */ import_react363.default.createElement(Select3, {
440389
440242
  rounded: "bottom"
440390
- })), window.showDebug && /* @__PURE__ */ import_react365.default.createElement(EventList, null));
440243
+ })), window.showDebug && /* @__PURE__ */ import_react363.default.createElement(EventList, null));
440391
440244
  }
440392
440245
 
440393
440246
  // src/features/BoardItemsPanel/BoardItemsPanel.tsx
440394
- var import_react368 = __toESM(require_react(), 1);
440247
+ var import_react366 = __toESM(require_react(), 1);
440395
440248
 
440396
440249
  // src/shared/lib/useHotkey.ts
440397
- var import_react366 = __toESM(require_react(), 1);
440250
+ var import_react364 = __toESM(require_react(), 1);
440398
440251
  function useHotkey(code4, callback, options3 = {}) {
440399
- import_react366.useEffect(() => {
440252
+ import_react364.useEffect(() => {
440400
440253
  const { ctrl = false, shift: shift2 = false, alt = false, meta: meta3 = false } = options3;
440401
440254
  const handler = (event) => {
440402
440255
  const target = event.target;
@@ -440414,7 +440267,7 @@ function useHotkey(code4, callback, options3 = {}) {
440414
440267
  }
440415
440268
 
440416
440269
  // src/features/BoardItemsPanel/BoardItemsPanelContext.tsx
440417
- var import_react367 = __toESM(require_react(), 1);
440270
+ var import_react365 = __toESM(require_react(), 1);
440418
440271
  var BoardItemsPanelContext = createStrictContext();
440419
440272
  function useBoardItemsPanelContext() {
440420
440273
  return useStrictContext(BoardItemsPanelContext);
@@ -440422,8 +440275,8 @@ function useBoardItemsPanelContext() {
440422
440275
  function BoardItemsPanelContextProvider({
440423
440276
  children
440424
440277
  }) {
440425
- const [isOpen, setIsOpen] = import_react367.useState(false);
440426
- return /* @__PURE__ */ import_react367.default.createElement(BoardItemsPanelContext.Provider, {
440278
+ const [isOpen, setIsOpen] = import_react365.useState(false);
440279
+ return /* @__PURE__ */ import_react365.default.createElement(BoardItemsPanelContext.Provider, {
440427
440280
  value: {
440428
440281
  isOpen,
440429
440282
  openPanel: () => setIsOpen(true),
@@ -440450,49 +440303,49 @@ var BoardItemsPanel_module_default = {
440450
440303
  // src/features/BoardItemsPanel/BoardItemsPanel.tsx
440451
440304
  function BoardItemsPanel() {
440452
440305
  const { isOpen, openPanel, closePanel } = useBoardItemsPanelContext();
440453
- const [query2, setQuery] = import_react368.useState("");
440454
- const inputRef = import_react368.useRef(null);
440455
- const handleOpenSearch = import_react368.useCallback(() => {
440306
+ const [query2, setQuery] = import_react366.useState("");
440307
+ const inputRef = import_react366.useRef(null);
440308
+ const handleOpenSearch = import_react366.useCallback(() => {
440456
440309
  openPanel();
440457
440310
  setTimeout(() => inputRef.current?.focus(), 50);
440458
440311
  }, [openPanel]);
440459
440312
  useHotkey("KeyF", handleOpenSearch, { ctrl: true });
440460
- return /* @__PURE__ */ import_react368.default.createElement(UiPanel, {
440313
+ return /* @__PURE__ */ import_react366.default.createElement(UiPanel, {
440461
440314
  padding: 0,
440462
440315
  className: clsx_default(BoardItemsPanel_module_default.panel, isOpen && BoardItemsPanel_module_default.open)
440463
- }, /* @__PURE__ */ import_react368.default.createElement("div", {
440316
+ }, /* @__PURE__ */ import_react366.default.createElement("div", {
440464
440317
  className: BoardItemsPanel_module_default.header
440465
- }, /* @__PURE__ */ import_react368.default.createElement("h3", {
440318
+ }, /* @__PURE__ */ import_react366.default.createElement("h3", {
440466
440319
  className: BoardItemsPanel_module_default.title
440467
- }, "Предметы"), /* @__PURE__ */ import_react368.default.createElement(UiButton, {
440320
+ }, "Предметы"), /* @__PURE__ */ import_react366.default.createElement(UiButton, {
440468
440321
  onClick: closePanel,
440469
440322
  variant: "secondary",
440470
440323
  className: BoardItemsPanel_module_default.close
440471
- }, /* @__PURE__ */ import_react368.default.createElement(Icon, {
440324
+ }, /* @__PURE__ */ import_react366.default.createElement(Icon, {
440472
440325
  iconName: "Close"
440473
- }))), /* @__PURE__ */ import_react368.default.createElement("div", {
440326
+ }))), /* @__PURE__ */ import_react366.default.createElement("div", {
440474
440327
  className: BoardItemsPanel_module_default.search
440475
- }, /* @__PURE__ */ import_react368.default.createElement(Icon, {
440328
+ }, /* @__PURE__ */ import_react366.default.createElement(Icon, {
440476
440329
  iconName: "Search",
440477
440330
  width: 14,
440478
440331
  height: 14,
440479
440332
  className: BoardItemsPanel_module_default.searchIcon
440480
- }), /* @__PURE__ */ import_react368.default.createElement("input", {
440333
+ }), /* @__PURE__ */ import_react366.default.createElement("input", {
440481
440334
  className: BoardItemsPanel_module_default.searchInput,
440482
440335
  placeholder: "Поиск...",
440483
440336
  ref: inputRef,
440484
440337
  value: query2,
440485
440338
  onChange: (e15) => setQuery(e15.target.value)
440486
- }), query2 && /* @__PURE__ */ import_react368.default.createElement("button", {
440339
+ }), query2 && /* @__PURE__ */ import_react366.default.createElement("button", {
440487
440340
  className: BoardItemsPanel_module_default.searchClear,
440488
440341
  onClick: () => setQuery("")
440489
- }, /* @__PURE__ */ import_react368.default.createElement(Icon, {
440342
+ }, /* @__PURE__ */ import_react366.default.createElement(Icon, {
440490
440343
  iconName: "Close",
440491
440344
  width: 12,
440492
440345
  height: 12
440493
- }))), /* @__PURE__ */ import_react368.default.createElement("div", {
440346
+ }))), /* @__PURE__ */ import_react366.default.createElement("div", {
440494
440347
  className: BoardItemsPanel_module_default.content
440495
- }, /* @__PURE__ */ import_react368.default.createElement(BoardItemsList, {
440348
+ }, /* @__PURE__ */ import_react366.default.createElement(BoardItemsList, {
440496
440349
  query: query2
440497
440350
  })));
440498
440351
  }
@@ -440503,7 +440356,7 @@ var SidePanelsContainer_module_default = {
440503
440356
  };
440504
440357
 
440505
440358
  // src/features/SidePanelsContainer/SidePanelsContainer.tsx
440506
- var SidePanelsContainer = import_react369.memo(({ isBlank }) => {
440359
+ var SidePanelsContainer = import_react367.memo(({ isBlank }) => {
440507
440360
  const { toggleSideMenu, isOpen } = useSidePanelContext();
440508
440361
  const { renamingId } = useRenameContext();
440509
440362
  const containerRef = useClickOutside(() => {
@@ -440511,21 +440364,21 @@ var SidePanelsContainer = import_react369.memo(({ isBlank }) => {
440511
440364
  toggleSideMenu();
440512
440365
  }
440513
440366
  });
440514
- return /* @__PURE__ */ import_react369.default.createElement(BoardItemsPanelContextProvider, null, /* @__PURE__ */ import_react369.default.createElement(ShapesPanelContextProvider, null, /* @__PURE__ */ import_react369.default.createElement("div", {
440367
+ return /* @__PURE__ */ import_react367.default.createElement(BoardItemsPanelContextProvider, null, /* @__PURE__ */ import_react367.default.createElement(ShapesPanelContextProvider, null, /* @__PURE__ */ import_react367.default.createElement("div", {
440515
440368
  ref: containerRef,
440516
440369
  className: SidePanelsContainer_module_default.sidePanels
440517
- }, (shouldShow("titlePanel") || !isIframe2()) && /* @__PURE__ */ import_react369.default.createElement(TitlePanel, null), /* @__PURE__ */ import_react369.default.createElement(ViewModeGuard, {
440370
+ }, (shouldShow("titlePanel") || !isIframe2()) && /* @__PURE__ */ import_react367.default.createElement(TitlePanel, null), /* @__PURE__ */ import_react367.default.createElement(ViewModeGuard, {
440518
440371
  iframe: true
440519
- }, /* @__PURE__ */ import_react369.default.createElement("div", {
440372
+ }, /* @__PURE__ */ import_react367.default.createElement("div", {
440520
440373
  className: SidePanelsContainer_module_default.hidingPanels
440521
- }, /* @__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, {
440374
+ }, /* @__PURE__ */ import_react367.default.createElement(SidePanel, null), /* @__PURE__ */ import_react367.default.createElement(ShapesPanel, null), /* @__PURE__ */ import_react367.default.createElement(BoardItemsPanel, null)), /* @__PURE__ */ import_react367.default.createElement(InactiveBoardHidder, null, /* @__PURE__ */ import_react367.default.createElement(ViewModeGuard, {
440522
440375
  mode: ["edit", "view"]
440523
440376
  }, (interfaceType) => {
440524
440377
  switch (interfaceType) {
440525
440378
  case "view":
440526
- return /* @__PURE__ */ import_react369.default.createElement(ViewToolsPanel, null);
440379
+ return /* @__PURE__ */ import_react367.default.createElement(ViewToolsPanel, null);
440527
440380
  case "edit":
440528
- return /* @__PURE__ */ import_react369.default.createElement(ToolsPanel, null);
440381
+ return /* @__PURE__ */ import_react367.default.createElement(ToolsPanel, null);
440529
440382
  default:
440530
440383
  return null;
440531
440384
  }
@@ -440533,10 +440386,10 @@ var SidePanelsContainer = import_react369.memo(({ isBlank }) => {
440533
440386
  });
440534
440387
  SidePanelsContainer.displayName = "SidePanelsContainer";
440535
440388
  // src/features/TextEditor/TextEditor.tsx
440536
- var import_react372 = __toESM(require_react(), 1);
440389
+ var import_react370 = __toESM(require_react(), 1);
440537
440390
 
440538
440391
  // src/features/TextEditor/Leaf.tsx
440539
- var import_react370 = __toESM(require_react(), 1);
440392
+ var import_react368 = __toESM(require_react(), 1);
440540
440393
  function Leaf2(props) {
440541
440394
  const { attributes, leaf: leaf3, fontSize, isAutoSize, text: text5 } = props;
440542
440395
  let { children } = props;
@@ -440562,26 +440415,26 @@ function Leaf2(props) {
440562
440415
  for (const style3 of styles2) {
440563
440416
  switch (style3) {
440564
440417
  case "bold":
440565
- children = /* @__PURE__ */ import_react370.default.createElement("strong", null, children);
440418
+ children = /* @__PURE__ */ import_react368.default.createElement("strong", null, children);
440566
440419
  break;
440567
440420
  case "italic":
440568
- children = /* @__PURE__ */ import_react370.default.createElement("em", null, children);
440421
+ children = /* @__PURE__ */ import_react368.default.createElement("em", null, children);
440569
440422
  break;
440570
440423
  case "underline":
440571
- children = /* @__PURE__ */ import_react370.default.createElement("u", null, children);
440424
+ children = /* @__PURE__ */ import_react368.default.createElement("u", null, children);
440572
440425
  break;
440573
440426
  case "line-through":
440574
- children = /* @__PURE__ */ import_react370.default.createElement("s", null, children);
440427
+ children = /* @__PURE__ */ import_react368.default.createElement("s", null, children);
440575
440428
  break;
440576
440429
  case "sub":
440577
- children = /* @__PURE__ */ import_react370.default.createElement("sub", null, children);
440430
+ children = /* @__PURE__ */ import_react368.default.createElement("sub", null, children);
440578
440431
  break;
440579
440432
  case "super":
440580
- children = /* @__PURE__ */ import_react370.default.createElement("sup", null, children);
440433
+ children = /* @__PURE__ */ import_react368.default.createElement("sup", null, children);
440581
440434
  break;
440582
440435
  }
440583
440436
  }
440584
- return /* @__PURE__ */ import_react370.default.createElement("span", {
440437
+ return /* @__PURE__ */ import_react368.default.createElement("span", {
440585
440438
  ...attributes,
440586
440439
  style: {
440587
440440
  color: props.text.fontColor,
@@ -440593,7 +440446,7 @@ function Leaf2(props) {
440593
440446
  }
440594
440447
 
440595
440448
  // src/features/TextEditor/Element.tsx
440596
- var import_react371 = __toESM(require_react(), 1);
440449
+ var import_react369 = __toESM(require_react(), 1);
440597
440450
 
440598
440451
  // src/features/TextEditor/TextEditor.module.css
440599
440452
  var TextEditor_module_default = {
@@ -440638,7 +440491,7 @@ function Element4(props) {
440638
440491
  }
440639
440492
  switch (element5.type) {
440640
440493
  case "paragraph":
440641
- return /* @__PURE__ */ import_react371.default.createElement("p", {
440494
+ return /* @__PURE__ */ import_react369.default.createElement("p", {
440642
440495
  ...attributes,
440643
440496
  style: {
440644
440497
  textAlign: props.element.horisontalAlignment,
@@ -440648,7 +440501,7 @@ function Element4(props) {
440648
440501
  }
440649
440502
  }, children);
440650
440503
  case "ul_list":
440651
- return /* @__PURE__ */ import_react371.default.createElement("ul", {
440504
+ return /* @__PURE__ */ import_react369.default.createElement("ul", {
440652
440505
  ...attributes,
440653
440506
  style: {
440654
440507
  textAlign: props.element.horisontalAlignment,
@@ -440658,7 +440511,7 @@ function Element4(props) {
440658
440511
  }
440659
440512
  }, children);
440660
440513
  case "ol_list":
440661
- return /* @__PURE__ */ import_react371.default.createElement("ol", {
440514
+ return /* @__PURE__ */ import_react369.default.createElement("ol", {
440662
440515
  ...attributes,
440663
440516
  style: {
440664
440517
  textAlign: props.element.horisontalAlignment,
@@ -440669,7 +440522,7 @@ function Element4(props) {
440669
440522
  className: getListMarkType2(element5.listLevel || 1)
440670
440523
  }, children);
440671
440524
  case "block-quote":
440672
- return /* @__PURE__ */ import_react371.default.createElement("blockquote", {
440525
+ return /* @__PURE__ */ import_react369.default.createElement("blockquote", {
440673
440526
  ...attributes,
440674
440527
  style: {
440675
440528
  textAlign: props.element.horisontalAlignment,
@@ -440678,7 +440531,7 @@ function Element4(props) {
440678
440531
  }
440679
440532
  }, children);
440680
440533
  case "heading_one":
440681
- return /* @__PURE__ */ import_react371.default.createElement("h1", {
440534
+ return /* @__PURE__ */ import_react369.default.createElement("h1", {
440682
440535
  ...attributes,
440683
440536
  style: {
440684
440537
  textAlign: props.element.horisontalAlignment,
@@ -440687,7 +440540,7 @@ function Element4(props) {
440687
440540
  }
440688
440541
  }, children);
440689
440542
  case "heading_two":
440690
- return /* @__PURE__ */ import_react371.default.createElement("h2", {
440543
+ return /* @__PURE__ */ import_react369.default.createElement("h2", {
440691
440544
  ...attributes,
440692
440545
  style: {
440693
440546
  textAlign: props.element.horisontalAlignment,
@@ -440696,7 +440549,7 @@ function Element4(props) {
440696
440549
  }
440697
440550
  }, children);
440698
440551
  case "heading_three":
440699
- return /* @__PURE__ */ import_react371.default.createElement("h3", {
440552
+ return /* @__PURE__ */ import_react369.default.createElement("h3", {
440700
440553
  ...attributes,
440701
440554
  style: {
440702
440555
  textAlign: props.element.horisontalAlignment,
@@ -440705,7 +440558,7 @@ function Element4(props) {
440705
440558
  }
440706
440559
  }, children);
440707
440560
  case "heading_four":
440708
- return /* @__PURE__ */ import_react371.default.createElement("h4", {
440561
+ return /* @__PURE__ */ import_react369.default.createElement("h4", {
440709
440562
  ...attributes,
440710
440563
  style: {
440711
440564
  textAlign: props.element.horisontalAlignment,
@@ -440714,7 +440567,7 @@ function Element4(props) {
440714
440567
  }
440715
440568
  }, children);
440716
440569
  case "heading_five":
440717
- return /* @__PURE__ */ import_react371.default.createElement("h5", {
440570
+ return /* @__PURE__ */ import_react369.default.createElement("h5", {
440718
440571
  ...attributes,
440719
440572
  style: {
440720
440573
  textAlign: props.element.horisontalAlignment,
@@ -440723,7 +440576,7 @@ function Element4(props) {
440723
440576
  }
440724
440577
  }, children);
440725
440578
  case "code_block":
440726
- return /* @__PURE__ */ import_react371.default.createElement("code", {
440579
+ return /* @__PURE__ */ import_react369.default.createElement("code", {
440727
440580
  ...attributes,
440728
440581
  style: {
440729
440582
  textAlign: props.element.horisontalAlignment,
@@ -440733,7 +440586,7 @@ function Element4(props) {
440733
440586
  }
440734
440587
  }, children);
440735
440588
  case "list_item":
440736
- return /* @__PURE__ */ import_react371.default.createElement("li", {
440589
+ return /* @__PURE__ */ import_react369.default.createElement("li", {
440737
440590
  ...attributes,
440738
440591
  className: TextEditor_module_default.listItem,
440739
440592
  style: {
@@ -440747,7 +440600,7 @@ function Element4(props) {
440747
440600
  }
440748
440601
  }, children);
440749
440602
  default:
440750
- return /* @__PURE__ */ import_react371.default.createElement("span", {
440603
+ return /* @__PURE__ */ import_react369.default.createElement("span", {
440751
440604
  ...attributes,
440752
440605
  style: {
440753
440606
  textAlign: props.element.horisontalAlignment,
@@ -440770,7 +440623,7 @@ function verticalAlignmentToFlex(align2) {
440770
440623
  }
440771
440624
 
440772
440625
  // src/features/TextEditor/TextEditor.tsx
440773
- class TextEditors extends import_react372.default.Component {
440626
+ class TextEditors extends import_react370.default.Component {
440774
440627
  observer = () => {
440775
440628
  this.forceUpdate();
440776
440629
  };
@@ -440789,7 +440642,7 @@ class TextEditors extends import_react372.default.Component {
440789
440642
  if (!text5) {
440790
440643
  return null;
440791
440644
  }
440792
- return /* @__PURE__ */ import_react372.default.createElement(TextEditor, {
440645
+ return /* @__PURE__ */ import_react370.default.createElement(TextEditor, {
440793
440646
  app: this.props.app,
440794
440647
  board: this.props.board,
440795
440648
  text: text5,
@@ -440801,7 +440654,7 @@ class TextEditors extends import_react372.default.Component {
440801
440654
  }
440802
440655
  }
440803
440656
 
440804
- class TextEditor extends import_react372.default.Component {
440657
+ class TextEditor extends import_react370.default.Component {
440805
440658
  static getDerivedStateFromError(error3) {
440806
440659
  console.error("Text Editor error", error3);
440807
440660
  return { hasError: true };
@@ -440830,8 +440683,8 @@ class TextEditor extends import_react372.default.Component {
440830
440683
  isButtonVisible: false,
440831
440684
  isQuoteBtnTooltipVisible: false
440832
440685
  };
440833
- containerRef = import_react372.default.createRef();
440834
- editableRef = import_react372.default.createRef();
440686
+ containerRef = import_react370.default.createRef();
440687
+ editableRef = import_react370.default.createRef();
440835
440688
  updateHyperLinkDataFromSelectionAnchor(editor, isWatchMode) {
440836
440689
  const link2 = editor.getFirstSelectionLink(editor.getSelection());
440837
440690
  if (link2) {
@@ -441012,7 +440865,7 @@ class TextEditor extends import_react372.default.Component {
441012
440865
  const editorMaxWidth = text5.insideOf === "Sticker" ? maxWidth3 : Math.ceil(maxWidth3);
441013
440866
  const showPlaceholder = !text5.editor.includesListNode() && text5.getTextString().length === 0;
441014
440867
  if (this.state.hasError) {
441015
- return /* @__PURE__ */ import_react372.default.createElement("div", {
440868
+ return /* @__PURE__ */ import_react370.default.createElement("div", {
441016
440869
  id: "TextEditor",
441017
440870
  ref: this.containerRef,
441018
440871
  className: "notranslate",
@@ -441044,7 +440897,7 @@ class TextEditor extends import_react372.default.Component {
441044
440897
  }
441045
440898
  }, "An editor error has occured");
441046
440899
  }
441047
- return /* @__PURE__ */ import_react372.default.createElement(import_react372.default.Fragment, null, /* @__PURE__ */ import_react372.default.createElement("div", {
440900
+ return /* @__PURE__ */ import_react370.default.createElement(import_react370.default.Fragment, null, /* @__PURE__ */ import_react370.default.createElement("div", {
441048
440901
  id: "TextEditor",
441049
440902
  ref: this.containerRef,
441050
440903
  className: "notranslate",
@@ -441077,7 +440930,7 @@ class TextEditor extends import_react372.default.Component {
441077
440930
  willChange: "transform",
441078
440931
  transform: "translate3d(0,0,0)"
441079
440932
  }
441080
- }, /* @__PURE__ */ import_react372.default.createElement("div", {
440933
+ }, /* @__PURE__ */ import_react370.default.createElement("div", {
441081
440934
  ref: this.editableRef,
441082
440935
  style: {
441083
440936
  position: "relative",
@@ -441093,14 +440946,14 @@ class TextEditor extends import_react372.default.Component {
441093
440946
  },
441094
440947
  className: clsx_default(TextEditor_module_default.editorContainer, showPlaceholder && TextEditor_module_default.showPlaceholder),
441095
440948
  "data-placeholder": text5.placeholderText
441096
- }, /* @__PURE__ */ import_react372.default.createElement(Slate, {
440949
+ }, /* @__PURE__ */ import_react370.default.createElement(Slate, {
441097
440950
  editor: text5.editor.editor,
441098
440951
  initialValue: text5.getText(),
441099
440952
  key: text5.rtCounter,
441100
440953
  onChange: this.handleSelectionChange
441101
- }, /* @__PURE__ */ import_react372.default.createElement(Editable, {
440954
+ }, /* @__PURE__ */ import_react370.default.createElement(Editable, {
441102
440955
  renderElement: Element4,
441103
- renderLeaf: (props) => /* @__PURE__ */ import_react372.default.createElement(Leaf2, {
440956
+ renderLeaf: (props) => /* @__PURE__ */ import_react370.default.createElement(Leaf2, {
441104
440957
  fontSize: text5.getFontSize(),
441105
440958
  isAutoSize: text5.isAutosize(),
441106
440959
  ...props
@@ -441118,7 +440971,7 @@ class TextEditor extends import_react372.default.Component {
441118
440971
  fontSize: text5.isEmpty() ? `${window.MICROBOARD_CONFIG.DEFAULT_TEXT_STYLES.fontSize}px` : undefined
441119
440972
  },
441120
440973
  autoFocus: this.props.text.getLastClickPoint() ? false : true
441121
- }))), /* @__PURE__ */ import_react372.default.createElement(Icon, {
440974
+ }))), /* @__PURE__ */ import_react370.default.createElement(Icon, {
441122
440975
  iconName: "TextLimitWarning",
441123
440976
  width: this.editableRef.current?.offsetWidth,
441124
440977
  height: this.editableRef.current?.offsetHeight,
@@ -441126,7 +440979,7 @@ class TextEditor extends import_react372.default.Component {
441126
440979
  style: {
441127
440980
  transform: `translate(0px) scale(${editorScale})`
441128
440981
  }
441129
- })), isButtonVisible && buttonPosition && text5.insideOf === "AINode" && /* @__PURE__ */ import_react372.default.createElement("button", {
440982
+ })), isButtonVisible && buttonPosition && text5.insideOf === "AINode" && /* @__PURE__ */ import_react370.default.createElement("button", {
441130
440983
  onMouseEnter: () => this.setState({
441131
440984
  isQuoteBtnTooltipVisible: true
441132
440985
  }),
@@ -441140,15 +440993,15 @@ class TextEditor extends import_react372.default.Component {
441140
440993
  top: buttonPosition.top,
441141
440994
  left: buttonPosition.left
441142
440995
  }
441143
- }, this.state.isQuoteBtnTooltipVisible && /* @__PURE__ */ import_react372.default.createElement("div", {
440996
+ }, this.state.isQuoteBtnTooltipVisible && /* @__PURE__ */ import_react370.default.createElement("div", {
441144
440997
  className: TextEditor_module_default.tooltip
441145
- }, window.MICROBOARD_CONFIG.i18n.t("AIInput.quoteBtnTooltip")), /* @__PURE__ */ import_react372.default.createElement("svg", {
440998
+ }, window.MICROBOARD_CONFIG.i18n.t("AIInput.quoteBtnTooltip")), /* @__PURE__ */ import_react370.default.createElement("svg", {
441146
440999
  width: "16",
441147
441000
  height: "16",
441148
441001
  viewBox: "0 0 12 10",
441149
441002
  fill: "none",
441150
441003
  xmlns: "http://www.w3.org/2000/svg"
441151
- }, /* @__PURE__ */ import_react372.default.createElement("path", {
441004
+ }, /* @__PURE__ */ import_react370.default.createElement("path", {
441152
441005
  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",
441153
441006
  fill: "#696B76"
441154
441007
  }))));
@@ -441156,11 +441009,11 @@ class TextEditor extends import_react372.default.Component {
441156
441009
  }
441157
441010
 
441158
441011
  // src/features/ToastProvider.tsx
441159
- var import_react373 = __toESM(require_react(), 1);
441012
+ var import_react371 = __toESM(require_react(), 1);
441160
441013
  function ToastProvider() {
441161
441014
  const isPhoneScreenCheck = () => matchMedia("screen and (max-width: 640px)").matches;
441162
- const [isPhoneScreen, setIsPhoneScreen] = import_react373.useState(isPhoneScreenCheck);
441163
- import_react373.useEffect(() => {
441015
+ const [isPhoneScreen, setIsPhoneScreen] = import_react371.useState(isPhoneScreenCheck);
441016
+ import_react371.useEffect(() => {
441164
441017
  const setScreen = () => {
441165
441018
  setIsPhoneScreen(isPhoneScreenCheck());
441166
441019
  };
@@ -441169,7 +441022,7 @@ function ToastProvider() {
441169
441022
  window.removeEventListener("resize", setScreen);
441170
441023
  };
441171
441024
  });
441172
- return /* @__PURE__ */ import_react373.default.createElement(Ie, {
441025
+ return /* @__PURE__ */ import_react371.default.createElement(Ie, {
441173
441026
  containerStyle: isPhoneScreen ? {
441174
441027
  left: 10,
441175
441028
  top: 10,
@@ -441183,7 +441036,7 @@ function ToastProvider() {
441183
441036
  var import_react405 = __toESM(require_react(), 1);
441184
441037
 
441185
441038
  // src/entities/comments/CommentsPanel/CommentsPanelContext.tsx
441186
- var import_react374 = __toESM(require_react(), 1);
441039
+ var import_react372 = __toESM(require_react(), 1);
441187
441040
  var CommentsPanelContext = createStrictContext();
441188
441041
  function useCommentsPanelContext() {
441189
441042
  return useStrictContext(CommentsPanelContext);
@@ -441191,8 +441044,8 @@ function useCommentsPanelContext() {
441191
441044
  var CommentsPanelContextProvider = ({
441192
441045
  children
441193
441046
  }) => {
441194
- const [isPanelOpen, setIsPanelOpen] = import_react374.useState(false);
441195
- return /* @__PURE__ */ import_react374.default.createElement(CommentsPanelContext.Provider, {
441047
+ const [isPanelOpen, setIsPanelOpen] = import_react372.useState(false);
441048
+ return /* @__PURE__ */ import_react372.default.createElement(CommentsPanelContext.Provider, {
441196
441049
  value: {
441197
441050
  isPanelOpen,
441198
441051
  setIsPanelOpen
@@ -441201,20 +441054,20 @@ var CommentsPanelContextProvider = ({
441201
441054
  };
441202
441055
 
441203
441056
  // src/features/UserPanel/UserPic/UserPic.tsx
441204
- var import_react378 = __toESM(require_react(), 1);
441057
+ var import_react376 = __toESM(require_react(), 1);
441205
441058
 
441206
441059
  // src/features/Presence/BringToMe/BringToMe.tsx
441207
- var import_react376 = __toESM(require_react(), 1);
441060
+ var import_react374 = __toESM(require_react(), 1);
441208
441061
 
441209
441062
  // src/features/Presence/PresenceUsers/EyeIcon.tsx
441210
- var import_react375 = __toESM(require_react(), 1);
441211
- var EyeIcon = ({ fill: fill3 = "#14151A" }) => /* @__PURE__ */ import_react375.default.createElement("svg", {
441063
+ var import_react373 = __toESM(require_react(), 1);
441064
+ var EyeIcon = ({ fill: fill3 = "#14151A" }) => /* @__PURE__ */ import_react373.default.createElement("svg", {
441212
441065
  width: "16",
441213
441066
  height: "16",
441214
441067
  viewBox: "0 0 16 16",
441215
441068
  fill: "none",
441216
441069
  xmlns: "http://www.w3.org/2000/svg"
441217
- }, /* @__PURE__ */ import_react375.default.createElement("path", {
441070
+ }, /* @__PURE__ */ import_react373.default.createElement("path", {
441218
441071
  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",
441219
441072
  fill: fill3
441220
441073
  }));
@@ -441287,11 +441140,11 @@ var UserActionsDropdown = ({
441287
441140
  userId,
441288
441141
  onClose
441289
441142
  }) => {
441290
- const dropdownRef = import_react376.useRef(null);
441143
+ const dropdownRef = import_react374.useRef(null);
441291
441144
  const { board } = useAppContext();
441292
441145
  const { t: t11 } = useTranslation();
441293
441146
  const notifyPosition = window.innerWidth < 768 ? "top-center" : "bottom-center";
441294
- import_react376.useEffect(() => {
441147
+ import_react374.useEffect(() => {
441295
441148
  const handleClickOutside = (event) => {
441296
441149
  if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {
441297
441150
  onClose();
@@ -441329,10 +441182,10 @@ var UserActionsDropdown = ({
441329
441182
  });
441330
441183
  onClose();
441331
441184
  };
441332
- return /* @__PURE__ */ import_react376.default.createElement("div", {
441185
+ return /* @__PURE__ */ import_react374.default.createElement("div", {
441333
441186
  ref: dropdownRef,
441334
441187
  className: BringToMe_module_default.userActionsDropdown
441335
- }, /* @__PURE__ */ import_react376.default.createElement(UiButton, {
441188
+ }, /* @__PURE__ */ import_react374.default.createElement(UiButton, {
441336
441189
  className: BringToMe_module_default.dropdownButton,
441337
441190
  size: "sm",
441338
441191
  radius: "md",
@@ -441341,12 +441194,12 @@ var UserActionsDropdown = ({
441341
441194
  onMouseDown: (ev) => {
441342
441195
  ev.stopPropagation();
441343
441196
  }
441344
- }, /* @__PURE__ */ import_react376.default.createElement(Icon, {
441197
+ }, /* @__PURE__ */ import_react374.default.createElement(Icon, {
441345
441198
  iconName: "FollowUser",
441346
441199
  width: 16,
441347
441200
  height: 16,
441348
441201
  className: BringToMe_module_default.icon
441349
- }), /* @__PURE__ */ import_react376.default.createElement("span", null, t11("presence.followUser"))), /* @__PURE__ */ import_react376.default.createElement(UiButton, {
441202
+ }), /* @__PURE__ */ import_react374.default.createElement("span", null, t11("presence.followUser"))), /* @__PURE__ */ import_react374.default.createElement(UiButton, {
441350
441203
  className: BringToMe_module_default.dropdownButton,
441351
441204
  size: "sm",
441352
441205
  radius: "md",
@@ -441355,22 +441208,22 @@ var UserActionsDropdown = ({
441355
441208
  onMouseDown: (ev) => {
441356
441209
  ev.stopPropagation();
441357
441210
  }
441358
- }, /* @__PURE__ */ import_react376.default.createElement(Icon, {
441211
+ }, /* @__PURE__ */ import_react374.default.createElement(Icon, {
441359
441212
  iconName: "BringToMe",
441360
441213
  width: 16,
441361
441214
  height: 16,
441362
441215
  className: BringToMe_module_default.icon
441363
- }), /* @__PURE__ */ import_react376.default.createElement("span", null, t11("presence.bringToMe"))));
441216
+ }), /* @__PURE__ */ import_react374.default.createElement("span", null, t11("presence.bringToMe"))));
441364
441217
  };
441365
441218
  var BringToMe = ({ followers, users }) => {
441366
441219
  const { board } = useAppContext();
441367
441220
  const { t: t11 } = useTranslation();
441368
- const modalRef = import_react376.useRef(null);
441369
- const [trackedUser, setIsTrackedUser] = import_react376.useState();
441370
- const [openDropdownUserId, setOpenDropdownUserId] = import_react376.useState(null);
441371
- const [searchTerm, setSearchTerm] = import_react376.useState("");
441221
+ const modalRef = import_react374.useRef(null);
441222
+ const [trackedUser, setIsTrackedUser] = import_react374.useState();
441223
+ const [openDropdownUserId, setOpenDropdownUserId] = import_react374.useState(null);
441224
+ const [searchTerm, setSearchTerm] = import_react374.useState("");
441372
441225
  const notifyPosition = window.innerWidth < 768 ? "top-center" : "bottom-center";
441373
- import_react376.useEffect(() => {
441226
+ import_react374.useEffect(() => {
441374
441227
  const observer = (presence) => {
441375
441228
  setIsTrackedUser(presence.trackedUser || null);
441376
441229
  };
@@ -441379,18 +441232,18 @@ var BringToMe = ({ followers, users }) => {
441379
441232
  board.presence.subject.unsubscribe(observer);
441380
441233
  };
441381
441234
  });
441382
- const filteredUsers = import_react376.useMemo(() => {
441235
+ const filteredUsers = import_react374.useMemo(() => {
441383
441236
  return users.filter((user) => user.name.toLowerCase().includes(searchTerm.toLowerCase()));
441384
441237
  }, [users, searchTerm]);
441385
- return /* @__PURE__ */ import_react376.default.createElement("div", {
441238
+ return /* @__PURE__ */ import_react374.default.createElement("div", {
441386
441239
  className: PresenceUsers_module_default.shareModal,
441387
441240
  ref: modalRef
441388
- }, /* @__PURE__ */ import_react376.default.createElement("div", {
441241
+ }, /* @__PURE__ */ import_react374.default.createElement("div", {
441389
441242
  className: PresenceUsers_module_default.shareModalSearch
441390
- }, /* @__PURE__ */ import_react376.default.createElement(Input, {
441243
+ }, /* @__PURE__ */ import_react374.default.createElement(Input, {
441391
441244
  id: "searchNicknameId",
441392
441245
  placeholder: t11("presence.searchByName"),
441393
- prefixIcon: /* @__PURE__ */ import_react376.default.createElement(Icon, {
441246
+ prefixIcon: /* @__PURE__ */ import_react374.default.createElement(Icon, {
441394
441247
  iconName: "Search",
441395
441248
  height: 16,
441396
441249
  width: 16,
@@ -441403,34 +441256,34 @@ var BringToMe = ({ followers, users }) => {
441403
441256
  setSearchTerm(ev.target.value);
441404
441257
  setOpenDropdownUserId(null);
441405
441258
  }
441406
- })), /* @__PURE__ */ import_react376.default.createElement("div", {
441259
+ })), /* @__PURE__ */ import_react374.default.createElement("div", {
441407
441260
  className: PresenceUsers_module_default.shareList
441408
- }, filteredUsers.map((user) => /* @__PURE__ */ import_react376.default.createElement("div", {
441261
+ }, filteredUsers.map((user) => /* @__PURE__ */ import_react374.default.createElement("div", {
441409
441262
  key: user.id,
441410
441263
  className: `${PresenceUsers_module_default.shareUser} ${BringToMe_module_default.userListItem}`
441411
- }, user?.avatar ? /* @__PURE__ */ import_react376.default.createElement("img", {
441264
+ }, user?.avatar ? /* @__PURE__ */ import_react374.default.createElement("img", {
441412
441265
  src: user.avatar,
441413
441266
  className: clsx_default(PresenceUsers_module_default.shareUserPic, user.idle && BringToMe_module_default.idleAvatar),
441414
441267
  style: {
441415
441268
  border: `1px solid ${trackedUser && trackedUser.userId === user.id ? user.color : "transparent"}`
441416
441269
  }
441417
- }) : /* @__PURE__ */ import_react376.default.createElement("div", {
441270
+ }) : /* @__PURE__ */ import_react374.default.createElement("div", {
441418
441271
  className: clsx_default(PresenceUsers_module_default.shareUserPic, user.idle && BringToMe_module_default.idleAvatar),
441419
441272
  style: {
441420
441273
  backgroundColor: rgbToRgba(user.color, 0.5),
441421
441274
  border: `1px solid ${trackedUser && trackedUser.userId === user.id ? user.color : "transparent"}`
441422
441275
  }
441423
- }, user.name.charAt(0).toUpperCase()), trackedUser && trackedUser.userId === user.id && /* @__PURE__ */ import_react376.default.createElement("div", {
441276
+ }, user.name.charAt(0).toUpperCase()), trackedUser && trackedUser.userId === user.id && /* @__PURE__ */ import_react374.default.createElement("div", {
441424
441277
  className: PresenceUsers_module_default.shareEye
441425
- }, /* @__PURE__ */ import_react376.default.createElement(EyeIcon, null)), /* @__PURE__ */ import_react376.default.createElement("div", {
441278
+ }, /* @__PURE__ */ import_react374.default.createElement(EyeIcon, null)), /* @__PURE__ */ import_react374.default.createElement("div", {
441426
441279
  className: clsx_default(user.idle && BringToMe_module_default.idleHide)
441427
- }, /* @__PURE__ */ import_react376.default.createElement("p", {
441280
+ }, /* @__PURE__ */ import_react374.default.createElement("p", {
441428
441281
  className: BringToMe_module_default.nickname
441429
- }, user.name), user.idle && /* @__PURE__ */ import_react376.default.createElement("p", {
441282
+ }, user.name), user.idle && /* @__PURE__ */ import_react374.default.createElement("p", {
441430
441283
  className: BringToMe_module_default.idle
441431
- }, t11("presence.idle"))), /* @__PURE__ */ import_react376.default.createElement("div", {
441284
+ }, t11("presence.idle"))), /* @__PURE__ */ import_react374.default.createElement("div", {
441432
441285
  className: BringToMe_module_default.userActionsContainer
441433
- }, /* @__PURE__ */ import_react376.default.createElement(UiButton, {
441286
+ }, /* @__PURE__ */ import_react374.default.createElement(UiButton, {
441434
441287
  className: BringToMe_module_default.btn,
441435
441288
  size: "md",
441436
441289
  radius: "md",
@@ -441442,20 +441295,20 @@ var BringToMe = ({ followers, users }) => {
441442
441295
  onClick: (ev) => {
441443
441296
  ev.stopPropagation();
441444
441297
  }
441445
- }, /* @__PURE__ */ import_react376.default.createElement(Icon, {
441298
+ }, /* @__PURE__ */ import_react374.default.createElement(Icon, {
441446
441299
  iconName: "ThreeDots",
441447
441300
  width: 20,
441448
441301
  height: 20
441449
- })), openDropdownUserId === user.id && /* @__PURE__ */ import_react376.default.createElement(UserActionsDropdown, {
441302
+ })), openDropdownUserId === user.id && /* @__PURE__ */ import_react374.default.createElement(UserActionsDropdown, {
441450
441303
  userId: user.id,
441451
441304
  onClose: () => setOpenDropdownUserId(null)
441452
- }))))), filteredUsers.length === 0 && searchTerm && /* @__PURE__ */ import_react376.default.createElement("div", {
441305
+ }))))), filteredUsers.length === 0 && searchTerm && /* @__PURE__ */ import_react374.default.createElement("div", {
441453
441306
  className: BringToMe_module_default.noResults
441454
- }, /* @__PURE__ */ import_react376.default.createElement("span", null, t11("presence.noUsersFound")), /* @__PURE__ */ import_react376.default.createElement("p", {
441307
+ }, /* @__PURE__ */ import_react374.default.createElement("span", null, t11("presence.noUsersFound")), /* @__PURE__ */ import_react374.default.createElement("p", {
441455
441308
  className: BringToMe_module_default.noResultsTerm
441456
- }, '"', searchTerm, '"'), /* @__PURE__ */ import_react376.default.createElement("span", null, t11("presence.noUsersFoundPostfix"))), /* @__PURE__ */ import_react376.default.createElement("div", {
441309
+ }, '"', searchTerm, '"'), /* @__PURE__ */ import_react374.default.createElement("span", null, t11("presence.noUsersFoundPostfix"))), /* @__PURE__ */ import_react374.default.createElement("div", {
441457
441310
  className: BringToMe_module_default.btns
441458
- }, /* @__PURE__ */ import_react376.default.createElement(UiButton, {
441311
+ }, /* @__PURE__ */ import_react374.default.createElement(UiButton, {
441459
441312
  size: "md",
441460
441313
  className: BringToMe_module_default.btnBring,
441461
441314
  onClick: () => {
@@ -441480,7 +441333,7 @@ var BringToMe = ({ followers, users }) => {
441480
441333
  });
441481
441334
  }
441482
441335
  }
441483
- }, t11("presence.bringToMe")), followers.length > 0 && /* @__PURE__ */ import_react376.default.createElement(UiButton, {
441336
+ }, t11("presence.bringToMe")), followers.length > 0 && /* @__PURE__ */ import_react374.default.createElement(UiButton, {
441484
441337
  className: BringToMe_module_default.btnStop,
441485
441338
  variant: "secondary",
441486
441339
  size: "md",
@@ -441492,18 +441345,18 @@ var BringToMe = ({ followers, users }) => {
441492
441345
  users: followers.map((follower) => follower.userId)
441493
441346
  });
441494
441347
  }
441495
- }, /* @__PURE__ */ import_react376.default.createElement(Icon, {
441348
+ }, /* @__PURE__ */ import_react374.default.createElement(Icon, {
441496
441349
  iconName: "EyeDashed",
441497
441350
  width: 16,
441498
441351
  height: 16,
441499
441352
  style: { color: "#696B76" }
441500
- }), /* @__PURE__ */ import_react376.default.createElement("span", {
441353
+ }), /* @__PURE__ */ import_react374.default.createElement("span", {
441501
441354
  className: BringToMe_module_default.text
441502
441355
  }, `${t11("presence.stop")} ${followers.length} ${followers?.length > 1 ? t11("presence.followers") : t11("presence.follower")}`))));
441503
441356
  };
441504
441357
 
441505
441358
  // src/features/UserPanel/UserDropdown/UserDropdown.tsx
441506
- var import_react377 = __toESM(require_react(), 1);
441359
+ var import_react375 = __toESM(require_react(), 1);
441507
441360
  var UserDropDown = ({
441508
441361
  setIsDropdownOpen,
441509
441362
  isOpen,
@@ -441522,26 +441375,26 @@ var UserDropDown = ({
441522
441375
  if (!isOpen) {
441523
441376
  return null;
441524
441377
  }
441525
- return /* @__PURE__ */ import_react377.default.createElement("div", {
441378
+ return /* @__PURE__ */ import_react375.default.createElement("div", {
441526
441379
  className: UserPanel_module_default.dropdownWrapper,
441527
441380
  ref: dropdownRef,
441528
441381
  style: { top: customTop }
441529
- }, email && /* @__PURE__ */ import_react377.default.createElement("div", {
441382
+ }, email && /* @__PURE__ */ import_react375.default.createElement("div", {
441530
441383
  className: UserPanel_module_default.userInfo
441531
- }, /* @__PURE__ */ import_react377.default.createElement(UserAvatar, {
441384
+ }, /* @__PURE__ */ import_react375.default.createElement(UserAvatar, {
441532
441385
  src: account.info?.avatar,
441533
441386
  width: 40,
441534
441387
  height: 40
441535
- }), /* @__PURE__ */ import_react377.default.createElement("p", {
441388
+ }), /* @__PURE__ */ import_react375.default.createElement("p", {
441536
441389
  className: UserPanel_module_default.userName
441537
- }, email)), /* @__PURE__ */ import_react377.default.createElement("div", {
441390
+ }, email)), /* @__PURE__ */ import_react375.default.createElement("div", {
441538
441391
  className: UserPanel_module_default.dropdownBtns
441539
- }, buttons.filter(import_react377.default.isValidElement).map((button, index4) => {
441540
- return import_react377.default.cloneElement(button, {
441392
+ }, buttons.filter(import_react375.default.isValidElement).map((button, index4) => {
441393
+ return import_react375.default.cloneElement(button, {
441541
441394
  className: UserPanel_module_default.dropdownBtn,
441542
441395
  key: index4
441543
441396
  });
441544
- }), presenceUsers.length > 0 && /* @__PURE__ */ import_react377.default.createElement(BringToMe, {
441397
+ }), presenceUsers.length > 0 && /* @__PURE__ */ import_react375.default.createElement(BringToMe, {
441545
441398
  followers,
441546
441399
  users: presenceUsers
441547
441400
  })));
@@ -441566,7 +441419,7 @@ var UserPic = ({ ...props }) => {
441566
441419
  const { t: t11 } = useTranslation();
441567
441420
  const { board } = useAppContext();
441568
441421
  const { setIsPanelOpen } = useCommentsPanelContext();
441569
- const userPanelRef = import_react378.useRef(null);
441422
+ const userPanelRef = import_react376.useRef(null);
441570
441423
  const account = useAccount();
441571
441424
  const { openModal: openModal2 } = useUiModalContext();
441572
441425
  const navigate = useNavigate();
@@ -441597,7 +441450,7 @@ var UserPic = ({ ...props }) => {
441597
441450
  ev.stopPropagation();
441598
441451
  navigate("/admin");
441599
441452
  };
441600
- return /* @__PURE__ */ import_react378.default.createElement(import_react378.default.Fragment, null, /* @__PURE__ */ import_react378.default.createElement("div", {
441453
+ return /* @__PURE__ */ import_react376.default.createElement(import_react376.default.Fragment, null, /* @__PURE__ */ import_react376.default.createElement("div", {
441601
441454
  className: UserPanel_module_default.userPicWrapper,
441602
441455
  ref: userPanelRef,
441603
441456
  onClick: (event) => {
@@ -441610,14 +441463,14 @@ var UserPic = ({ ...props }) => {
441610
441463
  setIsPanelOpen(false);
441611
441464
  }
441612
441465
  }
441613
- }, /* @__PURE__ */ import_react378.default.createElement(UserAvatar, {
441466
+ }, /* @__PURE__ */ import_react376.default.createElement(UserAvatar, {
441614
441467
  src: account.info?.avatar,
441615
441468
  isOwner,
441616
441469
  tooltip: !props.isDropdownOpen,
441617
441470
  name: account.info?.name
441618
- }), /* @__PURE__ */ import_react378.default.createElement(FollowingUsersCount, {
441471
+ }), /* @__PURE__ */ import_react376.default.createElement(FollowingUsersCount, {
441619
441472
  followers: props.followers
441620
- })), /* @__PURE__ */ import_react378.default.createElement(UserDropDown, {
441473
+ })), /* @__PURE__ */ import_react376.default.createElement(UserDropDown, {
441621
441474
  openerRef: userPanelRef,
441622
441475
  isOpen: props.isDropdownOpen,
441623
441476
  setIsDropdownOpen: props.setIsDropdownOpen,
@@ -441625,67 +441478,67 @@ var UserPic = ({ ...props }) => {
441625
441478
  followers: props.followers,
441626
441479
  presenceUsers: props.presenceUsers,
441627
441480
  buttons: [
441628
- /* @__PURE__ */ import_react378.default.createElement(UiButton, {
441481
+ /* @__PURE__ */ import_react376.default.createElement(UiButton, {
441629
441482
  type: "button",
441630
441483
  key: "userDropDown1",
441631
441484
  onClick: handlePlanModalOpen,
441632
441485
  variant: "ghost",
441633
441486
  size: "lg"
441634
- }, /* @__PURE__ */ import_react378.default.createElement(Icon, {
441487
+ }, /* @__PURE__ */ import_react376.default.createElement(Icon, {
441635
441488
  iconName: "ArrowUpCircle",
441636
441489
  width: 20,
441637
441490
  height: 20
441638
- }), " ", /* @__PURE__ */ import_react378.default.createElement("span", {
441491
+ }), " ", /* @__PURE__ */ import_react376.default.createElement("span", {
441639
441492
  className: UserPanel_module_default.userDropDownButton
441640
441493
  }, t11("userPlan.upgradePlan"))),
441641
- /* @__PURE__ */ import_react378.default.createElement(UiButton, {
441494
+ /* @__PURE__ */ import_react376.default.createElement(UiButton, {
441642
441495
  type: "button",
441643
441496
  key: "userDropDown2",
441644
441497
  onClick: handleOpenProfileSettings,
441645
441498
  variant: "ghost",
441646
441499
  size: "lg"
441647
- }, /* @__PURE__ */ import_react378.default.createElement(Icon, {
441500
+ }, /* @__PURE__ */ import_react376.default.createElement(Icon, {
441648
441501
  width: 20,
441649
441502
  height: 20,
441650
441503
  iconName: "human"
441651
- }), " ", /* @__PURE__ */ import_react378.default.createElement("span", {
441504
+ }), " ", /* @__PURE__ */ import_react376.default.createElement("span", {
441652
441505
  className: UserPanel_module_default.userDropDownButton
441653
441506
  }, t11("profile.title"))),
441654
- /* @__PURE__ */ import_react378.default.createElement(UiButton, {
441507
+ /* @__PURE__ */ import_react376.default.createElement(UiButton, {
441655
441508
  type: "button",
441656
441509
  key: "userDropDown2",
441657
441510
  onClick: handleOpenSupport,
441658
441511
  variant: "ghost",
441659
441512
  size: "lg"
441660
- }, /* @__PURE__ */ import_react378.default.createElement(Icon, {
441513
+ }, /* @__PURE__ */ import_react376.default.createElement(Icon, {
441661
441514
  width: 20,
441662
441515
  height: 20,
441663
441516
  iconName: "support"
441664
- }), " ", /* @__PURE__ */ import_react378.default.createElement("span", {
441517
+ }), " ", /* @__PURE__ */ import_react376.default.createElement("span", {
441665
441518
  className: UserPanel_module_default.userDropDownButton
441666
441519
  }, t11("profile.support"))),
441667
- /* @__PURE__ */ import_react378.default.createElement(ComponentRolesGuard, {
441520
+ /* @__PURE__ */ import_react376.default.createElement(ComponentRolesGuard, {
441668
441521
  allowedRoles: ["ADMIN" /* ADMIN */]
441669
- }, /* @__PURE__ */ import_react378.default.createElement(UiButton, {
441522
+ }, /* @__PURE__ */ import_react376.default.createElement(UiButton, {
441670
441523
  type: "button",
441671
441524
  key: "userDropDown3",
441672
441525
  onClick: handleOpenAdminPage,
441673
441526
  variant: "ghost",
441674
441527
  size: "lg"
441675
- }, /* @__PURE__ */ import_react378.default.createElement(Icon, {
441528
+ }, /* @__PURE__ */ import_react376.default.createElement(Icon, {
441676
441529
  width: 20,
441677
441530
  height: 20,
441678
441531
  iconName: "Admin"
441679
- }), " ", /* @__PURE__ */ import_react378.default.createElement("span", {
441532
+ }), " ", /* @__PURE__ */ import_react376.default.createElement("span", {
441680
441533
  className: UserPanel_module_default.userDropDownButton
441681
441534
  }, t11("profile.adminPanel")))),
441682
- /* @__PURE__ */ import_react378.default.createElement(UiButton, {
441535
+ /* @__PURE__ */ import_react376.default.createElement(UiButton, {
441683
441536
  type: "button",
441684
441537
  key: "userDropDown4",
441685
441538
  onClick: handleLogout,
441686
441539
  variant: "ghost",
441687
441540
  size: "lg"
441688
- }, /* @__PURE__ */ import_react378.default.createElement(Logout, null), /* @__PURE__ */ import_react378.default.createElement("span", {
441541
+ }, /* @__PURE__ */ import_react376.default.createElement(Logout, null), /* @__PURE__ */ import_react376.default.createElement("span", {
441689
441542
  className: UserPanel_module_default.userDropDownButton
441690
441543
  }, t11("profile.logout")))
441691
441544
  ]
@@ -441693,18 +441546,18 @@ var UserPic = ({ ...props }) => {
441693
441546
  };
441694
441547
 
441695
441548
  // src/features/Presence/PresenceUsers/PresenceUsers.tsx
441696
- var import_react380 = __toESM(require_react(), 1);
441549
+ var import_react378 = __toESM(require_react(), 1);
441697
441550
 
441698
441551
  // src/features/Presence/PresenceUsers/PresenceUserAvatar.tsx
441699
- var import_react379 = __toESM(require_react(), 1);
441552
+ var import_react377 = __toESM(require_react(), 1);
441700
441553
  var TippySvg = () => {
441701
- return /* @__PURE__ */ import_react379.default.createElement("svg", {
441554
+ return /* @__PURE__ */ import_react377.default.createElement("svg", {
441702
441555
  width: "14",
441703
441556
  height: "4",
441704
441557
  viewBox: "0 0 14 4",
441705
441558
  fill: "none",
441706
441559
  xmlns: "http://www.w3.org/2000/svg"
441707
- }, /* @__PURE__ */ import_react379.default.createElement("path", {
441560
+ }, /* @__PURE__ */ import_react377.default.createElement("path", {
441708
441561
  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",
441709
441562
  fill: "#0B0C0E"
441710
441563
  }));
@@ -441717,35 +441570,35 @@ var PresenceUserAvatar = ({
441717
441570
  }) => {
441718
441571
  const isTracked = trackedUser?.userId === user.id;
441719
441572
  const { t: t11 } = useTranslation();
441720
- return /* @__PURE__ */ import_react379.default.createElement("div", {
441573
+ return /* @__PURE__ */ import_react377.default.createElement("div", {
441721
441574
  className: PresenceUsers_module_default.userWrapper,
441722
441575
  style: { "--index": index4 },
441723
441576
  onClick
441724
- }, /* @__PURE__ */ import_react379.default.createElement("div", {
441577
+ }, /* @__PURE__ */ import_react377.default.createElement("div", {
441725
441578
  className: clsx_default(PresenceUsers_module_default.userAvatar, isTracked ? PresenceUsers_module_default.selectedAvatar : "", user.idle && !isTracked ? PresenceUsers_module_default.idle : ""),
441726
441579
  style: {
441727
441580
  borderColor: user.color,
441728
441581
  backgroundColor: user.avatar ? undefined : rgbToRgba(user.color, 0.5)
441729
441582
  }
441730
- }, user.avatar ? /* @__PURE__ */ import_react379.default.createElement("img", {
441583
+ }, user.avatar ? /* @__PURE__ */ import_react377.default.createElement("img", {
441731
441584
  src: user.avatar,
441732
441585
  alt: user.name
441733
- }) : user.name.charAt(0), isTracked && /* @__PURE__ */ import_react379.default.createElement("div", {
441586
+ }) : user.name.charAt(0), isTracked && /* @__PURE__ */ import_react377.default.createElement("div", {
441734
441587
  className: PresenceUsers_module_default.trackedUserOverlay,
441735
441588
  style: {
441736
441589
  backgroundColor: rgbToRgba(user.color, 0.5) || user.color
441737
441590
  }
441738
- }, /* @__PURE__ */ import_react379.default.createElement(EyeIcon, null))), /* @__PURE__ */ import_react379.default.createElement("div", {
441591
+ }, /* @__PURE__ */ import_react377.default.createElement(EyeIcon, null))), /* @__PURE__ */ import_react377.default.createElement("div", {
441739
441592
  className: PresenceUsers_module_default.tooltip
441740
- }, user.name === "Anonymous" ? t11("presence.anonymous") : user.name), /* @__PURE__ */ import_react379.default.createElement("div", {
441593
+ }, user.name === "Anonymous" ? t11("presence.anonymous") : user.name), /* @__PURE__ */ import_react377.default.createElement("div", {
441741
441594
  className: PresenceUsers_module_default.tippy
441742
- }, /* @__PURE__ */ import_react379.default.createElement(TippySvg, null)));
441595
+ }, /* @__PURE__ */ import_react377.default.createElement(TippySvg, null)));
441743
441596
  };
441744
441597
 
441745
441598
  // src/features/Presence/PresenceUsers/PresenceUsers.tsx
441746
441599
  var FollowingUsersCount = ({ followers }) => {
441747
441600
  const { t: t11 } = useTranslation();
441748
- const [isOpen, setIsOpen] = import_react380.useState(false);
441601
+ const [isOpen, setIsOpen] = import_react378.useState(false);
441749
441602
  const account = useAccount();
441750
441603
  const tooltipRef = useClickOutside(() => {
441751
441604
  setIsOpen(false);
@@ -441753,9 +441606,9 @@ var FollowingUsersCount = ({ followers }) => {
441753
441606
  if (!followers.length) {
441754
441607
  return null;
441755
441608
  }
441756
- return /* @__PURE__ */ import_react380.default.createElement("div", {
441609
+ return /* @__PURE__ */ import_react378.default.createElement("div", {
441757
441610
  className: PresenceUsers_module_default.followingCounter
441758
- }, /* @__PURE__ */ import_react380.default.createElement("div", {
441611
+ }, /* @__PURE__ */ import_react378.default.createElement("div", {
441759
441612
  className: PresenceUsers_module_default.followingCounterIcon,
441760
441613
  onMouseDown: (ev) => {
441761
441614
  ev.stopPropagation();
@@ -441766,20 +441619,20 @@ var FollowingUsersCount = ({ followers }) => {
441766
441619
  }
441767
441620
  setIsOpen(!isOpen);
441768
441621
  }
441769
- }, /* @__PURE__ */ import_react380.default.createElement(EyeIcon, {
441622
+ }, /* @__PURE__ */ import_react378.default.createElement(EyeIcon, {
441770
441623
  fill: "white"
441771
- }), /* @__PURE__ */ import_react380.default.createElement("span", null, followers.length)), /* @__PURE__ */ import_react380.default.createElement("div", {
441624
+ }), /* @__PURE__ */ import_react378.default.createElement("span", null, followers.length)), /* @__PURE__ */ import_react378.default.createElement("div", {
441772
441625
  ref: tooltipRef,
441773
441626
  className: clsx_default(PresenceUsers_module_default.followersTooltip, isOpen && PresenceUsers_module_default.followersVisible)
441774
- }, /* @__PURE__ */ import_react380.default.createElement("p", {
441627
+ }, /* @__PURE__ */ import_react378.default.createElement("p", {
441775
441628
  className: PresenceUsers_module_default.followersMe
441776
- }, account.info?.email, " ", t11("presence.(you)")), /* @__PURE__ */ import_react380.default.createElement("span", {
441629
+ }, account.info?.email, " ", t11("presence.(you)")), /* @__PURE__ */ import_react378.default.createElement("span", {
441777
441630
  className: PresenceUsers_module_default.followersBoard
441778
- }, t11("presence.yourBoard")), /* @__PURE__ */ import_react380.default.createElement("div", {
441631
+ }, t11("presence.yourBoard")), /* @__PURE__ */ import_react378.default.createElement("div", {
441779
441632
  className: PresenceUsers_module_default.followersHr
441780
- }), /* @__PURE__ */ import_react380.default.createElement("div", {
441633
+ }), /* @__PURE__ */ import_react378.default.createElement("div", {
441781
441634
  className: PresenceUsers_module_default.followersList
441782
- }, followers.map((follower) => /* @__PURE__ */ import_react380.default.createElement("span", {
441635
+ }, followers.map((follower) => /* @__PURE__ */ import_react378.default.createElement("span", {
441783
441636
  key: follower.userId,
441784
441637
  className: PresenceUsers_module_default.followersItem
441785
441638
  }, follower.nickname, " ", t11("presence.following"))))));
@@ -441787,16 +441640,16 @@ var FollowingUsersCount = ({ followers }) => {
441787
441640
  var USERS_IN_ROW = 3;
441788
441641
  var PresenceUsers = () => {
441789
441642
  const { board } = useAppContext();
441790
- const [selectedUsers, setSelectedUsers] = import_react380.useState(new Set);
441791
- const [users, setUsers] = import_react380.useState([]);
441792
- const [followers, setFollowers] = import_react380.useState([]);
441793
- const [trackedUser, setTrackedUser] = import_react380.useState(null);
441794
- const [displayUsers, setDisplayUsers] = import_react380.useState(users);
441795
- const [isUserDropdownOpen, setIsUserDropdownOpen] = import_react380.useState(false);
441643
+ const [selectedUsers, setSelectedUsers] = import_react378.useState(new Set);
441644
+ const [users, setUsers] = import_react378.useState([]);
441645
+ const [followers, setFollowers] = import_react378.useState([]);
441646
+ const [trackedUser, setTrackedUser] = import_react378.useState(null);
441647
+ const [displayUsers, setDisplayUsers] = import_react378.useState(users);
441648
+ const [isUserDropdownOpen, setIsUserDropdownOpen] = import_react378.useState(false);
441796
441649
  const account = useAccount();
441797
441650
  const { setIsPanelOpen } = useCommentsPanelContext();
441798
441651
  const needsCollapse = users.length >= 3;
441799
- import_react380.useEffect(() => {
441652
+ import_react378.useEffect(() => {
441800
441653
  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);
441801
441654
  setDisplayUsers(sortedUsers.slice(0, USERS_IN_ROW));
441802
441655
  }, [users, selectedUsers]);
@@ -441826,7 +441679,7 @@ var PresenceUsers = () => {
441826
441679
  setUsers(uniqueUsersByHardId);
441827
441680
  setFollowers(board.presence.getFollowers());
441828
441681
  };
441829
- import_react380.useEffect(() => {
441682
+ import_react378.useEffect(() => {
441830
441683
  const observer = (presence) => {
441831
441684
  updateUsers(presence);
441832
441685
  setTrackedUser(presence.trackedUser || null);
@@ -441836,22 +441689,22 @@ var PresenceUsers = () => {
441836
441689
  board.presence.subject.unsubscribe(observer);
441837
441690
  };
441838
441691
  }, [board]);
441839
- import_react380.useEffect(() => {
441692
+ import_react378.useEffect(() => {
441840
441693
  updateUsers(board.presence);
441841
441694
  }, [board.getInterfaceType()]);
441842
- return /* @__PURE__ */ import_react380.default.createElement("div", {
441695
+ return /* @__PURE__ */ import_react378.default.createElement("div", {
441843
441696
  className: PresenceUsers_module_default.wrapper
441844
- }, /* @__PURE__ */ import_react380.default.createElement("div", {
441697
+ }, /* @__PURE__ */ import_react378.default.createElement("div", {
441845
441698
  className: PresenceUsers_module_default.container
441846
- }, /* @__PURE__ */ import_react380.default.createElement("div", {
441699
+ }, /* @__PURE__ */ import_react378.default.createElement("div", {
441847
441700
  className: PresenceUsers_module_default.userList
441848
- }, displayUsers.map((user, index4) => /* @__PURE__ */ import_react380.default.createElement(PresenceUserAvatar, {
441701
+ }, displayUsers.map((user, index4) => /* @__PURE__ */ import_react378.default.createElement(PresenceUserAvatar, {
441849
441702
  key: user.id,
441850
441703
  user,
441851
441704
  trackedUser,
441852
441705
  index: index4,
441853
441706
  onClick: () => selectUser(user.id)
441854
- })), /* @__PURE__ */ import_react380.default.createElement(UserPic, {
441707
+ })), /* @__PURE__ */ import_react378.default.createElement(UserPic, {
441855
441708
  className: PresenceUsers_module_default.userWrapper,
441856
441709
  style: { zIndex: 1000 },
441857
441710
  followers,
@@ -441859,7 +441712,7 @@ var PresenceUsers = () => {
441859
441712
  email: account.info?.name ?? getEmailPrefix(account.info?.email ?? "", "Anonymous"),
441860
441713
  setIsDropdownOpen: setIsUserDropdownOpen,
441861
441714
  isDropdownOpen: isUserDropdownOpen
441862
- }), needsCollapse && /* @__PURE__ */ import_react380.default.createElement("button", {
441715
+ }), needsCollapse && /* @__PURE__ */ import_react378.default.createElement("button", {
441863
441716
  onClick: (event) => {
441864
441717
  event.stopPropagation();
441865
441718
  if (!isUserDropdownOpen) {
@@ -441874,11 +441727,11 @@ var PresenceUsers = () => {
441874
441727
  "--index": displayUsers.length
441875
441728
  },
441876
441729
  className: PresenceUsers_module_default.usersOverflowWrapper
441877
- }, /* @__PURE__ */ import_react380.default.createElement("div", {
441730
+ }, /* @__PURE__ */ import_react378.default.createElement("div", {
441878
441731
  className: PresenceUsers_module_default.usersOverflowGap
441879
- }), /* @__PURE__ */ import_react380.default.createElement("div", {
441732
+ }), /* @__PURE__ */ import_react378.default.createElement("div", {
441880
441733
  className: PresenceUsers_module_default.usersOverflowCounter
441881
- }, /* @__PURE__ */ import_react380.default.createElement("span", null, users.length), /* @__PURE__ */ import_react380.default.createElement(Icon, {
441734
+ }, /* @__PURE__ */ import_react378.default.createElement("span", null, users.length), /* @__PURE__ */ import_react378.default.createElement(Icon, {
441882
441735
  iconName: "StrokeChevronDown",
441883
441736
  width: 11,
441884
441737
  height: 6
@@ -441889,7 +441742,7 @@ var PresenceUsers = () => {
441889
441742
  var import_react383 = __toESM(require_react(), 1);
441890
441743
 
441891
441744
  // src/features/UserPanel/Buttons/AddComment/AddComment.tsx
441892
- var import_react381 = __toESM(require_react(), 1);
441745
+ var import_react379 = __toESM(require_react(), 1);
441893
441746
 
441894
441747
  // src/features/UserPanel/Buttons/AddComment/AddComment.module.css
441895
441748
  var AddComment_module_default = {
@@ -441924,7 +441777,7 @@ function AddComment2() {
441924
441777
  }
441925
441778
  board.tools.addComment(true);
441926
441779
  };
441927
- return /* @__PURE__ */ import_react381.default.createElement(UiButton, {
441780
+ return /* @__PURE__ */ import_react379.default.createElement(UiButton, {
441928
441781
  className: AddComment_module_default.btn,
441929
441782
  id: "tool-add-comment",
441930
441783
  tooltipPosition: "bottom",
@@ -441933,16 +441786,16 @@ function AddComment2() {
441933
441786
  active: isActive,
441934
441787
  variant: "secondary",
441935
441788
  rounded: "left"
441936
- }, /* @__PURE__ */ import_react381.default.createElement(Icon, {
441789
+ }, /* @__PURE__ */ import_react379.default.createElement(Icon, {
441937
441790
  iconName: "Comment",
441938
441791
  width: 20,
441939
441792
  height: 20
441940
- }), showBadge && /* @__PURE__ */ import_react381.default.createElement("div", {
441793
+ }), showBadge && /* @__PURE__ */ import_react379.default.createElement("div", {
441941
441794
  className: AddComment_module_default.badge
441942
441795
  }));
441943
441796
  }
441944
441797
  // src/features/UserPanel/Buttons/TogglePresenceRender/TogglePresenceRender.tsx
441945
- var import_react382 = __toESM(require_react(), 1);
441798
+ var import_react380 = __toESM(require_react(), 1);
441946
441799
 
441947
441800
  // src/features/UserPanel/Buttons/TogglePresenceRender/TogglePresenceRender.module.css
441948
441801
  var TogglePresenceRender_module_default = {
@@ -441953,9 +441806,9 @@ var TogglePresenceRender_module_default = {
441953
441806
  // src/features/UserPanel/Buttons/TogglePresenceRender/TogglePresenceRender.tsx
441954
441807
  var TogglePresenceRender = () => {
441955
441808
  const { t: t11 } = useTranslation();
441956
- const [cursorsActive, setCursorsActive] = import_react382.useState(true);
441809
+ const [cursorsActive, setCursorsActive] = import_react380.useState(true);
441957
441810
  const { app } = useAppContext();
441958
- return /* @__PURE__ */ import_react382.default.createElement(UiButton, {
441811
+ return /* @__PURE__ */ import_react380.default.createElement(UiButton, {
441959
441812
  id: "tool-cursors-toggle",
441960
441813
  tooltipPosition: "bottom",
441961
441814
  tooltip: cursorsActive ? t11("presence.hideCursors") : t11("presence.showCursors"),
@@ -441967,13 +441820,162 @@ var TogglePresenceRender = () => {
441967
441820
  const cursorsEnabled = app.getBoard().presence.toggleCursorsRendering();
441968
441821
  setCursorsActive(cursorsEnabled);
441969
441822
  }
441970
- }, /* @__PURE__ */ import_react382.default.createElement(Icon, {
441823
+ }, /* @__PURE__ */ import_react380.default.createElement(Icon, {
441971
441824
  iconName: "ToggleCursors",
441972
441825
  width: 20,
441973
441826
  height: 20
441974
441827
  }));
441975
441828
  };
441976
441829
 
441830
+ // src/features/ToolsPanel/Buttons/ThemeToggle.tsx
441831
+ var import_react382 = __toESM(require_react(), 1);
441832
+
441833
+ // src/shared/lib/uiTheme.ts
441834
+ var import_react381 = __toESM(require_react(), 1);
441835
+ var STORAGE_KEY = "ui-theme";
441836
+ function applyTheme(theme2) {
441837
+ document.documentElement.setAttribute("data-theme", theme2);
441838
+ conf.theme = theme2;
441839
+ }
441840
+ function getInitialTheme() {
441841
+ const stored = localStorage.getItem(STORAGE_KEY);
441842
+ if (stored === "light" || stored === "dark")
441843
+ return stored;
441844
+ return window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
441845
+ }
441846
+ function initTheme() {
441847
+ applyTheme(getInitialTheme());
441848
+ }
441849
+ function toggleUITheme() {
441850
+ const current2 = document.documentElement.getAttribute("data-theme");
441851
+ const next5 = current2 === "dark" ? "light" : "dark";
441852
+ localStorage.setItem(STORAGE_KEY, next5);
441853
+ applyTheme(next5);
441854
+ return next5;
441855
+ }
441856
+ function getCurrentUITheme() {
441857
+ return document.documentElement.getAttribute("data-theme") ?? "light";
441858
+ }
441859
+ function useUITheme() {
441860
+ const [theme2, setTheme] = import_react381.useState(getCurrentUITheme);
441861
+ const toggle = () => {
441862
+ setTheme(toggleUITheme());
441863
+ };
441864
+ return { theme: theme2, toggle };
441865
+ }
441866
+
441867
+ // src/features/ToolsPanel/Buttons/ThemeToggle.tsx
441868
+ function SunIcon() {
441869
+ return /* @__PURE__ */ import_react382.default.createElement("svg", {
441870
+ width: "20",
441871
+ height: "20",
441872
+ viewBox: "0 0 20 20",
441873
+ fill: "none",
441874
+ xmlns: "http://www.w3.org/2000/svg"
441875
+ }, /* @__PURE__ */ import_react382.default.createElement("circle", {
441876
+ cx: "10",
441877
+ cy: "10",
441878
+ r: "3.5",
441879
+ stroke: "currentColor",
441880
+ strokeWidth: "1.5"
441881
+ }), /* @__PURE__ */ import_react382.default.createElement("line", {
441882
+ x1: "10",
441883
+ y1: "1",
441884
+ x2: "10",
441885
+ y2: "3.5",
441886
+ stroke: "currentColor",
441887
+ strokeWidth: "1.5",
441888
+ strokeLinecap: "round"
441889
+ }), /* @__PURE__ */ import_react382.default.createElement("line", {
441890
+ x1: "10",
441891
+ y1: "16.5",
441892
+ x2: "10",
441893
+ y2: "19",
441894
+ stroke: "currentColor",
441895
+ strokeWidth: "1.5",
441896
+ strokeLinecap: "round"
441897
+ }), /* @__PURE__ */ import_react382.default.createElement("line", {
441898
+ x1: "19",
441899
+ y1: "10",
441900
+ x2: "16.5",
441901
+ y2: "10",
441902
+ stroke: "currentColor",
441903
+ strokeWidth: "1.5",
441904
+ strokeLinecap: "round"
441905
+ }), /* @__PURE__ */ import_react382.default.createElement("line", {
441906
+ x1: "3.5",
441907
+ y1: "10",
441908
+ x2: "1",
441909
+ y2: "10",
441910
+ stroke: "currentColor",
441911
+ strokeWidth: "1.5",
441912
+ strokeLinecap: "round"
441913
+ }), /* @__PURE__ */ import_react382.default.createElement("line", {
441914
+ x1: "16.07",
441915
+ y1: "3.93",
441916
+ x2: "14.31",
441917
+ y2: "5.69",
441918
+ stroke: "currentColor",
441919
+ strokeWidth: "1.5",
441920
+ strokeLinecap: "round"
441921
+ }), /* @__PURE__ */ import_react382.default.createElement("line", {
441922
+ x1: "5.69",
441923
+ y1: "14.31",
441924
+ x2: "3.93",
441925
+ y2: "16.07",
441926
+ stroke: "currentColor",
441927
+ strokeWidth: "1.5",
441928
+ strokeLinecap: "round"
441929
+ }), /* @__PURE__ */ import_react382.default.createElement("line", {
441930
+ x1: "16.07",
441931
+ y1: "16.07",
441932
+ x2: "14.31",
441933
+ y2: "14.31",
441934
+ stroke: "currentColor",
441935
+ strokeWidth: "1.5",
441936
+ strokeLinecap: "round"
441937
+ }), /* @__PURE__ */ import_react382.default.createElement("line", {
441938
+ x1: "5.69",
441939
+ y1: "5.69",
441940
+ x2: "3.93",
441941
+ y2: "3.93",
441942
+ stroke: "currentColor",
441943
+ strokeWidth: "1.5",
441944
+ strokeLinecap: "round"
441945
+ }));
441946
+ }
441947
+ function MoonIcon() {
441948
+ return /* @__PURE__ */ import_react382.default.createElement("svg", {
441949
+ width: "20",
441950
+ height: "20",
441951
+ viewBox: "0 0 20 20",
441952
+ fill: "none",
441953
+ xmlns: "http://www.w3.org/2000/svg"
441954
+ }, /* @__PURE__ */ import_react382.default.createElement("path", {
441955
+ d: "M17 12.5A7.5 7.5 0 1 1 7.5 3a5.5 5.5 0 0 0 9.5 9.5z",
441956
+ stroke: "currentColor",
441957
+ strokeWidth: "1.5",
441958
+ strokeLinecap: "round",
441959
+ strokeLinejoin: "round"
441960
+ }));
441961
+ }
441962
+ function ThemeToggle() {
441963
+ const { board } = useAppContext();
441964
+ const { theme: theme2, toggle } = useUITheme();
441965
+ const handleClick = () => {
441966
+ toggle();
441967
+ board.items.subject.publish(board.items);
441968
+ };
441969
+ return /* @__PURE__ */ import_react382.default.createElement(UiButton, {
441970
+ id: "theme-toggle",
441971
+ tooltip: theme2 === "light" ? "Switch to dark theme" : "Switch to light theme",
441972
+ tooltipPosition: "bottom",
441973
+ onClick: handleClick,
441974
+ variant: "secondary",
441975
+ rounded: "none"
441976
+ }, theme2 === "light" ? /* @__PURE__ */ import_react382.default.createElement(MoonIcon, null) : /* @__PURE__ */ import_react382.default.createElement(SunIcon, null));
441977
+ }
441978
+
441977
441979
  // src/features/UserPanel/ActionButtons/ActionButtons.module.css
441978
441980
  var ActionButtons_module_default = {
441979
441981
  wrapper: "wrapper_VBuAXg"
@@ -443588,7 +443590,7 @@ var UserPanel = () => {
443588
443590
  className: UserPanel_module_default.unauthWrapper
443589
443591
  }, /* @__PURE__ */ import_react405.default.createElement("div", {
443590
443592
  className: UserPanel_module_default.unauthBtns
443591
- }, isMicroboardIframe() && insideOfMicroboard ? /* @__PURE__ */ import_react405.default.createElement(import_react405.default.Fragment, null, /* @__PURE__ */ import_react405.default.createElement(UiLink, {
443593
+ }, /* @__PURE__ */ import_react405.default.createElement(ThemeToggle, null), isMicroboardIframe() && insideOfMicroboard ? /* @__PURE__ */ import_react405.default.createElement(import_react405.default.Fragment, null, /* @__PURE__ */ import_react405.default.createElement(UiLink, {
443592
443594
  variant: "secondary",
443593
443595
  className: UserPanel_module_default.logInBtn,
443594
443596
  onClick: () => onLoginOrRegistrationClick(`/auth/sign-in`),