@lv-x-software-house/x_view 1.2.6-dev.74 → 1.2.6-dev.75

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.
package/dist/index.js CHANGED
@@ -8910,7 +8910,7 @@ function CreateQuestTreePanel({
8910
8910
  };
8911
8911
  const isAddingModeActive = activeTab === "abstraction" ? isAddingAbstractionNodes : isAddingNodes;
8912
8912
  const currentTree = activeTab === "abstraction" ? abstraction_tree : tree;
8913
- useEffect(() => {
8913
+ (0, import_react12.useEffect)(() => {
8914
8914
  if (!tree && !abstraction_tree && questTreeMode.questNodeId) {
8915
8915
  const rootNode = {
8916
8916
  id: questTreeMode.questNodeId,
package/dist/index.mjs CHANGED
@@ -17,7 +17,7 @@ import { UnrealBloomPass } from "three/examples/jsm/postprocessing/UnrealBloomPa
17
17
  import { Group as Group2, Tween as Tween2, Easing as Easing2 } from "@tweenjs/tween.js";
18
18
 
19
19
  // src/components/ContextMenu.jsx
20
- import React, { useLayoutEffect, useRef, useState as useState2, useEffect as useEffect2, useMemo } from "react";
20
+ import React, { useLayoutEffect, useRef, useState as useState2, useEffect, useMemo } from "react";
21
21
 
22
22
  // src/logic/permissions.js
23
23
  import { AbilityBuilder, Ability } from "@casl/ability";
@@ -3367,7 +3367,7 @@ function ContextMenu({
3367
3367
  () => isQuestBlocked(data.nodeData, allParentNodes),
3368
3368
  [data.nodeData, allParentNodes]
3369
3369
  );
3370
- useEffect2(() => {
3370
+ useEffect(() => {
3371
3371
  if (data.visible) {
3372
3372
  setMenuView("main");
3373
3373
  setSelectedAncestry(null);
@@ -3389,7 +3389,7 @@ function ContextMenu({
3389
3389
  if (top + h + 8 > vh) top = Math.max(8, vh - h - 8);
3390
3390
  setMenuPos({ left, top });
3391
3391
  }, [data, menuView, versionSubMenu, labelSubMenu, selectedQuestStatus]);
3392
- useEffect2(() => {
3392
+ useEffect(() => {
3393
3393
  if (!data.visible) return;
3394
3394
  const handleClickOutside = (e) => {
3395
3395
  if (menuRef.current && !menuRef.current.contains(e.target)) onClose();
@@ -3836,13 +3836,13 @@ function ContextMenu({
3836
3836
  }
3837
3837
 
3838
3838
  // src/components/XViewSidebar.jsx
3839
- import React2, { useMemo as useMemo2, useState as useState3, useEffect as useEffect3, useRef as useRef2 } from "react";
3839
+ import React2, { useMemo as useMemo2, useState as useState3, useEffect as useEffect2, useRef as useRef2 } from "react";
3840
3840
  import { FiLayers, FiCpu } from "react-icons/fi";
3841
3841
  import { FaGoogleDrive } from "react-icons/fa";
3842
3842
  var CustomSelect = ({ value, onChange, options, placeholder }) => {
3843
3843
  const [isOpen, setIsOpen] = useState3(false);
3844
3844
  const selectRef = useRef2(null);
3845
- useEffect3(() => {
3845
+ useEffect2(() => {
3846
3846
  const handleClickOutside = (e) => {
3847
3847
  if (selectRef.current && !selectRef.current.contains(e.target)) {
3848
3848
  setIsOpen(false);
@@ -3956,7 +3956,7 @@ function XViewSidebar({
3956
3956
  const [folderId, setFolderId] = useState3(view_google_folder_id || "");
3957
3957
  const [folderName, setFolderName] = useState3(view_google_folder_name || "");
3958
3958
  const [isPickingGoogleFolder, setIsPickingGoogleFolder] = useState3(false);
3959
- useEffect3(() => {
3959
+ useEffect2(() => {
3960
3960
  if (view_google_folder_id !== void 0) {
3961
3961
  setFolderId(view_google_folder_id || "");
3962
3962
  }
@@ -4071,7 +4071,7 @@ function XViewSidebar({
4071
4071
  activeFilters,
4072
4072
  filterCategory
4073
4073
  ]);
4074
- useEffect3(() => {
4074
+ useEffect2(() => {
4075
4075
  const handleClickOutside = (event) => {
4076
4076
  if (filterMenuRef.current && !filterMenuRef.current.contains(event.target)) {
4077
4077
  setIsFilterMenuOpen(false);
@@ -4085,7 +4085,7 @@ function XViewSidebar({
4085
4085
  }
4086
4086
  return () => document.removeEventListener("mousedown", handleClickOutside);
4087
4087
  }, [isFilterMenuOpen, isTypeDropdownOpen]);
4088
- useEffect3(() => {
4088
+ useEffect2(() => {
4089
4089
  const handleClickOutsideAnnexed = (event) => {
4090
4090
  if (annexedPanelRef.current && !annexedPanelRef.current.contains(event.target)) {
4091
4091
  if (event.target.closest(".lens-button")) return;
@@ -4097,7 +4097,7 @@ function XViewSidebar({
4097
4097
  }
4098
4098
  return () => document.removeEventListener("mousedown", handleClickOutsideAnnexed);
4099
4099
  }, [activeSubMenu]);
4100
- useEffect3(() => {
4100
+ useEffect2(() => {
4101
4101
  if (!query) setSelectedNodeId(null);
4102
4102
  }, [query]);
4103
4103
  const swallow = (e) => e.stopPropagation();
@@ -4732,11 +4732,11 @@ function XViewSidebar({
4732
4732
  }
4733
4733
 
4734
4734
  // src/components/AncestryRelationshipPanel.jsx
4735
- import React8, { useState as useState9, useEffect as useEffect9, useRef as useRef7 } from "react";
4735
+ import React8, { useState as useState9, useEffect as useEffect8, useRef as useRef7 } from "react";
4736
4736
  import { v4 as uuidv43 } from "uuid";
4737
4737
 
4738
4738
  // src/components/CustomPropertyDisplay.jsx
4739
- import React3, { useState as useState4, useRef as useRef3, useEffect as useEffect4 } from "react";
4739
+ import React3, { useState as useState4, useRef as useRef3, useEffect as useEffect3 } from "react";
4740
4740
  import { FiCheck, FiX, FiEdit3, FiTrash2, FiExternalLink, FiFileText, FiChevronDown, FiUpload, FiLoader } from "react-icons/fi";
4741
4741
  function CustomPropertyDisplay({
4742
4742
  prop,
@@ -4759,7 +4759,7 @@ function CustomPropertyDisplay({
4759
4759
  const [uploadingItemIndex, setUploadingItemIndex] = useState4(null);
4760
4760
  const fileInputRef = useRef3(null);
4761
4761
  const currentUploadTargetRef = useRef3(null);
4762
- useEffect4(() => {
4762
+ useEffect3(() => {
4763
4763
  function handleClickOutside(event) {
4764
4764
  if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {
4765
4765
  setIsTypeDropdownOpen(false);
@@ -5102,11 +5102,11 @@ function CustomPropertyDisplay({
5102
5102
  import { FiPlus, FiEdit2 as FiEdit22, FiBookOpen } from "react-icons/fi";
5103
5103
 
5104
5104
  // src/components/DescriptionEditModal.jsx
5105
- import React5, { useState as useState6, useEffect as useEffect6, useRef as useRef5, useMemo as useMemo4 } from "react";
5105
+ import React5, { useState as useState6, useEffect as useEffect5, useRef as useRef5, useMemo as useMemo4 } from "react";
5106
5106
  import { FiType, FiList, FiCode, FiLink as FiLink2, FiAtSign, FiSearch as FiSearch2, FiHexagon as FiHexagon2, FiGlobe, FiImage, FiCheckSquare } from "react-icons/fi";
5107
5107
 
5108
5108
  // src/components/SectionImportModal.jsx
5109
- import React4, { useState as useState5, useMemo as useMemo3, useRef as useRef4, useEffect as useEffect5 } from "react";
5109
+ import React4, { useState as useState5, useMemo as useMemo3, useRef as useRef4, useEffect as useEffect4 } from "react";
5110
5110
  import { FiSearch, FiLayers as FiLayers2, FiHexagon, FiClock, FiCheck as FiCheck2, FiCopy, FiTerminal, FiChevronDown as FiChevronDown2, FiChevronRight as FiChevronRight2, FiDownload, FiLink } from "react-icons/fi";
5111
5111
  var CodeBlock = ({ content, isActive, onClick }) => {
5112
5112
  const [isExpanded, setIsExpanded] = useState5(false);
@@ -5182,7 +5182,7 @@ function SectionImportModal({ isOpen, onClose, onSelect, availableNodes = [], av
5182
5182
  const sectionRefs = useRef4([]);
5183
5183
  const [isDropdownOpen, setIsDropdownOpen] = useState5(false);
5184
5184
  const inputRef = useRef4(null);
5185
- useEffect5(() => {
5185
+ useEffect4(() => {
5186
5186
  if (!selectedItem) return;
5187
5187
  const itemId = selectedItem.id || selectedItem.ancestry_id;
5188
5188
  const type = selectedItem._type;
@@ -5225,12 +5225,12 @@ function SectionImportModal({ isOpen, onClose, onSelect, availableNodes = [], av
5225
5225
  if (!selectedItem) return [];
5226
5226
  return parseDescriptionSections(selectedItem.description, selectedItem.description_sections);
5227
5227
  }, [selectedItem]);
5228
- useEffect5(() => {
5228
+ useEffect4(() => {
5229
5229
  setActiveIndex(0);
5230
5230
  setSelectedIndices(/* @__PURE__ */ new Set([0]));
5231
5231
  setLastSelectedIndex(0);
5232
5232
  }, [selectedItem]);
5233
- useEffect5(() => {
5233
+ useEffect4(() => {
5234
5234
  if (selectedItem && sectionRefs.current[activeIndex]) {
5235
5235
  sectionRefs.current[activeIndex].scrollIntoView({
5236
5236
  behavior: "smooth",
@@ -5239,7 +5239,7 @@ function SectionImportModal({ isOpen, onClose, onSelect, availableNodes = [], av
5239
5239
  });
5240
5240
  }
5241
5241
  }, [activeIndex, selectedItem]);
5242
- useEffect5(() => {
5242
+ useEffect4(() => {
5243
5243
  const handleKeyDown = (e) => {
5244
5244
  if (!selectedItem) return;
5245
5245
  if (document.activeElement === inputRef.current) return;
@@ -5536,7 +5536,7 @@ function DescriptionEditModal({
5536
5536
  const [manualImageUrl, setManualImageUrl] = useState6("");
5537
5537
  const hoverTimeoutRef = useRef5(null);
5538
5538
  const [tooltipData, setTooltipData] = useState6(null);
5539
- useEffect6(() => {
5539
+ useEffect5(() => {
5540
5540
  const handleKeyDown = (e) => {
5541
5541
  if (e.key === "Escape") {
5542
5542
  if (isMentionModalOpen) {
@@ -5579,7 +5579,7 @@ function DescriptionEditModal({
5579
5579
  if (hoverTimeoutRef.current) clearTimeout(hoverTimeoutRef.current);
5580
5580
  setTooltipData(null);
5581
5581
  };
5582
- useEffect6(() => {
5582
+ useEffect5(() => {
5583
5583
  setText(initialValue || "");
5584
5584
  }, [initialValue, isOpen]);
5585
5585
  const filteredNodesForMention = useMemo4(() => {
@@ -5989,7 +5989,7 @@ ${space}${bullet} `);
5989
5989
  }
5990
5990
 
5991
5991
  // src/components/DescriptionDisplay.jsx
5992
- import React6, { useMemo as useMemo5, useState as useState7, useEffect as useEffect7, useRef as useRef6 } from "react";
5992
+ import React6, { useMemo as useMemo5, useState as useState7, useEffect as useEffect6, useRef as useRef6 } from "react";
5993
5993
  import { FiCopy as FiCopy2, FiCheck as FiCheck3, FiChevronDown as FiChevronDown3, FiChevronRight as FiChevronRight3, FiTerminal as FiTerminal2, FiCornerDownRight, FiExternalLink as FiExternalLink2, FiImage as FiImage2, FiSave } from "react-icons/fi";
5994
5994
  var CodeBlock2 = ({ content, isActive, onClick }) => {
5995
5995
  const [isExpanded, setIsExpanded] = useState7(false);
@@ -6211,7 +6211,7 @@ function DescriptionDisplay({
6211
6211
  onStepChange
6212
6212
  }) {
6213
6213
  const [localDescription, setLocalDescription] = useState7(description || "");
6214
- useEffect7(() => {
6214
+ useEffect6(() => {
6215
6215
  setLocalDescription(description || "");
6216
6216
  }, [description]);
6217
6217
  const sections = useMemo5(() => parseDescriptionSections(localDescription, savedSections), [localDescription, savedSections]);
@@ -6255,7 +6255,7 @@ function DescriptionDisplay({
6255
6255
  return navItems;
6256
6256
  }, [sections]);
6257
6257
  const [currentStepIndex, setCurrentStepIndex] = useState7(0);
6258
- useEffect7(() => {
6258
+ useEffect6(() => {
6259
6259
  if (onStepChange) {
6260
6260
  onStepChange(currentStepIndex);
6261
6261
  }
@@ -6263,7 +6263,7 @@ function DescriptionDisplay({
6263
6263
  const activeRef = useRef6(null);
6264
6264
  const lastNotifiedSectionId = useRef6(null);
6265
6265
  const isInitialMount = useRef6(true);
6266
- useEffect7(() => {
6266
+ useEffect6(() => {
6267
6267
  let targetIndex = 0;
6268
6268
  if (initialSectionId !== null && initialSectionId !== void 0) {
6269
6269
  targetIndex = flatNavigation.findIndex(
@@ -6275,7 +6275,7 @@ function DescriptionDisplay({
6275
6275
  isInitialMount.current = true;
6276
6276
  lastNotifiedSectionId.current = null;
6277
6277
  }, [description, initialSectionId, flatNavigation, sections]);
6278
- useEffect7(() => {
6278
+ useEffect6(() => {
6279
6279
  const currentItem = flatNavigation[currentStepIndex];
6280
6280
  if (onSectionChange && currentItem) {
6281
6281
  if (isInitialMount.current || lastNotifiedSectionId.current !== currentItem.sectionId) {
@@ -6294,7 +6294,7 @@ function DescriptionDisplay({
6294
6294
  }
6295
6295
  }
6296
6296
  }, [currentStepIndex, flatNavigation, onSectionChange, onHighlightNode]);
6297
- useEffect7(() => {
6297
+ useEffect6(() => {
6298
6298
  const handleKeyDown = (e) => {
6299
6299
  if (e.target.tagName === "INPUT" || e.target.tagName === "TEXTAREA") return;
6300
6300
  const currentItem = flatNavigation[currentStepIndex];
@@ -6338,7 +6338,7 @@ function DescriptionDisplay({
6338
6338
  window.addEventListener("keydown", handleKeyDown);
6339
6339
  return () => window.removeEventListener("keydown", handleKeyDown);
6340
6340
  }, [flatNavigation, currentStepIndex, onBranchNav, currentBranchDirection]);
6341
- useEffect7(() => {
6341
+ useEffect6(() => {
6342
6342
  if (activeRef.current) {
6343
6343
  activeRef.current.scrollIntoView({
6344
6344
  behavior: "smooth",
@@ -6454,7 +6454,7 @@ function DescriptionDisplay({
6454
6454
  }
6455
6455
 
6456
6456
  // src/components/DescriptionReadModePanel.jsx
6457
- import React7, { useState as useState8, useMemo as useMemo6, useEffect as useEffect8 } from "react";
6457
+ import React7, { useState as useState8, useMemo as useMemo6, useEffect as useEffect7 } from "react";
6458
6458
  import {
6459
6459
  FiArrowLeft,
6460
6460
  FiEdit2,
@@ -6574,7 +6574,7 @@ function DescriptionReadModePanel({
6574
6574
  console.error("Erro ao copiar link:", err);
6575
6575
  });
6576
6576
  };
6577
- useEffect8(() => {
6577
+ useEffect7(() => {
6578
6578
  setShowAbstraction(initialShowAbstraction);
6579
6579
  if (initialShowAbstraction) {
6580
6580
  setShowProperties(false);
@@ -6824,7 +6824,7 @@ function AncestryRelationshipPanel({
6824
6824
  const [isDescriptionModalOpen, setIsDescriptionModalOpen] = useState9(false);
6825
6825
  const [isReadMode, setIsReadMode] = useState9(false);
6826
6826
  const propsEndRef = useRef7(null);
6827
- useEffect9(() => {
6827
+ useEffect8(() => {
6828
6828
  setDescription((data == null ? void 0 : data.description) ?? "");
6829
6829
  setExistingSections((data == null ? void 0 : data.description_sections) || []);
6830
6830
  setCustomProps(extractCustomPropsFromNode(data || {}));
@@ -6977,7 +6977,7 @@ function AncestryRelationshipPanel({
6977
6977
  }
6978
6978
 
6979
6979
  // src/components/CreateAncestryPanel.jsx
6980
- import React10, { useState as useState11, useEffect as useEffect11, useMemo as useMemo8, useRef as useRef8, useCallback as useCallback2 } from "react";
6980
+ import React10, { useState as useState11, useEffect as useEffect10, useMemo as useMemo8, useRef as useRef8, useCallback as useCallback2 } from "react";
6981
6981
  import {
6982
6982
  FiEdit2 as FiEdit23,
6983
6983
  FiBookOpen as FiBookOpen2,
@@ -6999,7 +6999,7 @@ import {
6999
6999
  import { v4 as uuidv44 } from "uuid";
7000
7000
 
7001
7001
  // src/components/AncestryPickerModal.jsx
7002
- import React9, { useState as useState10, useMemo as useMemo7, useEffect as useEffect10 } from "react";
7002
+ import React9, { useState as useState10, useMemo as useMemo7, useEffect as useEffect9 } from "react";
7003
7003
  import { FiSearch as FiSearch3, FiLayers as FiLayers4, FiCornerUpRight as FiCornerUpRight2 } from "react-icons/fi";
7004
7004
  function AncestryPickerModal({
7005
7005
  isOpen,
@@ -7010,7 +7010,7 @@ function AncestryPickerModal({
7010
7010
  currentAncestryId
7011
7011
  }) {
7012
7012
  const [searchTerm, setSearchTerm] = useState10("");
7013
- useEffect10(() => {
7013
+ useEffect9(() => {
7014
7014
  if (!isOpen) return;
7015
7015
  const handleKeyDown = (e) => {
7016
7016
  if (e.key === "Escape") {
@@ -7251,7 +7251,7 @@ function CreateAncestryPanel({
7251
7251
  const [customProps, setCustomProps] = useState11([]);
7252
7252
  const propsEndRef = useRef8(null);
7253
7253
  const [branchStack, setBranchStack] = useState11([]);
7254
- useEffect11(() => {
7254
+ useEffect10(() => {
7255
7255
  setShowDeleteBranchConfirm(false);
7256
7256
  }, [branchStack]);
7257
7257
  const [targetRenderNodeId, setTargetRenderNodeId] = useState11(null);
@@ -7282,7 +7282,7 @@ function CreateAncestryPanel({
7282
7282
  minWidth: 320,
7283
7283
  maxWidth: maxPanelW
7284
7284
  });
7285
- useEffect11(() => {
7285
+ useEffect10(() => {
7286
7286
  setWidth(isReadMode ? 700 : 440);
7287
7287
  }, [isReadMode, setWidth]);
7288
7288
  const currentMaxRenderIndexRef = useRef8(0);
@@ -7475,7 +7475,7 @@ function CreateAncestryPanel({
7475
7475
  setHasUnsavedChanges(true);
7476
7476
  };
7477
7477
  const currentUsedTypes = customProps.map((p) => p.type).filter((t) => UNIQUE_PROP_TYPES.includes(t));
7478
- useEffect11(() => {
7478
+ useEffect10(() => {
7479
7479
  if (!isContextLinked) return;
7480
7480
  const handleKeyDown = (e) => {
7481
7481
  if (branchStack.length === 0) return;
@@ -7493,7 +7493,7 @@ function CreateAncestryPanel({
7493
7493
  window.addEventListener("keydown", handleKeyDown);
7494
7494
  return () => window.removeEventListener("keydown", handleKeyDown);
7495
7495
  }, [isContextLinked, branchStack]);
7496
- useEffect11(() => {
7496
+ useEffect10(() => {
7497
7497
  const ctx = getCurrentContext();
7498
7498
  const currentContextId = branchStack.length > 0 ? branchStack[branchStack.length - 1].branchId : ancestryMode.currentAncestryId || `new_${ancestryMode.ancestral_node}`;
7499
7499
  if (initializedContextIdRef.current === currentContextId) {
@@ -8233,7 +8233,7 @@ function CreateAncestryPanel({
8233
8233
  }
8234
8234
  }
8235
8235
  };
8236
- useEffect11(() => {
8236
+ useEffect10(() => {
8237
8237
  if (!description && existingSections.length === 0) return;
8238
8238
  const newRootTree = applyDescriptionToTree(ancestryMode.tree, description, existingSections);
8239
8239
  const currentTreeString = JSON.stringify(ancestryMode.tree);
@@ -8688,7 +8688,7 @@ function CreateAncestryPanel({
8688
8688
  }
8689
8689
 
8690
8690
  // src/components/CreateQuestTreePanel.jsx
8691
- import React11, { useState as useState12, useCallback as useCallback3, useMemo as useMemo9 } from "react";
8691
+ import React11, { useState as useState12, useEffect as useEffect11, useCallback as useCallback3, useMemo as useMemo9 } from "react";
8692
8692
  import {
8693
8693
  FiFolder as FiFolder3,
8694
8694
  FiLayers as FiLayers6,
@@ -8908,7 +8908,7 @@ function CreateQuestTreePanel({
8908
8908
  };
8909
8909
  const isAddingModeActive = activeTab === "abstraction" ? isAddingAbstractionNodes : isAddingNodes;
8910
8910
  const currentTree = activeTab === "abstraction" ? abstraction_tree : tree;
8911
- useEffect(() => {
8911
+ useEffect11(() => {
8912
8912
  if (!tree && !abstraction_tree && questTreeMode.questNodeId) {
8913
8913
  const rootNode = {
8914
8914
  id: questTreeMode.questNodeId,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lv-x-software-house/x_view",
3
- "version": "1.2.6-dev.74",
3
+ "version": "1.2.6-dev.75",
4
4
  "description": "Pacote privado contendo os componentes e lógica de renderização 3D do X View.",
5
5
  "author": "iv.x - Engenharia de Software - ivxsoftwarehouse@gmail.com",
6
6
  "license": "UNLICENSED",