@lv-x-software-house/x_view 1.2.6-dev.70 → 1.2.6-dev.73

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.
Files changed (3) hide show
  1. package/dist/index.js +141 -106
  2. package/dist/index.mjs +142 -107
  3. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -4281,7 +4281,7 @@ function XViewSidebar({
4281
4281
  }
4282
4282
  )
4283
4283
  )
4284
- ), /* @__PURE__ */ import_react3.default.createElement("h3", { className: "text-sm font-semibold text-indigo-100 uppercase tracking-wider" }, activeSubMenu === "quest" ? "Quest Lens" : "Reshape Lens"), /* @__PURE__ */ import_react3.default.createElement(
4284
+ ), /* @__PURE__ */ import_react3.default.createElement("h3", { className: "text-sm font-semibold text-indigo-100 uppercase tracking-wider" }, activeSubMenu === "quest" ? "Quest Lens" : activeSubMenu === "reshape" ? "Reshape Lens" : "Integra\xE7\xF5es"), /* @__PURE__ */ import_react3.default.createElement(
4285
4285
  "button",
4286
4286
  {
4287
4287
  className: "ml-auto p-1.5 rounded-md text-slate-400 hover:text-white hover:bg-white/10 transition-colors hidden md:block",
@@ -4306,74 +4306,144 @@ function XViewSidebar({
4306
4306
  )
4307
4307
  )
4308
4308
  )),
