@lv-x-software-house/x_view 1.2.2-dev.8 → 1.2.2-dev.9

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
@@ -6803,11 +6803,11 @@ function InSceneCreationForm({
6803
6803
  onMentionClick,
6804
6804
  sourceTypes,
6805
6805
  onUploadFile,
6806
- // Props do Dataset adicionadas
6807
6806
  availableDatasets = [],
6808
6807
  sourceNodeDatasetId,
6809
6808
  viewType
6810
6809
  }) {
6810
+ var _a;
6811
6811
  const [name, setName] = (0, import_react13.useState)("");
6812
6812
  const [types, setTypes] = (0, import_react13.useState)([]);
6813
6813
  const [typeInput, setTypeInput] = (0, import_react13.useState)("");
@@ -6822,9 +6822,24 @@ function InSceneCreationForm({
6822
6822
  const [useImageAsTexture, setUseImageAsTexture] = (0, import_react13.useState)(false);
6823
6823
  const [selectedImageUrl, setSelectedImageUrl] = (0, import_react13.useState)(null);
6824
6824
  const [targetDatasetId, setTargetDatasetId] = (0, import_react13.useState)(sourceNodeDatasetId || "");
6825
+ const [isDatasetDropdownOpen, setIsDatasetDropdownOpen] = (0, import_react13.useState)(false);
6826
+ const datasetDropdownRef = (0, import_react13.useRef)(null);
6825
6827
  (0, import_react13.useEffect)(() => {
6826
6828
  if (sourceNodeDatasetId) setTargetDatasetId(sourceNodeDatasetId);
6827
6829
  }, [sourceNodeDatasetId]);
6830
+ (0, import_react13.useEffect)(() => {
6831
+ function handleClickOutside(event) {
6832
+ if (datasetDropdownRef.current && !datasetDropdownRef.current.contains(event.target)) {
6833
+ setIsDatasetDropdownOpen(false);
6834
+ }
6835
+ }
6836
+ if (isDatasetDropdownOpen) {
6837
+ document.addEventListener("mousedown", handleClickOutside);
6838
+ }
6839
+ return () => {
6840
+ document.removeEventListener("mousedown", handleClickOutside);
6841
+ };
6842
+ }, [isDatasetDropdownOpen]);
6828
6843
  const propsEndRef = (0, import_react13.useRef)(null);
6829
6844
  const hasImages = customProps.some((p) => p.type === "images" && Array.isArray(p.value) && p.value.length > 0 && p.value.some((img) => img.value));
6830
6845
  (0, import_react13.useEffect)(() => {
@@ -6870,8 +6885,8 @@ function InSceneCreationForm({
6870
6885
  const newProp = createNewCustomProperty(customProps);
6871
6886
  setCustomProps([...customProps, newProp]);
6872
6887
  setTimeout(() => {
6873
- var _a;
6874
- (_a = propsEndRef.current) == null ? void 0 : _a.scrollIntoView({ behavior: "smooth", block: "center" });
6888
+ var _a2;
6889
+ (_a2 = propsEndRef.current) == null ? void 0 : _a2.scrollIntoView({ behavior: "smooth", block: "center" });
6875
6890
  }, 100);
6876
6891
  };
6877
6892
  const handleRemoveProp = (index) => setCustomProps(customProps.filter((_, i) => i !== index));
@@ -6904,12 +6919,12 @@ function InSceneCreationForm({
6904
6919
  onSizeChange == null ? void 0 : onSizeChange(newSize);
6905
6920
  };
6906
6921
  const handleToggleImageMode = () => {
6907
- var _a, _b;
6922
+ var _a2, _b;
6908
6923
  const newValue = !useImageAsTexture;
6909
6924
  setUseImageAsTexture(newValue);
6910
6925
  if (newValue) {
6911
6926
  const firstImageProp = customProps.find((p) => p.type === "images");
6912
- if (firstImageProp && ((_b = (_a = firstImageProp.value) == null ? void 0 : _a[0]) == null ? void 0 : _b.value)) {
6927
+ if (firstImageProp && ((_b = (_a2 = firstImageProp.value) == null ? void 0 : _a2[0]) == null ? void 0 : _b.value)) {
6913
6928
  const url = firstImageProp.value[0].value;
6914
6929
  setSelectedImageUrl(url);
6915
6930
  onImageChange == null ? void 0 : onImageChange(true, url);
@@ -6943,7 +6958,6 @@ function InSceneCreationForm({
6943
6958
  useImageAsTexture,
6944
6959
  textureImageUrl: useImageAsTexture ? selectedImageUrl : null,
6945
6960
  targetDatasetId,
6946
- // Alvo do Dataset adicionado no onSave
6947
6961
  ...additionalData
6948
6962
  });
6949
6963
  };
@@ -6964,6 +6978,7 @@ function InSceneCreationForm({
6964
6978
  onOpenImageViewer([{ name: name2 || "Imagem", value: url }], 0);
6965
6979
  }
6966
6980
  };
6981
+ const selectedDatasetName = ((_a = availableDatasets.find((ds) => ds.id === targetDatasetId)) == null ? void 0 : _a.name) || "Selecione um Dataset...";
6967
6982
  return /* @__PURE__ */ import_react13.default.createElement(import_react13.default.Fragment, null, /* @__PURE__ */ import_react13.default.createElement(
6968
6983
  "div",
6969
6984
  {
@@ -7021,15 +7036,27 @@ function InSceneCreationForm({
7021
7036
  }
7022
7037
  },
7023
7038
  suggestedType
7024
- ))))), /* @__PURE__ */ import_react13.default.createElement("div", { className: "space-y-1.5" }, /* @__PURE__ */ import_react13.default.createElement("label", { className: "text-xs text-slate-300" }, "Nome do Node"), /* @__PURE__ */ import_react13.default.createElement("input", { required: true, type: "text", placeholder: "Ex.: Cliente XPTO", value: name, onChange: handleNameInputChange, className: "w-full bg-slate-800/70 p-2.5 text-sm rounded-lg border border-white/10 focus:outline-none focus:ring-2 focus:ring-indigo-400/60" })), viewType === "view" && availableDatasets.length > 0 && /* @__PURE__ */ import_react13.default.createElement("div", { className: "space-y-1.5" }, /* @__PURE__ */ import_react13.default.createElement("label", { className: "text-xs text-slate-300" }, "Criar Node no Dataset:"), /* @__PURE__ */ import_react13.default.createElement(
7025
- "select",
7039
+ ))))), /* @__PURE__ */ import_react13.default.createElement("div", { className: "space-y-1.5" }, /* @__PURE__ */ import_react13.default.createElement("label", { className: "text-xs text-slate-300" }, "Nome do Node"), /* @__PURE__ */ import_react13.default.createElement("input", { required: true, type: "text", placeholder: "Ex.: Cliente XPTO", value: name, onChange: handleNameInputChange, className: "w-full bg-slate-800/70 p-2.5 text-sm rounded-lg border border-white/10 focus:outline-none focus:ring-2 focus:ring-indigo-400/60" })), viewType === "view" && availableDatasets.length > 0 && /* @__PURE__ */ import_react13.default.createElement("div", { className: "space-y-1.5 relative", ref: datasetDropdownRef }, /* @__PURE__ */ import_react13.default.createElement("label", { className: "text-xs text-slate-300" }, "Criar Node no Dataset:"), /* @__PURE__ */ import_react13.default.createElement(
7040
+ "button",
7026
7041
  {
7027
- value: targetDatasetId,
7028
- onChange: (e) => setTargetDatasetId(e.target.value),
7029
- className: "w-full bg-slate-800/70 p-2.5 text-sm rounded-lg border border-white/10 focus:outline-none focus:ring-2 focus:ring-indigo-400/60 text-slate-200 cursor-pointer appearance-none"
7042
+ type: "button",
7043
+ onClick: () => setIsDatasetDropdownOpen(!isDatasetDropdownOpen),
7044
+ className: "w-full flex items-center justify-between bg-slate-800/70 p-2.5 text-sm rounded-lg border border-white/10 focus:outline-none focus:ring-2 focus:ring-indigo-400/60 hover:bg-slate-700/70 transition-colors text-slate-200 text-left"
7045
+ },
7046
+ /* @__PURE__ */ import_react13.default.createElement("span", { className: "truncate pr-2" }, selectedDatasetName),
7047
+ /* @__PURE__ */ import_react13.default.createElement(import_fi12.FiChevronDown, { className: `flex-shrink-0 text-slate-400 transition-transform ${isDatasetDropdownOpen ? "rotate-180" : ""}` })
7048
+ ), isDatasetDropdownOpen && /* @__PURE__ */ import_react13.default.createElement("ul", { className: "custom-scrollbar absolute top-[66px] left-0 z-20 w-full max-h-48 overflow-y-auto rounded-lg bg-slate-800 border border-white/10 shadow-xl py-1" }, availableDatasets.map((ds) => /* @__PURE__ */ import_react13.default.createElement(
7049
+ "li",
7050
+ {
7051
+ key: ds.id,
7052
+ onClick: () => {
7053
+ setTargetDatasetId(ds.id);
7054
+ setIsDatasetDropdownOpen(false);
7055
+ },
7056
+ className: `px-3 py-2 text-sm cursor-pointer transition-colors ${targetDatasetId === ds.id ? "bg-indigo-600/40 text-indigo-200 font-medium" : "text-slate-300 hover:bg-white/5"}`
7030
7057
  },
7031
- availableDatasets.map((ds) => /* @__PURE__ */ import_react13.default.createElement("option", { key: ds.id, value: ds.id }, ds.name))
7032
- )), /* @__PURE__ */ import_react13.default.createElement("div", { className: "space-y-1.5 relative" }, /* @__PURE__ */ import_react13.default.createElement("label", { className: "text-xs text-slate-300" }, "Descri\xE7\xE3o (Opcional)"), /* @__PURE__ */ import_react13.default.createElement("div", { className: "relative group min-h-[80px] bg-slate-800/70 p-2.5 rounded-lg border border-white/10 hover:border-white/20 transition-colors" }, /* @__PURE__ */ import_react13.default.createElement(
7058
+ ds.name
7059
+ )))), /* @__PURE__ */ import_react13.default.createElement("div", { className: "space-y-1.5 relative" }, /* @__PURE__ */ import_react13.default.createElement("label", { className: "text-xs text-slate-300" }, "Descri\xE7\xE3o (Opcional)"), /* @__PURE__ */ import_react13.default.createElement("div", { className: "relative group min-h-[80px] bg-slate-800/70 p-2.5 rounded-lg border border-white/10 hover:border-white/20 transition-colors" }, /* @__PURE__ */ import_react13.default.createElement(
7033
7060
  DescriptionDisplay,
7034
7061
  {
7035
7062
  description,
@@ -7367,7 +7394,6 @@ function NodeDetailsPanel({
7367
7394
  onUploadFile,
7368
7395
  userRole,
7369
7396
  currentDatasetName
7370
- // Prop currentDatasetName adicionada
7371
7397
  }) {
7372
7398
  const [name, setName] = (0, import_react15.useState)((node == null ? void 0 : node.name) ?? "");
7373
7399
  const [types, setTypes] = (0, import_react15.useState)([]);
@@ -7778,7 +7804,7 @@ function NodeDetailsPanel({
7778
7804
  onUploadFile: canEdit ? onUploadFile : void 0,
7779
7805
  readOnly: !canEdit
7780
7806
  }
7781
- )), /* @__PURE__ */ import_react15.default.createElement("div", { ref: propsEndRef }))), currentDatasetName && /* @__PURE__ */ import_react15.default.createElement("div", { className: "pt-2 mt-4 border-t border-white/10" }, /* @__PURE__ */ import_react15.default.createElement("label", { className: "text-[10px] uppercase text-slate-400 font-semibold tracking-wider" }, "Hospedado no Dataset"), /* @__PURE__ */ import_react15.default.createElement("div", { className: "flex items-center gap-2 mt-1.5 px-3 py-2 bg-slate-800/40 rounded-lg border border-white/5" }, /* @__PURE__ */ import_react15.default.createElement(import_fi14.FiDatabase, { className: "text-indigo-400", size: 14 }), /* @__PURE__ */ import_react15.default.createElement("span", { className: "text-xs text-slate-300 truncate font-medium" }, currentDatasetName)))), /* @__PURE__ */ import_react15.default.createElement("div", { className: "sticky bottom-0 z-10 bg-gradient-to-t from-slate-950/80 via-slate-950/50 to-transparent px-6 py-4 border-t border-white/10 flex justify-end gap-3" }, /* @__PURE__ */ import_react15.default.createElement("button", { onClick: handleCancel, disabled: isSaving, className: "px-4 py-2 rounded-lg border border-white/15 bg-transparent hover:bg-white/5 transition-colors text-sm disabled:opacity-50" }, canEdit ? "Cancelar" : "Fechar"), canEdit && /* @__PURE__ */ import_react15.default.createElement(
7807
+ )), /* @__PURE__ */ import_react15.default.createElement("div", { ref: propsEndRef }))), currentDatasetName && /* @__PURE__ */ import_react15.default.createElement("div", { className: "pt-3 mt-4 border-t border-white/10 flex items-center gap-2 text-xs text-slate-400" }, /* @__PURE__ */ import_react15.default.createElement(import_fi14.FiDatabase, { className: "text-indigo-400 shrink-0", size: 14 }), /* @__PURE__ */ import_react15.default.createElement("span", { className: "truncate" }, "Dataset ", /* @__PURE__ */ import_react15.default.createElement("span", { className: "text-slate-200 font-medium" }, currentDatasetName)))), /* @__PURE__ */ import_react15.default.createElement("div", { className: "sticky bottom-0 z-10 bg-gradient-to-t from-slate-950/80 via-slate-950/50 to-transparent px-6 py-4 border-t border-white/10 flex justify-end gap-3" }, /* @__PURE__ */ import_react15.default.createElement("button", { onClick: handleCancel, disabled: isSaving, className: "px-4 py-2 rounded-lg border border-white/15 bg-transparent hover:bg-white/5 transition-colors text-sm disabled:opacity-50" }, canEdit ? "Cancelar" : "Fechar"), canEdit && /* @__PURE__ */ import_react15.default.createElement(
7782
7808
  "button",
7783
7809
  {
7784
7810
  onClick: () => handleSave(false),
package/dist/index.mjs CHANGED
@@ -6770,7 +6770,7 @@ function ColorPicker({ color, onChange, disabled }) {
6770
6770
  }
6771
6771
 
6772
6772
  // src/components/InSceneCreationForm.jsx
6773
- import { FiPlus as FiPlus3, FiMaximize2, FiX as FiX3, FiCheck as FiCheck7, FiEdit2 as FiEdit24, FiSun } from "react-icons/fi";
6773
+ import { FiPlus as FiPlus3, FiMaximize2, FiX as FiX3, FiCheck as FiCheck7, FiEdit2 as FiEdit24, FiSun, FiChevronDown as FiChevronDown4 } from "react-icons/fi";
6774
6774
  function InSceneCreationForm({
6775
6775
  onSave,
6776
6776
  onCancel,
@@ -6789,11 +6789,11 @@ function InSceneCreationForm({
6789
6789
  onMentionClick,
6790
6790
  sourceTypes,
6791
6791
  onUploadFile,
6792
- // Props do Dataset adicionadas
6793
6792
  availableDatasets = [],
6794
6793
  sourceNodeDatasetId,
6795
6794
  viewType
6796
6795
  }) {
6796
+ var _a;
6797
6797
  const [name, setName] = useState13("");
6798
6798
  const [types, setTypes] = useState13([]);
6799
6799
  const [typeInput, setTypeInput] = useState13("");
@@ -6808,9 +6808,24 @@ function InSceneCreationForm({
6808
6808
  const [useImageAsTexture, setUseImageAsTexture] = useState13(false);
6809
6809
  const [selectedImageUrl, setSelectedImageUrl] = useState13(null);
6810
6810
  const [targetDatasetId, setTargetDatasetId] = useState13(sourceNodeDatasetId || "");
6811
+ const [isDatasetDropdownOpen, setIsDatasetDropdownOpen] = useState13(false);
6812
+ const datasetDropdownRef = useRef10(null);
6811
6813
  useEffect13(() => {
6812
6814
  if (sourceNodeDatasetId) setTargetDatasetId(sourceNodeDatasetId);
6813
6815
  }, [sourceNodeDatasetId]);
6816
+ useEffect13(() => {
6817
+ function handleClickOutside(event) {
6818
+ if (datasetDropdownRef.current && !datasetDropdownRef.current.contains(event.target)) {
6819
+ setIsDatasetDropdownOpen(false);
6820
+ }
6821
+ }
6822
+ if (isDatasetDropdownOpen) {
6823
+ document.addEventListener("mousedown", handleClickOutside);
6824
+ }
6825
+ return () => {
6826
+ document.removeEventListener("mousedown", handleClickOutside);
6827
+ };
6828
+ }, [isDatasetDropdownOpen]);
6814
6829
  const propsEndRef = useRef10(null);
6815
6830
  const hasImages = customProps.some((p) => p.type === "images" && Array.isArray(p.value) && p.value.length > 0 && p.value.some((img) => img.value));
6816
6831
  useEffect13(() => {
@@ -6856,8 +6871,8 @@ function InSceneCreationForm({
6856
6871
  const newProp = createNewCustomProperty(customProps);
6857
6872
  setCustomProps([...customProps, newProp]);
6858
6873
  setTimeout(() => {
6859
- var _a;
6860
- (_a = propsEndRef.current) == null ? void 0 : _a.scrollIntoView({ behavior: "smooth", block: "center" });
6874
+ var _a2;
6875
+ (_a2 = propsEndRef.current) == null ? void 0 : _a2.scrollIntoView({ behavior: "smooth", block: "center" });
6861
6876
  }, 100);
6862
6877
  };
6863
6878
  const handleRemoveProp = (index) => setCustomProps(customProps.filter((_, i) => i !== index));
@@ -6890,12 +6905,12 @@ function InSceneCreationForm({
6890
6905
  onSizeChange == null ? void 0 : onSizeChange(newSize);
6891
6906
  };
6892
6907
  const handleToggleImageMode = () => {
6893
- var _a, _b;
6908
+ var _a2, _b;
6894
6909
  const newValue = !useImageAsTexture;
6895
6910
  setUseImageAsTexture(newValue);
6896
6911
  if (newValue) {
6897
6912
  const firstImageProp = customProps.find((p) => p.type === "images");
6898
- if (firstImageProp && ((_b = (_a = firstImageProp.value) == null ? void 0 : _a[0]) == null ? void 0 : _b.value)) {
6913
+ if (firstImageProp && ((_b = (_a2 = firstImageProp.value) == null ? void 0 : _a2[0]) == null ? void 0 : _b.value)) {
6899
6914
  const url = firstImageProp.value[0].value;
6900
6915
  setSelectedImageUrl(url);
6901
6916
  onImageChange == null ? void 0 : onImageChange(true, url);
@@ -6929,7 +6944,6 @@ function InSceneCreationForm({
6929
6944
  useImageAsTexture,
6930
6945
  textureImageUrl: useImageAsTexture ? selectedImageUrl : null,
6931
6946
  targetDatasetId,
6932
- // Alvo do Dataset adicionado no onSave
6933
6947
  ...additionalData
6934
6948
  });
6935
6949
  };
@@ -6950,6 +6964,7 @@ function InSceneCreationForm({
6950
6964
  onOpenImageViewer([{ name: name2 || "Imagem", value: url }], 0);
6951
6965
  }
6952
6966
  };
6967
+ const selectedDatasetName = ((_a = availableDatasets.find((ds) => ds.id === targetDatasetId)) == null ? void 0 : _a.name) || "Selecione um Dataset...";
6953
6968
  return /* @__PURE__ */ React13.createElement(React13.Fragment, null, /* @__PURE__ */ React13.createElement(
6954
6969
  "div",
6955
6970
  {
@@ -7007,15 +7022,27 @@ function InSceneCreationForm({
7007
7022
  }
7008
7023
  },
7009
7024
  suggestedType
7010
- ))))), /* @__PURE__ */ React13.createElement("div", { className: "space-y-1.5" }, /* @__PURE__ */ React13.createElement("label", { className: "text-xs text-slate-300" }, "Nome do Node"), /* @__PURE__ */ React13.createElement("input", { required: true, type: "text", placeholder: "Ex.: Cliente XPTO", value: name, onChange: handleNameInputChange, className: "w-full bg-slate-800/70 p-2.5 text-sm rounded-lg border border-white/10 focus:outline-none focus:ring-2 focus:ring-indigo-400/60" })), viewType === "view" && availableDatasets.length > 0 && /* @__PURE__ */ React13.createElement("div", { className: "space-y-1.5" }, /* @__PURE__ */ React13.createElement("label", { className: "text-xs text-slate-300" }, "Criar Node no Dataset:"), /* @__PURE__ */ React13.createElement(
7011
- "select",
7025
+ ))))), /* @__PURE__ */ React13.createElement("div", { className: "space-y-1.5" }, /* @__PURE__ */ React13.createElement("label", { className: "text-xs text-slate-300" }, "Nome do Node"), /* @__PURE__ */ React13.createElement("input", { required: true, type: "text", placeholder: "Ex.: Cliente XPTO", value: name, onChange: handleNameInputChange, className: "w-full bg-slate-800/70 p-2.5 text-sm rounded-lg border border-white/10 focus:outline-none focus:ring-2 focus:ring-indigo-400/60" })), viewType === "view" && availableDatasets.length > 0 && /* @__PURE__ */ React13.createElement("div", { className: "space-y-1.5 relative", ref: datasetDropdownRef }, /* @__PURE__ */ React13.createElement("label", { className: "text-xs text-slate-300" }, "Criar Node no Dataset:"), /* @__PURE__ */ React13.createElement(
7026
+ "button",
7012
7027
  {
7013
- value: targetDatasetId,
7014
- onChange: (e) => setTargetDatasetId(e.target.value),
7015
- className: "w-full bg-slate-800/70 p-2.5 text-sm rounded-lg border border-white/10 focus:outline-none focus:ring-2 focus:ring-indigo-400/60 text-slate-200 cursor-pointer appearance-none"
7028
+ type: "button",
7029
+ onClick: () => setIsDatasetDropdownOpen(!isDatasetDropdownOpen),
7030
+ className: "w-full flex items-center justify-between bg-slate-800/70 p-2.5 text-sm rounded-lg border border-white/10 focus:outline-none focus:ring-2 focus:ring-indigo-400/60 hover:bg-slate-700/70 transition-colors text-slate-200 text-left"
7031
+ },
7032
+ /* @__PURE__ */ React13.createElement("span", { className: "truncate pr-2" }, selectedDatasetName),
7033
+ /* @__PURE__ */ React13.createElement(FiChevronDown4, { className: `flex-shrink-0 text-slate-400 transition-transform ${isDatasetDropdownOpen ? "rotate-180" : ""}` })
7034
+ ), isDatasetDropdownOpen && /* @__PURE__ */ React13.createElement("ul", { className: "custom-scrollbar absolute top-[66px] left-0 z-20 w-full max-h-48 overflow-y-auto rounded-lg bg-slate-800 border border-white/10 shadow-xl py-1" }, availableDatasets.map((ds) => /* @__PURE__ */ React13.createElement(
7035
+ "li",
7036
+ {
7037
+ key: ds.id,
7038
+ onClick: () => {
7039
+ setTargetDatasetId(ds.id);
7040
+ setIsDatasetDropdownOpen(false);
7041
+ },
7042
+ className: `px-3 py-2 text-sm cursor-pointer transition-colors ${targetDatasetId === ds.id ? "bg-indigo-600/40 text-indigo-200 font-medium" : "text-slate-300 hover:bg-white/5"}`
7016
7043
  },
7017
- availableDatasets.map((ds) => /* @__PURE__ */ React13.createElement("option", { key: ds.id, value: ds.id }, ds.name))
7018
- )), /* @__PURE__ */ React13.createElement("div", { className: "space-y-1.5 relative" }, /* @__PURE__ */ React13.createElement("label", { className: "text-xs text-slate-300" }, "Descri\xE7\xE3o (Opcional)"), /* @__PURE__ */ React13.createElement("div", { className: "relative group min-h-[80px] bg-slate-800/70 p-2.5 rounded-lg border border-white/10 hover:border-white/20 transition-colors" }, /* @__PURE__ */ React13.createElement(
7044
+ ds.name
7045
+ )))), /* @__PURE__ */ React13.createElement("div", { className: "space-y-1.5 relative" }, /* @__PURE__ */ React13.createElement("label", { className: "text-xs text-slate-300" }, "Descri\xE7\xE3o (Opcional)"), /* @__PURE__ */ React13.createElement("div", { className: "relative group min-h-[80px] bg-slate-800/70 p-2.5 rounded-lg border border-white/10 hover:border-white/20 transition-colors" }, /* @__PURE__ */ React13.createElement(
7019
7046
  DescriptionDisplay,
7020
7047
  {
7021
7048
  description,
@@ -7353,7 +7380,6 @@ function NodeDetailsPanel({
7353
7380
  onUploadFile,
7354
7381
  userRole,
7355
7382
  currentDatasetName
7356
- // Prop currentDatasetName adicionada
7357
7383
  }) {
7358
7384
  const [name, setName] = useState15((node == null ? void 0 : node.name) ?? "");
7359
7385
  const [types, setTypes] = useState15([]);
@@ -7764,7 +7790,7 @@ function NodeDetailsPanel({
7764
7790
  onUploadFile: canEdit ? onUploadFile : void 0,
7765
7791
  readOnly: !canEdit
7766
7792
  }
7767
- )), /* @__PURE__ */ React15.createElement("div", { ref: propsEndRef }))), currentDatasetName && /* @__PURE__ */ React15.createElement("div", { className: "pt-2 mt-4 border-t border-white/10" }, /* @__PURE__ */ React15.createElement("label", { className: "text-[10px] uppercase text-slate-400 font-semibold tracking-wider" }, "Hospedado no Dataset"), /* @__PURE__ */ React15.createElement("div", { className: "flex items-center gap-2 mt-1.5 px-3 py-2 bg-slate-800/40 rounded-lg border border-white/5" }, /* @__PURE__ */ React15.createElement(FiDatabase, { className: "text-indigo-400", size: 14 }), /* @__PURE__ */ React15.createElement("span", { className: "text-xs text-slate-300 truncate font-medium" }, currentDatasetName)))), /* @__PURE__ */ React15.createElement("div", { className: "sticky bottom-0 z-10 bg-gradient-to-t from-slate-950/80 via-slate-950/50 to-transparent px-6 py-4 border-t border-white/10 flex justify-end gap-3" }, /* @__PURE__ */ React15.createElement("button", { onClick: handleCancel, disabled: isSaving, className: "px-4 py-2 rounded-lg border border-white/15 bg-transparent hover:bg-white/5 transition-colors text-sm disabled:opacity-50" }, canEdit ? "Cancelar" : "Fechar"), canEdit && /* @__PURE__ */ React15.createElement(
7793
+ )), /* @__PURE__ */ React15.createElement("div", { ref: propsEndRef }))), currentDatasetName && /* @__PURE__ */ React15.createElement("div", { className: "pt-3 mt-4 border-t border-white/10 flex items-center gap-2 text-xs text-slate-400" }, /* @__PURE__ */ React15.createElement(FiDatabase, { className: "text-indigo-400 shrink-0", size: 14 }), /* @__PURE__ */ React15.createElement("span", { className: "truncate" }, "Dataset ", /* @__PURE__ */ React15.createElement("span", { className: "text-slate-200 font-medium" }, currentDatasetName)))), /* @__PURE__ */ React15.createElement("div", { className: "sticky bottom-0 z-10 bg-gradient-to-t from-slate-950/80 via-slate-950/50 to-transparent px-6 py-4 border-t border-white/10 flex justify-end gap-3" }, /* @__PURE__ */ React15.createElement("button", { onClick: handleCancel, disabled: isSaving, className: "px-4 py-2 rounded-lg border border-white/15 bg-transparent hover:bg-white/5 transition-colors text-sm disabled:opacity-50" }, canEdit ? "Cancelar" : "Fechar"), canEdit && /* @__PURE__ */ React15.createElement(
7768
7794
  "button",
7769
7795
  {
7770
7796
  onClick: () => handleSave(false),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lv-x-software-house/x_view",
3
- "version": "1.2.2-dev.8",
3
+ "version": "1.2.2-dev.9",
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",