4309
- /* @__PURE__ */ import_react3.default.createElement("div", { className: "flex-1 overflow-y-auto p-4 space-y-6" }, activeSubMenu === "quest" && /* @__PURE__ */ import_react3.default.createElement("div", { className: "space-y-6 animate-in fade-in slide-in-from-bottom-2 duration-500" }, /* @__PURE__ */ import_react3.default.createElement("div", { className: "space-y-2.5" }, /* @__PURE__ */ import_react3.default.createElement("label", { className: "text-[11px] uppercase text-slate-400 font-semibold tracking-wider ml-1 mb-1 block" }, "Respons\xE1vel"), /* @__PURE__ */ import_react3.default.createElement(
4310
- CustomSelect,
4311
- {
4312
- value: questFilterAssignee,
4313
- onChange: (val) => setQuestFilterAssignee(val),
4314
- options: [
4315
- { value: "", label: "Todos os Respons\xE1veis" },
4316
- ...viewMembers.map((m) => ({
4317
- value: m.id,
4318
- label: m.name || m.email
4319
- }))
4320
- ],
4321
- placeholder: "Selecione um Respons\xE1vel"
4322
- }
4323
- )), /* @__PURE__ */ import_react3.default.createElement("div", { className: "space-y-2.5" }, /* @__PURE__ */ import_react3.default.createElement("label", { className: "text-[11px] uppercase text-slate-400 font-semibold tracking-wider ml-1 mb-1 block" }, "Status"), /* @__PURE__ */ import_react3.default.createElement(
4324
- CustomSelect,
4309
+ /* @__PURE__ */ import_react3.default.createElement("div", { className: "flex-1 overflow-y-auto p-4 space-y-6" }, activeSubMenu === "integrations" && /* @__PURE__ */ import_react3.default.createElement("div", { className: "space-y-6 animate-in fade-in slide-in-from-bottom-2 duration-500" }, /* @__PURE__ */ import_react3.default.createElement("section", { className: "space-y-3" }, /* @__PURE__ */ import_react3.default.createElement("div", { className: "flex items-center gap-2 mb-1" }, /* @__PURE__ */ import_react3.default.createElement("div", { className: "p-1.5 rounded-md bg-indigo-500/10 text-indigo-400" }, /* @__PURE__ */ import_react3.default.createElement(
4310
+ "svg",
4325
4311
  {
4326
- value: questFilterStatus,
4327
- onChange: (val) => setQuestFilterStatus(val),
4328
- options: [
4329
- { value: "", label: "Todos (Exclui Done)" },
4330
- { value: "Backlog", label: "Backlog" },
4331
- { value: "In Progress", label: "In Progress" },
4332
- { value: "Review", label: "Review" },
4333
- { value: "Done", label: "Done" }
4334
- ],
4335
- placeholder: "Selecione um Status"
4336
- }
4337
- )), /* @__PURE__ */ import_react3.default.createElement("div", { className: "space-y-2.5" }, /* @__PURE__ */ import_react3.default.createElement("label", { className: "text-[11px] uppercase text-slate-400 font-semibold tracking-wider ml-1 mb-1 block" }, "Milestone"), /* @__PURE__ */ import_react3.default.createElement(
4338
- CustomSelect,
4312
+ viewBox: "0 0 24 24",
4313
+ fill: "none",
4314
+ stroke: "currentColor",
4315
+ strokeWidth: "2",
4316
+ strokeLinecap: "round",
4317
+ strokeLinejoin: "round",
4318
+ className: "w-4 h-4"
4319
+ },
4320
+ /* @__PURE__ */ import_react3.default.createElement("path", { d: "M9 12h6" }),
4321
+ /* @__PURE__ */ import_react3.default.createElement("path", { d: "M12 9v6" }),
4322
+ /* @__PURE__ */ import_react3.default.createElement("path", { d: "M12 2v2" }),
4323
+ /* @__PURE__ */ import_react3.default.createElement("path", { d: "M12 20v2" }),
4324
+ /* @__PURE__ */ import_react3.default.createElement("path", { d: "m4.93 4.93.71.71" }),
4325
+ /* @__PURE__ */ import_react3.default.createElement("path", { d: "m18.36 18.36.71.71" }),
4326
+ /* @__PURE__ */ import_react3.default.createElement("path", { d: "M2 12h2" }),
4327
+ /* @__PURE__ */ import_react3.default.createElement("path", { d: "M20 12h2" }),
4328
+ /* @__PURE__ */ import_react3.default.createElement("path", { d: "m4.93 19.07.71-.71" }),
4329
+ /* @__PURE__ */ import_react3.default.createElement("path", { d: "m18.36 5.64.71-.71" })
4330
+ )), /* @__PURE__ */ import_react3.default.createElement("p", { className: "text-[11px] uppercase tracking-wider text-slate-400 font-bold" }, "Google Drive")), /* @__PURE__ */ import_react3.default.createElement("div", { className: "space-y-3" }, /* @__PURE__ */ import_react3.default.createElement("div", { className: "flex items-center justify-between bg-slate-900/50 p-3 rounded-lg border border-white/5" }, /* @__PURE__ */ import_react3.default.createElement("div", { className: "flex flex-col truncate" }, /* @__PURE__ */ import_react3.default.createElement("span", { className: "text-[10px] text-slate-500 uppercase font-black tracking-widest mb-0.5" }, "Pasta Atual"), /* @__PURE__ */ import_react3.default.createElement(
4331
+ "span",
4339
4332
  {
4340
- value: questFilterMilestone,
4341
- onChange: (val) => setQuestFilterMilestone(val),
4342
- options: [
4343
- { value: "", label: "Todos os Milestones" },
4344
- ...milestones.map((ms) => ({
4345
- value: ms.id,
4346
- label: `${ms.name} ${ms.status === "inactive" ? "(Inativo)" : ""}`
4347
- }))
4348
- ],
4349
- placeholder: "Todos os Milestones"
4350
- }
4351
- )), /* @__PURE__ */ import_react3.default.createElement("div", { className: "flex gap-3 pt-4" }, /* @__PURE__ */ import_react3.default.createElement(
4333
+ className: "text-xs text-indigo-200 truncate font-medium",
4334
+ title: folderId ? folderId : "Padr\xE3o do Criador"
4335
+ },
4336
+ folderName ? folderName : folderId ? folderId : "Padr\xE3o do Criador"
4337
+ )), folderId && /* @__PURE__ */ import_react3.default.createElement(
4352
4338
  "button",
4353
4339
  {
4340
+ title: "Remover v\xEDnculo da pasta",
4354
4341
  onClick: () => {
4355
- setQuestFilterAssignee("");
4356
- setQuestFilterStatus("");
4357
- setQuestFilterMilestone("");
4342
+ setFolderId("");
4343
+ setFolderName("");
4344
+ onSaveConfig({
4345
+ view_google_folder_id: "",
4346
+ view_google_folder_name: ""
4347
+ });
4358
4348
  },
4359
- className: "flex-1 py-3 bg-white/[0.03] hover:bg-white/[0.08] text-slate-400 hover:text-slate-200 text-[10px] font-black uppercase tracking-widest rounded-xl transition-all border border-white/5 active:scale-95"
4349
+ className: "p-1.5 hover:bg-red-500/10 text-slate-500 hover:text-red-400 rounded-md transition-colors"
4360
4350
  },
4361
- "Limpar"
4362
- ), /* @__PURE__ */ import_react3.default.createElement(
4351
+ /* @__PURE__ */ import_react3.default.createElement(
4352
+ "svg",
4353
+ {
4354
+ xmlns: "http://www.w3.org/2000/svg",
4355
+ className: "h-4 w-4",
4356
+ viewBox: "0 0 20 20",
4357
+ fill: "currentColor"
4358
+ },
4359
+ /* @__PURE__ */ import_react3.default.createElement(
4360
+ "path",
4361
+ {
4362
+ fillRule: "evenodd",
4363
+ d: "M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z",
4364
+ clipRule: "evenodd"
4365
+ }
4366
+ )
4367
+ )
4368
+ )), /* @__PURE__ */ import_react3.default.createElement(
4363
4369
  "button",
4364
4370
  {
4365
- onClick: () => {
4366
- onActivateQuestLens({
4367
- assigneeId: questFilterAssignee,
4368
- status: questFilterStatus,
4369
- milestoneId: questFilterMilestone
4370
- });
4371
- setActiveSubMenu(null);
4371
+ onClick: async () => {
4372
+ if (!open_google_picker_action) return;
4373
+ setIsPickingGoogleFolder(true);
4374
+ try {
4375
+ const result = await open_google_picker_action();
4376
+ if (result && result.folderId) {
4377
+ setFolderId(result.folderId);
4378
+ setFolderName(result.folderName || "");
4379
+ onSaveConfig({
4380
+ view_google_folder_id: result.folderId,
4381
+ view_google_folder_name: result.folderName || ""
4382
+ });
4383
+ }
4384
+ } catch (e) {
4385
+ console.error(
4386
+ "Erro ao selecionar pasta Google Drive",
4387
+ e
4388
+ );
4389
+ } finally {
4390
+ setIsPickingGoogleFolder(false);
4391
+ }
4372
4392
  },
4373
- className: "flex-[2] py-3 bg-indigo-600 hover:bg-indigo-500 text-white text-[10px] font-black uppercase tracking-widest rounded-xl shadow-lg shadow-indigo-500/20 transition-all hover:scale-[1.02] active:scale-95"
4393
+ disabled: isPickingGoogleFolder,
4394
+ className: "w-full px-4 py-3 rounded-xl bg-indigo-500/10 hover:bg-indigo-500/20 border border-indigo-500/30 text-[11px] font-black uppercase tracking-widest text-indigo-100 transition-all flex items-center justify-center gap-2 disabled:opacity-50 disabled:cursor-not-allowed active:scale-95"
4374
4395
  },
4375
- "Aplicar Lente"
4376
- ))), activeSubMenu === "reshape" && /* @__PURE__ */ import_react3.default.createElement("div", { className: "space-y-6 animate-in fade-in slide-in-from-bottom-2 duration-500" }, /* @__PURE__ */ import_react3.default.createElement("div", { className: "space-y-2.5" }, /* @__PURE__ */ import_react3.default.createElement("label", { className: "text-[11px] uppercase text-slate-400 font-semibold tracking-wider ml-1 mb-1 block" }, "Layout Type"), /* @__PURE__ */ import_react3.default.createElement(
4396
+ isPickingGoogleFolder ? /* @__PURE__ */ import_react3.default.createElement(
4397
+ "svg",
4398
+ {
4399
+ className: "animate-spin h-4 w-4 text-white",
4400
+ xmlns: "http://www.w3.org/2000/svg",
4401
+ fill: "none",
4402
+ viewBox: "0 0 24 24"
4403
+ },
4404
+ /* @__PURE__ */ import_react3.default.createElement(
4405
+ "circle",
4406
+ {
4407
+ className: "opacity-25",
4408
+ cx: "12",
4409
+ cy: "12",
4410
+ r: "10",
4411
+ stroke: "currentColor",
4412
+ strokeWidth: "4"
4413
+ }
4414
+ ),
4415
+ /* @__PURE__ */ import_react3.default.createElement(
4416
+ "path",
4417
+ {
4418
+ className: "opacity-75",
4419
+ fill: "currentColor",
4420
+ d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
4421
+ }
4422
+ )
4423
+ ) : "Selecionar Pasta no Drive"
4424
+ ), /* @__PURE__ */ import_react3.default.createElement("p", { className: "text-[10px] text-slate-500 italic px-1 leading-relaxed" }, "Documentos criados nesta View ser\xE3o salvos na pasta selecionada acima."))), /* @__PURE__ */ import_react3.default.createElement("div", { className: "h-px bg-white/5" }), /* @__PURE__ */ import_react3.default.createElement("section", { className: "opacity-40 select-none" }, /* @__PURE__ */ import_react3.default.createElement("p", { className: "text-[10px] uppercase tracking-[0.2em] text-slate-500 font-bold mb-4" }, "Pr\xF3ximas Integra\xE7\xF5es"), /* @__PURE__ */ import_react3.default.createElement("div", { className: "space-y-3" }, /* @__PURE__ */ import_react3.default.createElement("div", { className: "flex items-center gap-3 px-3 py-2.5 rounded-lg border border-white/5 bg-white/[0.02]" }, /* @__PURE__ */ import_react3.default.createElement("div", { className: "w-6 h-6 rounded bg-slate-800 flex items-center justify-center text-slate-600" }, /* @__PURE__ */ import_react3.default.createElement(
4425
+ "svg",
4426
+ {
4427
+ width: "14",
4428
+ height: "14",
4429
+ viewBox: "0 0 24 24",
4430
+ fill: "none",
4431
+ stroke: "currentColor",
4432
+ strokeWidth: "2"
4433
+ },
4434
+ /* @__PURE__ */ import_react3.default.createElement("path", { d: "M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z" })
4435
+ )), /* @__PURE__ */ import_react3.default.createElement("span", { className: "text-xs text-slate-600 font-medium" }, "GitHub")), /* @__PURE__ */ import_react3.default.createElement("div", { className: "flex items-center gap-3 px-3 py-2.5 rounded-lg border border-white/5 bg-white/[0.02]" }, /* @__PURE__ */ import_react3.default.createElement("div", { className: "w-6 h-6 rounded bg-slate-800 flex items-center justify-center text-slate-600" }, /* @__PURE__ */ import_react3.default.createElement(
4436
+ "svg",
4437
+ {
4438
+ width: "14",
4439
+ height: "14",
4440
+ viewBox: "0 0 24 24",
4441
+ fill: "none",
4442
+ stroke: "currentColor",
4443
+ strokeWidth: "2"
4444
+ },
4445
+ /* @__PURE__ */ import_react3.default.createElement("path", { d: "M22 17H2a3 3 0 0 0 3-3V9a7 7 0 0 1 14 0v5a3 3 0 0 0 3 3zm-3 0v2a3 3 0 0 1-3 3H8a3 3 0 0 1-3-3v-2" })
4446
+ )), /* @__PURE__ */ import_react3.default.createElement("span", { className: "text-xs text-slate-600 font-medium" }, "Slack"))))), activeSubMenu === "reshape" && /* @__PURE__ */ import_react3.default.createElement("div", { className: "space-y-6 animate-in fade-in slide-in-from-bottom-2 duration-500" }, /* @__PURE__ */ import_react3.default.createElement("div", { className: "space-y-2.5" }, /* @__PURE__ */ import_react3.default.createElement("label", { className: "text-[11px] uppercase text-slate-400 font-semibold tracking-wider ml-1 mb-1 block" }, "Layout Type"), /* @__PURE__ */ import_react3.default.createElement(
4377
4447
  CustomSelect,
4378
4448
  {
4379
4449
  value: reshapeLayoutType,
@@ -4707,46 +4777,17 @@ function XViewSidebar({
4707
4777
  className: buttonBaseClass
4708
4778
  },
4709
4779
  "Gerenciar Milestones"
4710
- )), userRole === "owner" && /* @__PURE__ */ import_react3.default.createElement(import_react3.default.Fragment, null, /* @__PURE__ */ import_react3.default.createElement("div", { className: "h-px bg-white/10" }), /* @__PURE__ */ import_react3.default.createElement("section", { className: "space-y-3" }, /* @__PURE__ */ import_react3.default.createElement("p", { className: "text-[11px] uppercase tracking-wider text-slate-400" }, "Google Drive"), /* @__PURE__ */ import_react3.default.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ import_react3.default.createElement("div", { className: "flex items-center justify-between bg-slate-900/50 p-2 rounded-md border border-white/5" }, /* @__PURE__ */ import_react3.default.createElement("div", { className: "flex flex-col truncate" }, /* @__PURE__ */ import_react3.default.createElement("span", { className: "text-[10px] text-slate-500 uppercase font-bold" }, "Pasta Atual"), /* @__PURE__ */ import_react3.default.createElement("span", { className: "text-xs text-indigo-200 truncate", title: folderId ? folderId : "Padr\xE3o do Criador" }, folderName ? folderName : folderId ? folderId : "Padr\xE3o do Criador")), folderId && /* @__PURE__ */ import_react3.default.createElement(
4780
+ )), userRole === "owner" && /* @__PURE__ */ import_react3.default.createElement(import_react3.default.Fragment, null, /* @__PURE__ */ import_react3.default.createElement("div", { className: "h-px bg-white/10" }), /* @__PURE__ */ import_react3.default.createElement("section", { className: "space-y-3" }, /* @__PURE__ */ import_react3.default.createElement("p", { className: "text-[11px] uppercase tracking-wider text-slate-400 font-semibold mb-2" }, "Configura\xE7\xF5es"), /* @__PURE__ */ import_react3.default.createElement(
4711
4781
  "button",
4712
4782
  {
4713
- title: "Remover v\xEDnculo da pasta",
4714
- onClick: () => {
4715
- setFolderId("");
4716
- setFolderName("");
4717
- onSaveConfig({ view_google_folder_id: "", view_google_folder_name: "" });
4718
- },
4719
- className: "p-1 hover:bg-red-500/20 text-slate-400 hover:text-red-400 rounded transition-colors"
4720
- },
4721
- /* @__PURE__ */ import_react3.default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", className: "h-4 w-4", viewBox: "0 0 20 20", fill: "currentColor" }, /* @__PURE__ */ import_react3.default.createElement("path", { fillRule: "evenodd", d: "M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z", clipRule: "evenodd" }))
4722
- )), /* @__PURE__ */ import_react3.default.createElement(
4723
- "button",
4724
- {
4725
- onClick: async () => {
4726
- if (!open_google_picker_action) return;
4727
- setIsPickingGoogleFolder(true);
4728
- try {
4729
- const result = await open_google_picker_action();
4730
- if (result && result.folderId) {
4731
- setFolderId(result.folderId);
4732
- setFolderName(result.folderName || "");
4733
- onSaveConfig({
4734
- view_google_folder_id: result.folderId,
4735
- view_google_folder_name: result.folderName || ""
4736
- });
4737
- }
4738
- } catch (e) {
4739
- console.error("Erro ao selecionar pasta Google Drive", e);
4740
- alert("Erro ao abrir Picker. Verifique o console.");
4741
- } finally {
4742
- setIsPickingGoogleFolder(false);
4743
- }
4744
- },
4745
- disabled: isPickingGoogleFolder,
4746
- className: "w-full px-3 py-2 rounded-md bg-indigo-600/20 hover:bg-indigo-600/40 border border-indigo-500/50 text-xs text-indigo-100 transition-colors flex items-center justify-center gap-2 cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed"
4783
+ onClick: () => setActiveSubMenu(
4784
+ activeSubMenu === "integrations" ? null : "integrations"
4785
+ ),
4786
+ className: `${buttonBaseClass} lens-button ${activeSubMenu === "integrations" ? "bg-indigo-500/30 border-indigo-400" : ""}`
4747
4787
  },
4748
- isPickingGoogleFolder ? /* @__PURE__ */ import_react3.default.createElement("svg", { className: "animate-spin h-4 w-4 text-white", xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24" }, /* @__PURE__ */ import_react3.default.createElement("circle", { className: "opacity-25", cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "4" }), /* @__PURE__ */ import_react3.default.createElement("path", { className: "opacity-75", fill: "currentColor", d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z" })) : "Selecionar Pasta no Drive"
4749
- ), /* @__PURE__ */ import_react3.default.createElement("p", { className: "text-[9px] text-slate-500 italic" }, "Documentos criados nesta View ser\xE3o salvos nesta pasta."))))),
4788
+ /* @__PURE__ */ import_react3.default.createElement(import_fi2.FiCpu, { size: 16 }),
4789
+ "Integra\xE7\xF5es"
4790
+ )))),
4750
4791
  /* @__PURE__ */ import_react3.default.createElement("div", { className: "px-4 py-3 border-t border-white/10 bg-slate-900/30" }, /* @__PURE__ */ import_react3.default.createElement("section", { className: "space-y-2" }, /* @__PURE__ */ import_react3.default.createElement("p", { className: "text-[11px] uppercase tracking-wider text-slate-400" }, "Navega\xE7\xE3o"), ability.can("update", "Scene") && /* @__PURE__ */ import_react3.default.createElement(
4751
4792
  "button",
4752
4793
  {
@@ -17561,14 +17602,10 @@ function XViewScene({
17561
17602
  }
17562
17603
  graphDataRef.current[sceneConfigId2].nodes.push(newNode);
17563
17604
  const sceneFileData = {
17564
- parent_dbs: sceneDataRef2.current.parent_dbs,
17565
- nodes: sceneDataRef2.current.nodes,
17566
- // Permanece intacto, como estava no último save de cena inicial
17567
- links: sceneDataRef2.current.links,
17605
+ ...sceneDataRef2.current,
17568
17606
  quest_nodes: graphDataRef.current[sceneConfigId2].nodes,
17569
17607
  quest_links: graphDataRef.current[sceneConfigId2].links,
17570
- quest_counter: currentCounter + 1,
17571
- milestones: sceneDataRef2.current.milestones || []
17608
+ quest_counter: currentCounter + 1
17572
17609
  };
17573
17610
  try {
17574
17611
  await actions.save_view_data(sceneSaveUrl2, sceneFileData);
@@ -17644,9 +17681,7 @@ function XViewScene({
17644
17681
  const specificParentData = graphDataRef.current[sceneConfigId2];
17645
17682
  specificParentData.links.push(newLink);
17646
17683
  const viewFilePayload = {
17647
- parent_dbs: sceneDataRef2.current.parent_dbs,
17648
- nodes: sceneDataRef2.current.nodes,
17649
- links: sceneDataRef2.current.links,
17684
+ ...sceneDataRef2.current,
17650
17685
  quest_nodes: specificParentData.nodes,
17651
17686
  quest_links: specificParentData.links,
17652
17687
  quest_counter: sceneDataRef2.current.quest_counter || 1
@@ -19359,7 +19394,7 @@ function XViewScene({
19359
19394
  return serializableLinkData;
19360
19395
  });
19361
19396
  const sceneFileData = {
19362
- parent_dbs: sceneDataRef.current.parent_dbs,
19397
+ ...sceneDataRef.current,
19363
19398
  nodes: currentNodes,
19364
19399
  links: currentLinks,
19365
19400
  quest_nodes: ((_b2 = parentDataRef.current[sceneConfigId]) == null ? void 0 : _b2.nodes) || sceneDataRef.current.quest_nodes || [],
@@ -19409,7 +19444,7 @@ function XViewScene({
19409
19444
  sceneDataRef.current.links = currentLinks;
19410
19445
  const isView = ((_a2 = viewParams == null ? void 0 : viewParams.type) == null ? void 0 : _a2.toLowerCase()) === "view";
19411
19446
  const sceneFileData = {
19412
- parent_dbs: sceneDataRef.current.parent_dbs,
19447
+ ...sceneDataRef.current,
19413
19448
  nodes: currentNodes,
19414
19449
  links: currentLinks,
19415
19450
  quest_nodes: isView ? ((_b2 = parentDataRef.current[sceneConfigId]) == null ? void 0 : _b2.nodes) || [] : sceneDataRef.current.quest_nodes || [],
package/dist/index.mjs CHANGED
@@ -3837,7 +3837,7 @@ function ContextMenu({
3837
3837
 
3838
3838
  // src/components/XViewSidebar.jsx
3839
3839
  import React2, { useMemo as useMemo2, useState as useState3, useEffect as useEffect2, useRef as useRef2 } from "react";
3840
- import { FiLayers } from "react-icons/fi";
3840
+ import { FiLayers, FiCpu } from "react-icons/fi";
3841
3841
  var CustomSelect = ({ value, onChange, options, placeholder }) => {
3842
3842
  const [isOpen, setIsOpen] = useState3(false);
3843
3843
  const selectRef = useRef2(null);
@@ -4242,7 +4242,7 @@ function XViewSidebar({
4242
4242
  }
4243
4243
  )
4244
4244
  )
4245
- ), /* @__PURE__ */ React2.createElement("h3", { className: "text-sm font-semibold text-indigo-100 uppercase tracking-wider" }, activeSubMenu === "quest" ? "Quest Lens" : "Reshape Lens"), /* @__PURE__ */ React2.createElement(
4245
+ ), /* @__PURE__ */ React2.createElement("h3", { className: "text-sm font-semibold text-indigo-100 uppercase tracking-wider" }, activeSubMenu === "quest" ? "Quest Lens" : activeSubMenu === "reshape" ? "Reshape Lens" : "Integra\xE7\xF5es"), /* @__PURE__ */ React2.createElement(
4246
4246
  "button",
4247
4247
  {
4248
4248
  className: "ml-auto p-1.5 rounded-md text-slate-400 hover:text-white hover:bg-white/10 transition-colors hidden md:block",
@@ -4267,74 +4267,144 @@ function XViewSidebar({
4267
4267
  )
4268
4268
  )
4269
4269
  )),
4270
- /* @__PURE__ */ React2.createElement("div", { className: "flex-1 overflow-y-auto p-4 space-y-6" }, activeSubMenu === "quest" && /* @__PURE__ */ React2.createElement("div", { className: "space-y-6 animate-in fade-in slide-in-from-bottom-2 duration-500" }, /* @__PURE__ */ React2.createElement("div", { className: "space-y-2.5" }, /* @__PURE__ */ React2.createElement("label", { className: "text-[11px] uppercase text-slate-400 font-semibold tracking-wider ml-1 mb-1 block" }, "Respons\xE1vel"), /* @__PURE__ */ React2.createElement(
4271
- CustomSelect,
4272
- {
4273
- value: questFilterAssignee,
4274
- onChange: (val) => setQuestFilterAssignee(val),
4275
- options: [
4276
- { value: "", label: "Todos os Respons\xE1veis" },
4277
- ...viewMembers.map((m) => ({
4278
- value: m.id,
4279
- label: m.name || m.email
4280
- }))
4281
- ],
4282
- placeholder: "Selecione um Respons\xE1vel"
4283
- }
4284
- )), /* @__PURE__ */ React2.createElement("div", { className: "space-y-2.5" }, /* @__PURE__ */ React2.createElement("label", { className: "text-[11px] uppercase text-slate-400 font-semibold tracking-wider ml-1 mb-1 block" }, "Status"), /* @__PURE__ */ React2.createElement(
4285
- CustomSelect,
4270
+ /* @__PURE__ */ React2.createElement("div", { className: "flex-1 overflow-y-auto p-4 space-y-6" }, activeSubMenu === "integrations" && /* @__PURE__ */ React2.createElement("div", { className: "space-y-6 animate-in fade-in slide-in-from-bottom-2 duration-500" }, /* @__PURE__ */ React2.createElement("section", { className: "space-y-3" }, /* @__PURE__ */ React2.createElement("div", { className: "flex items-center gap-2 mb-1" }, /* @__PURE__ */ React2.createElement("div", { className: "p-1.5 rounded-md bg-indigo-500/10 text-indigo-400" }, /* @__PURE__ */ React2.createElement(
4271
+ "svg",
4286
4272
  {
4287
- value: questFilterStatus,
4288
- onChange: (val) => setQuestFilterStatus(val),
4289
- options: [
4290
- { value: "", label: "Todos (Exclui Done)" },
4291
- { value: "Backlog", label: "Backlog" },
4292
- { value: "In Progress", label: "In Progress" },
4293
- { value: "Review", label: "Review" },
4294
- { value: "Done", label: "Done" }
4295
- ],
4296
- placeholder: "Selecione um Status"
4297
- }
4298
- )), /* @__PURE__ */ React2.createElement("div", { className: "space-y-2.5" }, /* @__PURE__ */ React2.createElement("label", { className: "text-[11px] uppercase text-slate-400 font-semibold tracking-wider ml-1 mb-1 block" }, "Milestone"), /* @__PURE__ */ React2.createElement(
4299
- CustomSelect,
4273
+ viewBox: "0 0 24 24",
4274
+ fill: "none",
4275
+ stroke: "currentColor",
4276
+ strokeWidth: "2",
4277
+ strokeLinecap: "round",
4278
+ strokeLinejoin: "round",
4279
+ className: "w-4 h-4"
4280
+ },
4281
+ /* @__PURE__ */ React2.createElement("path", { d: "M9 12h6" }),
4282
+ /* @__PURE__ */ React2.createElement("path", { d: "M12 9v6" }),
4283
+ /* @__PURE__ */ React2.createElement("path", { d: "M12 2v2" }),
4284
+ /* @__PURE__ */ React2.createElement("path", { d: "M12 20v2" }),
4285
+ /* @__PURE__ */ React2.createElement("path", { d: "m4.93 4.93.71.71" }),
4286
+ /* @__PURE__ */ React2.createElement("path", { d: "m18.36 18.36.71.71" }),
4287
+ /* @__PURE__ */ React2.createElement("path", { d: "M2 12h2" }),
4288
+ /* @__PURE__ */ React2.createElement("path", { d: "M20 12h2" }),
4289
+ /* @__PURE__ */ React2.createElement("path", { d: "m4.93 19.07.71-.71" }),
4290
+ /* @__PURE__ */ React2.createElement("path", { d: "m18.36 5.64.71-.71" })
4291
+ )), /* @__PURE__ */ React2.createElement("p", { className: "text-[11px] uppercase tracking-wider text-slate-400 font-bold" }, "Google Drive")), /* @__PURE__ */ React2.createElement("div", { className: "space-y-3" }, /* @__PURE__ */ React2.createElement("div", { className: "flex items-center justify-between bg-slate-900/50 p-3 rounded-lg border border-white/5" }, /* @__PURE__ */ React2.createElement("div", { className: "flex flex-col truncate" }, /* @__PURE__ */ React2.createElement("span", { className: "text-[10px] text-slate-500 uppercase font-black tracking-widest mb-0.5" }, "Pasta Atual"), /* @__PURE__ */ React2.createElement(
4292
+ "span",
4300
4293
  {
4301
- value: questFilterMilestone,
4302
- onChange: (val) => setQuestFilterMilestone(val),
4303
- options: [
4304
- { value: "", label: "Todos os Milestones" },
4305
- ...milestones.map((ms) => ({
4306
- value: ms.id,
4307
- label: `${ms.name} ${ms.status === "inactive" ? "(Inativo)" : ""}`
4308
- }))
4309
- ],
4310
- placeholder: "Todos os Milestones"
4311
- }
4312
- )), /* @__PURE__ */ React2.createElement("div", { className: "flex gap-3 pt-4" }, /* @__PURE__ */ React2.createElement(
4294
+ className: "text-xs text-indigo-200 truncate font-medium",
4295
+ title: folderId ? folderId : "Padr\xE3o do Criador"
4296
+ },
4297
+ folderName ? folderName : folderId ? folderId : "Padr\xE3o do Criador"
4298
+ )), folderId && /* @__PURE__ */ React2.createElement(
4313
4299
  "button",
4314
4300
  {
4301
+ title: "Remover v\xEDnculo da pasta",
4315
4302
  onClick: () => {
4316
- setQuestFilterAssignee("");
4317
- setQuestFilterStatus("");
4318
- setQuestFilterMilestone("");
4303
+ setFolderId("");
4304
+ setFolderName("");
4305
+ onSaveConfig({
4306
+ view_google_folder_id: "",
4307
+ view_google_folder_name: ""
4308
+ });
4319
4309
  },
4320
- className: "flex-1 py-3 bg-white/[0.03] hover:bg-white/[0.08] text-slate-400 hover:text-slate-200 text-[10px] font-black uppercase tracking-widest rounded-xl transition-all border border-white/5 active:scale-95"
4310
+ className: "p-1.5 hover:bg-red-500/10 text-slate-500 hover:text-red-400 rounded-md transition-colors"
4321
4311
  },
4322
- "Limpar"
4323
- ), /* @__PURE__ */ React2.createElement(
4312
+ /* @__PURE__ */ React2.createElement(
4313
+ "svg",
4314
+ {
4315
+ xmlns: "http://www.w3.org/2000/svg",
4316
+ className: "h-4 w-4",
4317
+ viewBox: "0 0 20 20",
4318
+ fill: "currentColor"
4319
+ },
4320
+ /* @__PURE__ */ React2.createElement(
4321
+ "path",
4322
+ {
4323
+ fillRule: "evenodd",
4324
+ d: "M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z",
4325
+ clipRule: "evenodd"
4326
+ }
4327
+ )
4328
+ )
4329
+ )), /* @__PURE__ */ React2.createElement(
4324
4330
  "button",
4325
4331
  {
4326
- onClick: () => {
4327
- onActivateQuestLens({
4328
- assigneeId: questFilterAssignee,
4329
- status: questFilterStatus,
4330
- milestoneId: questFilterMilestone
4331
- });
4332
- setActiveSubMenu(null);
4332
+ onClick: async () => {
4333
+ if (!open_google_picker_action) return;
4334
+ setIsPickingGoogleFolder(true);
4335
+ try {
4336
+ const result = await open_google_picker_action();
4337
+ if (result && result.folderId) {
4338
+ setFolderId(result.folderId);
4339
+ setFolderName(result.folderName || "");
4340
+ onSaveConfig({
4341
+ view_google_folder_id: result.folderId,
4342
+ view_google_folder_name: result.folderName || ""
4343
+ });
4344
+ }
4345
+ } catch (e) {
4346
+ console.error(
4347
+ "Erro ao selecionar pasta Google Drive",
4348
+ e
4349
+ );
4350
+ } finally {
4351
+ setIsPickingGoogleFolder(false);
4352
+ }
4333
4353
  },
4334
- className: "flex-[2] py-3 bg-indigo-600 hover:bg-indigo-500 text-white text-[10px] font-black uppercase tracking-widest rounded-xl shadow-lg shadow-indigo-500/20 transition-all hover:scale-[1.02] active:scale-95"
4354
+ disabled: isPickingGoogleFolder,
4355
+ className: "w-full px-4 py-3 rounded-xl bg-indigo-500/10 hover:bg-indigo-500/20 border border-indigo-500/30 text-[11px] font-black uppercase tracking-widest text-indigo-100 transition-all flex items-center justify-center gap-2 disabled:opacity-50 disabled:cursor-not-allowed active:scale-95"
4335
4356
  },
4336
- "Aplicar Lente"
4337
- ))), activeSubMenu === "reshape" && /* @__PURE__ */ React2.createElement("div", { className: "space-y-6 animate-in fade-in slide-in-from-bottom-2 duration-500" }, /* @__PURE__ */ React2.createElement("div", { className: "space-y-2.5" }, /* @__PURE__ */ React2.createElement("label", { className: "text-[11px] uppercase text-slate-400 font-semibold tracking-wider ml-1 mb-1 block" }, "Layout Type"), /* @__PURE__ */ React2.createElement(
4357
+ isPickingGoogleFolder ? /* @__PURE__ */ React2.createElement(
4358
+ "svg",
4359
+ {
4360
+ className: "animate-spin h-4 w-4 text-white",
4361
+ xmlns: "http://www.w3.org/2000/svg",
4362
+ fill: "none",
4363
+ viewBox: "0 0 24 24"
4364
+ },
4365
+ /* @__PURE__ */ React2.createElement(
4366
+ "circle",
4367
+ {
4368
+ className: "opacity-25",
4369
+ cx: "12",
4370
+ cy: "12",
4371
+ r: "10",
4372
+ stroke: "currentColor",
4373
+ strokeWidth: "4"
4374
+ }
4375
+ ),
4376
+ /* @__PURE__ */ React2.createElement(
4377
+ "path",
4378
+ {
4379
+ className: "opacity-75",
4380
+ fill: "currentColor",
4381
+ d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
4382
+ }
4383
+ )
4384
+ ) : "Selecionar Pasta no Drive"
4385
+ ), /* @__PURE__ */ React2.createElement("p", { className: "text-[10px] text-slate-500 italic px-1 leading-relaxed" }, "Documentos criados nesta View ser\xE3o salvos na pasta selecionada acima."))), /* @__PURE__ */ React2.createElement("div", { className: "h-px bg-white/5" }), /* @__PURE__ */ React2.createElement("section", { className: "opacity-40 select-none" }, /* @__PURE__ */ React2.createElement("p", { className: "text-[10px] uppercase tracking-[0.2em] text-slate-500 font-bold mb-4" }, "Pr\xF3ximas Integra\xE7\xF5es"), /* @__PURE__ */ React2.createElement("div", { className: "space-y-3" }, /* @__PURE__ */ React2.createElement("div", { className: "flex items-center gap-3 px-3 py-2.5 rounded-lg border border-white/5 bg-white/[0.02]" }, /* @__PURE__ */ React2.createElement("div", { className: "w-6 h-6 rounded bg-slate-800 flex items-center justify-center text-slate-600" }, /* @__PURE__ */ React2.createElement(
4386
+ "svg",
4387
+ {
4388
+ width: "14",
4389
+ height: "14",
4390
+ viewBox: "0 0 24 24",
4391
+ fill: "none",
4392
+ stroke: "currentColor",
4393
+ strokeWidth: "2"
4394
+ },
4395
+ /* @__PURE__ */ React2.createElement("path", { d: "M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z" })
4396
+ )), /* @__PURE__ */ React2.createElement("span", { className: "text-xs text-slate-600 font-medium" }, "GitHub")), /* @__PURE__ */ React2.createElement("div", { className: "flex items-center gap-3 px-3 py-2.5 rounded-lg border border-white/5 bg-white/[0.02]" }, /* @__PURE__ */ React2.createElement("div", { className: "w-6 h-6 rounded bg-slate-800 flex items-center justify-center text-slate-600" }, /* @__PURE__ */ React2.createElement(
4397
+ "svg",
4398
+ {
4399
+ width: "14",
4400
+ height: "14",
4401
+ viewBox: "0 0 24 24",
4402
+ fill: "none",
4403
+ stroke: "currentColor",
4404
+ strokeWidth: "2"
4405
+ },
4406
+ /* @__PURE__ */ React2.createElement("path", { d: "M22 17H2a3 3 0 0 0 3-3V9a7 7 0 0 1 14 0v5a3 3 0 0 0 3 3zm-3 0v2a3 3 0 0 1-3 3H8a3 3 0 0 1-3-3v-2" })
4407
+ )), /* @__PURE__ */ React2.createElement("span", { className: "text-xs text-slate-600 font-medium" }, "Slack"))))), activeSubMenu === "reshape" && /* @__PURE__ */ React2.createElement("div", { className: "space-y-6 animate-in fade-in slide-in-from-bottom-2 duration-500" }, /* @__PURE__ */ React2.createElement("div", { className: "space-y-2.5" }, /* @__PURE__ */ React2.createElement("label", { className: "text-[11px] uppercase text-slate-400 font-semibold tracking-wider ml-1 mb-1 block" }, "Layout Type"), /* @__PURE__ */ React2.createElement(
4338
4408
  CustomSelect,
4339
4409
  {
4340
4410
  value: reshapeLayoutType,
@@ -4668,46 +4738,17 @@ function XViewSidebar({
4668
4738
  className: buttonBaseClass
4669
4739
  },
4670
4740
  "Gerenciar Milestones"
4671
- )), userRole === "owner" && /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement("div", { className: "h-px bg-white/10" }), /* @__PURE__ */ React2.createElement("section", { className: "space-y-3" }, /* @__PURE__ */ React2.createElement("p", { className: "text-[11px] uppercase tracking-wider text-slate-400" }, "Google Drive"), /* @__PURE__ */ React2.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React2.createElement("div", { className: "flex items-center justify-between bg-slate-900/50 p-2 rounded-md border border-white/5" }, /* @__PURE__ */ React2.createElement("div", { className: "flex flex-col truncate" }, /* @__PURE__ */ React2.createElement("span", { className: "text-[10px] text-slate-500 uppercase font-bold" }, "Pasta Atual"), /* @__PURE__ */ React2.createElement("span", { className: "text-xs text-indigo-200 truncate", title: folderId ? folderId : "Padr\xE3o do Criador" }, folderName ? folderName : folderId ? folderId : "Padr\xE3o do Criador")), folderId && /* @__PURE__ */ React2.createElement(
4741
+ )), userRole === "owner" && /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement("div", { className: "h-px bg-white/10" }), /* @__PURE__ */ React2.createElement("section", { className: "space-y-3" }, /* @__PURE__ */ React2.createElement("p", { className: "text-[11px] uppercase tracking-wider text-slate-400 font-semibold mb-2" }, "Configura\xE7\xF5es"), /* @__PURE__ */ React2.createElement(
4672
4742
  "button",
4673
4743
  {
4674
- title: "Remover v\xEDnculo da pasta",
4675
- onClick: () => {
4676
- setFolderId("");
4677
- setFolderName("");
4678
- onSaveConfig({ view_google_folder_id: "", view_google_folder_name: "" });
4679
- },
4680
- className: "p-1 hover:bg-red-500/20 text-slate-400 hover:text-red-400 rounded transition-colors"
4681
- },
4682
- /* @__PURE__ */ React2.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", className: "h-4 w-4", viewBox: "0 0 20 20", fill: "currentColor" }, /* @__PURE__ */ React2.createElement("path", { fillRule: "evenodd", d: "M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z", clipRule: "evenodd" }))
4683
- )), /* @__PURE__ */ React2.createElement(
4684
- "button",
4685
- {
4686
- onClick: async () => {
4687
- if (!open_google_picker_action) return;
4688
- setIsPickingGoogleFolder(true);
4689
- try {
4690
- const result = await open_google_picker_action();
4691
- if (result && result.folderId) {
4692
- setFolderId(result.folderId);
4693
- setFolderName(result.folderName || "");
4694
- onSaveConfig({
4695
- view_google_folder_id: result.folderId,
4696
- view_google_folder_name: result.folderName || ""
4697
- });
4698
- }
4699
- } catch (e) {
4700
- console.error("Erro ao selecionar pasta Google Drive", e);
4701
- alert("Erro ao abrir Picker. Verifique o console.");
4702
- } finally {
4703
- setIsPickingGoogleFolder(false);
4704
- }
4705
- },
4706
- disabled: isPickingGoogleFolder,
4707
- className: "w-full px-3 py-2 rounded-md bg-indigo-600/20 hover:bg-indigo-600/40 border border-indigo-500/50 text-xs text-indigo-100 transition-colors flex items-center justify-center gap-2 cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed"
4744
+ onClick: () => setActiveSubMenu(
4745
+ activeSubMenu === "integrations" ? null : "integrations"
4746
+ ),
4747
+ className: `${buttonBaseClass} lens-button ${activeSubMenu === "integrations" ? "bg-indigo-500/30 border-indigo-400" : ""}`
4708
4748
  },
4709
- isPickingGoogleFolder ? /* @__PURE__ */ React2.createElement("svg", { className: "animate-spin h-4 w-4 text-white", xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24" }, /* @__PURE__ */ React2.createElement("circle", { className: "opacity-25", cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "4" }), /* @__PURE__ */ React2.createElement("path", { className: "opacity-75", fill: "currentColor", d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z" })) : "Selecionar Pasta no Drive"
4710
- ), /* @__PURE__ */ React2.createElement("p", { className: "text-[9px] text-slate-500 italic" }, "Documentos criados nesta View ser\xE3o salvos nesta pasta."))))),
4749
+ /* @__PURE__ */ React2.createElement(FiCpu, { size: 16 }),
4750
+ "Integra\xE7\xF5es"
4751
+ )))),
4711
4752
  /* @__PURE__ */ React2.createElement("div", { className: "px-4 py-3 border-t border-white/10 bg-slate-900/30" }, /* @__PURE__ */ React2.createElement("section", { className: "space-y-2" }, /* @__PURE__ */ React2.createElement("p", { className: "text-[11px] uppercase tracking-wider text-slate-400" }, "Navega\xE7\xE3o"), ability.can("update", "Scene") && /* @__PURE__ */ React2.createElement(
4712
4753
  "button",
4713
4754
  {
@@ -17618,14 +17659,10 @@ function XViewScene({
17618
17659
  }
17619
17660
  graphDataRef.current[sceneConfigId2].nodes.push(newNode);
17620
17661
  const sceneFileData = {
17621
- parent_dbs: sceneDataRef2.current.parent_dbs,
17622
- nodes: sceneDataRef2.current.nodes,
17623
- // Permanece intacto, como estava no último save de cena inicial
17624
- links: sceneDataRef2.current.links,
17662
+ ...sceneDataRef2.current,
17625
17663
  quest_nodes: graphDataRef.current[sceneConfigId2].nodes,
17626
17664
  quest_links: graphDataRef.current[sceneConfigId2].links,
17627
- quest_counter: currentCounter + 1,
17628
- milestones: sceneDataRef2.current.milestones || []
17665
+ quest_counter: currentCounter + 1
17629
17666
  };
17630
17667
  try {
17631
17668
  await actions.save_view_data(sceneSaveUrl2, sceneFileData);
@@ -17701,9 +17738,7 @@ function XViewScene({
17701
17738
  const specificParentData = graphDataRef.current[sceneConfigId2];
17702
17739
  specificParentData.links.push(newLink);
17703
17740
  const viewFilePayload = {
17704
- parent_dbs: sceneDataRef2.current.parent_dbs,
17705
- nodes: sceneDataRef2.current.nodes,
17706
- links: sceneDataRef2.current.links,
17741
+ ...sceneDataRef2.current,
17707
17742
  quest_nodes: specificParentData.nodes,
17708
17743
  quest_links: specificParentData.links,
17709
17744
  quest_counter: sceneDataRef2.current.quest_counter || 1
@@ -19416,7 +19451,7 @@ function XViewScene({
19416
19451
  return serializableLinkData;
19417
19452
  });
19418
19453
  const sceneFileData = {
19419
- parent_dbs: sceneDataRef.current.parent_dbs,
19454
+ ...sceneDataRef.current,
19420
19455
  nodes: currentNodes,
19421
19456
  links: currentLinks,
19422
19457
  quest_nodes: ((_b2 = parentDataRef.current[sceneConfigId]) == null ? void 0 : _b2.nodes) || sceneDataRef.current.quest_nodes || [],
@@ -19466,7 +19501,7 @@ function XViewScene({
19466
19501
  sceneDataRef.current.links = currentLinks;
19467
19502
  const isView = ((_a2 = viewParams == null ? void 0 : viewParams.type) == null ? void 0 : _a2.toLowerCase()) === "view";
19468
19503
  const sceneFileData = {
19469
- parent_dbs: sceneDataRef.current.parent_dbs,
19504
+ ...sceneDataRef.current,
19470
19505
  nodes: currentNodes,
19471
19506
  links: currentLinks,
19472
19507
  quest_nodes: isView ? ((_b2 = parentDataRef.current[sceneConfigId]) == null ? void 0 : _b2.nodes) || [] : sceneDataRef.current.quest_nodes || [],
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.70",
3
+ "version": "1.2.6-dev.73",
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",