@lv-x-software-house/x_view 1.2.6-dev.62 → 1.2.6-dev.64

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
@@ -9156,13 +9156,27 @@ function InSceneCreationForm({
9156
9156
  setIsLoadingDocs(true);
9157
9157
  const res = await create_google_doc_action(name);
9158
9158
  if (res.success) {
9159
- const newProp = {
9160
- id: (0, import_uuid5.v4)(),
9161
- key: "Google Docs",
9162
- type: "links",
9163
- value: [{ id: (0, import_uuid5.v4)(), name: "Abrir Documento", value: res.link }]
9164
- };
9165
- setCustomProps((prev) => [...prev, newProp]);
9159
+ const existingLinksPropIndex = customProps.findIndex(
9160
+ (p) => p.type === "links" && p.key === "Links"
9161
+ );
9162
+ if (existingLinksPropIndex !== -1) {
9163
+ const updatedProps = [...customProps];
9164
+ const existingProp = { ...updatedProps[existingLinksPropIndex] };
9165
+ existingProp.value = [
9166
+ ...existingProp.value || [],
9167
+ { id: (0, import_uuid5.v4)(), name: "Google docs", value: res.link }
9168
+ ];
9169
+ updatedProps[existingLinksPropIndex] = existingProp;
9170
+ setCustomProps(updatedProps);
9171
+ } else {
9172
+ const newProp = {
9173
+ id: (0, import_uuid5.v4)(),
9174
+ key: "Links",
9175
+ type: "links",
9176
+ value: [{ id: (0, import_uuid5.v4)(), name: "Google docs", value: res.link }]
9177
+ };
9178
+ setCustomProps((prev) => [...prev, newProp]);
9179
+ }
9166
9180
  if (res.link) {
9167
9181
  window.open(res.link, "_blank");
9168
9182
  }
@@ -9421,11 +9435,10 @@ function InSceneCreationForm({
9421
9435
  type: "button",
9422
9436
  onClick: handleCreateGoogleDoc,
9423
9437
  disabled: isLoadingDocs,
9424
- className: "flex items-center gap-1.5 px-2.5 py-1.5 text-xs rounded-md bg-transparent hover:bg-white/5 text-slate-300 border border-white/10 transition-all disabled:opacity-50 disabled:cursor-not-allowed group",
9425
- title: "Criar Documento no Google Docs"
9438
+ className: "flex items-center justify-center text-slate-300 transition-all disabled:opacity-50 disabled:cursor-not-allowed group",
9439
+ title: isLoadingDocs ? "Criando Documento..." : "Criar Documento no Google Docs"
9426
9440
  },
9427
- isLoadingDocs ? /* @__PURE__ */ import_react15.default.createElement(import_ai.AiOutlineLoading3Quarters, { className: "animate-spin", size: 14 }) : /* @__PURE__ */ import_react15.default.createElement(GoogleDocsIcon_default, { size: 14, className: "group-hover:scale-110 transition-transform" }),
9428
- isLoadingDocs ? "Criando..." : "Google Doc"
9441
+ isLoadingDocs ? /* @__PURE__ */ import_react15.default.createElement(import_ai.AiOutlineLoading3Quarters, { className: "animate-spin", size: 14 }) : /* @__PURE__ */ import_react15.default.createElement(GoogleDocsIcon_default, { size: 14, className: "group-hover:scale-110 transition-transform" })
9429
9442
  ), /* @__PURE__ */ import_react15.default.createElement(
9430
9443
  "button",
9431
9444
  {
@@ -10113,13 +10126,27 @@ function InSceneQuestForm({
10113
10126
  setIsLoadingDocs(true);
10114
10127
  const res = await create_google_doc_action(standardizedName);
10115
10128
  if (res.success) {
10116
- const newProp = {
10117
- id: (0, import_uuid7.v4)(),
10118
- key: "Google Docs",
10119
- type: "links",
10120
- value: [{ id: (0, import_uuid7.v4)(), name: "Abrir Documento", value: res.link }]
10121
- };
10122
- setCustomProps((prev) => [...prev, newProp]);
10129
+ const existingLinksPropIndex = customProps.findIndex(
10130
+ (p) => p.type === "links" && p.key === "Links"
10131
+ );
10132
+ if (existingLinksPropIndex !== -1) {
10133
+ const updatedProps = [...customProps];
10134
+ const existingProp = { ...updatedProps[existingLinksPropIndex] };
10135
+ existingProp.value = [
10136
+ ...existingProp.value || [],
10137
+ { id: (0, import_uuid7.v4)(), name: "Google docs", value: res.link }
10138
+ ];
10139
+ updatedProps[existingLinksPropIndex] = existingProp;
10140
+ setCustomProps(updatedProps);
10141
+ } else {
10142
+ const newProp = {
10143
+ id: (0, import_uuid7.v4)(),
10144
+ key: "Links",
10145
+ type: "links",
10146
+ value: [{ id: (0, import_uuid7.v4)(), name: "Google docs", value: res.link }]
10147
+ };
10148
+ setCustomProps((prev) => [...prev, newProp]);
10149
+ }
10123
10150
  if (res.link) {
10124
10151
  window.open(res.link, "_blank");
10125
10152
  }
@@ -10657,11 +10684,10 @@ function InSceneQuestForm({
10657
10684
  type: "button",
10658
10685
  onClick: handleCreateGoogleDoc,
10659
10686
  disabled: isLoadingDocs,
10660
- className: "flex items-center gap-1.5 px-2.5 py-1.5 text-xs rounded-md bg-transparent hover:bg-white/5 text-slate-300 border border-white/10 transition-all disabled:opacity-50 disabled:cursor-not-allowed group",
10661
- title: "Criar Documento no Google Docs"
10687
+ className: "flex items-center justify-center text-slate-300 transition-all disabled:opacity-50 disabled:cursor-not-allowed group",
10688
+ title: isLoadingDocs ? "Criando Documento..." : "Criar Documento no Google Docs"
10662
10689
  },
10663
- isLoadingDocs ? /* @__PURE__ */ import_react18.default.createElement(import_ai2.AiOutlineLoading3Quarters, { className: "animate-spin", size: 14 }) : /* @__PURE__ */ import_react18.default.createElement(GoogleDocsIcon_default, { size: 14, className: "group-hover:scale-110 transition-transform" }),
10664
- isLoadingDocs ? "Criando..." : "Google Doc"
10690
+ isLoadingDocs ? /* @__PURE__ */ import_react18.default.createElement(import_ai2.AiOutlineLoading3Quarters, { className: "animate-spin", size: 14 }) : /* @__PURE__ */ import_react18.default.createElement(GoogleDocsIcon_default, { size: 14, className: "group-hover:scale-110 transition-transform" })
10665
10691
  ), /* @__PURE__ */ import_react18.default.createElement(
10666
10692
  "button",
10667
10693
  {
@@ -10974,13 +11000,27 @@ function NodeDetailsPanel({
10974
11000
  setIsLoadingDocs(true);
10975
11001
  const res = await create_google_doc_action(name);
10976
11002
  if (res.success) {
10977
- const newProp = {
10978
- id: (0, import_uuid8.v4)(),
10979
- key: "Google Docs",
10980
- type: "links",
10981
- value: [{ id: (0, import_uuid8.v4)(), name: "Abrir Documento", value: res.link }]
10982
- };
10983
- const updatedProps = [...customProps, newProp];
11003
+ const existingLinksPropIndex = customProps.findIndex(
11004
+ (p) => p.type === "links" && p.key === "Links"
11005
+ );
11006
+ let updatedProps;
11007
+ if (existingLinksPropIndex !== -1) {
11008
+ updatedProps = [...customProps];
11009
+ const existingProp = { ...updatedProps[existingLinksPropIndex] };
11010
+ existingProp.value = [
11011
+ ...existingProp.value || [],
11012
+ { id: (0, import_uuid8.v4)(), name: "Google docs", value: res.link }
11013
+ ];
11014
+ updatedProps[existingLinksPropIndex] = existingProp;
11015
+ } else {
11016
+ const newProp = {
11017
+ id: (0, import_uuid8.v4)(),
11018
+ key: "Links",
11019
+ type: "links",
11020
+ value: [{ id: (0, import_uuid8.v4)(), name: "Google docs", value: res.link }]
11021
+ };
11022
+ updatedProps = [...customProps, newProp];
11023
+ }
10984
11024
  setCustomProps(updatedProps);
10985
11025
  setHasUnsavedChanges(true);
10986
11026
  triggerAutoSave({ customProps: updatedProps });
@@ -11279,11 +11319,10 @@ function NodeDetailsPanel({
11279
11319
  type: "button",
11280
11320
  onClick: handleCreateGoogleDoc,
11281
11321
  disabled: isLoadingDocs,
11282
- className: "flex items-center gap-1.5 px-2.5 py-1.5 text-xs rounded-md bg-transparent hover:bg-white/5 text-slate-300 border border-white/10 transition-all disabled:opacity-50 disabled:cursor-not-allowed group",
11283
- title: "Criar Documento no Google Docs"
11322
+ className: "flex items-center justify-center text-slate-300 transition-all disabled:opacity-50 disabled:cursor-not-allowed group",
11323
+ title: isLoadingDocs ? "Criando Documento..." : "Criar Documento no Google Docs"
11284
11324
  },
11285
- isLoadingDocs ? /* @__PURE__ */ import_react19.default.createElement(import_ai3.AiOutlineLoading3Quarters, { className: "animate-spin", size: 14 }) : /* @__PURE__ */ import_react19.default.createElement(GoogleDocsIcon_default, { size: 14, className: "group-hover:scale-110 transition-transform" }),
11286
- isLoadingDocs ? "Criando..." : "Google Doc"
11325
+ isLoadingDocs ? /* @__PURE__ */ import_react19.default.createElement(import_ai3.AiOutlineLoading3Quarters, { className: "animate-spin", size: 14 }) : /* @__PURE__ */ import_react19.default.createElement(GoogleDocsIcon_default, { size: 14, className: "group-hover:scale-110 transition-transform" })
11287
11326
  ), canEdit && /* @__PURE__ */ import_react19.default.createElement(
11288
11327
  "button",
11289
11328
  {
@@ -11892,13 +11931,27 @@ ${noteText}` : noteText : entry.notes,
11892
11931
  setIsLoadingDocs(true);
11893
11932
  const res = await create_google_doc_action(standardizedName);
11894
11933
  if (res.success) {
11895
- const newProp = {
11896
- id: (0, import_uuid9.v4)(),
11897
- key: "Google Docs",
11898
- type: "links",
11899
- value: [{ id: (0, import_uuid9.v4)(), name: "Abrir Documento", value: res.link }]
11900
- };
11901
- const updatedProps = [...customProps, newProp];
11934
+ const existingLinksPropIndex = customProps.findIndex(
11935
+ (p) => p.type === "links" && p.key === "Links"
11936
+ );
11937
+ let updatedProps;
11938
+ if (existingLinksPropIndex !== -1) {
11939
+ updatedProps = [...customProps];
11940
+ const existingProp = { ...updatedProps[existingLinksPropIndex] };
11941
+ existingProp.value = [
11942
+ ...existingProp.value || [],
11943
+ { id: (0, import_uuid9.v4)(), name: "Google docs", value: res.link }
11944
+ ];
11945
+ updatedProps[existingLinksPropIndex] = existingProp;
11946
+ } else {
11947
+ const newProp = {
11948
+ id: (0, import_uuid9.v4)(),
11949
+ key: "Links",
11950
+ type: "links",
11951
+ value: [{ id: (0, import_uuid9.v4)(), name: "Google docs", value: res.link }]
11952
+ };
11953
+ updatedProps = [...customProps, newProp];
11954
+ }
11902
11955
  setCustomProps(updatedProps);
11903
11956
  setHasUnsavedChanges(true);
11904
11957
  triggerAutoSave({ customProps: updatedProps });
@@ -12526,11 +12579,10 @@ ${noteText}` : noteText : entry.notes,
12526
12579
  type: "button",
12527
12580
  onClick: handleCreateGoogleDoc,
12528
12581
  disabled: isLoadingDocs,
12529
- className: "flex items-center gap-1.5 px-2.5 py-1.5 text-xs rounded-md bg-transparent hover:bg-white/5 text-slate-300 border border-white/10 transition-all disabled:opacity-50 disabled:cursor-not-allowed group",
12530
- title: "Criar Documento no Google Docs"
12582
+ className: "flex items-center justify-center text-slate-300 transition-all disabled:opacity-50 disabled:cursor-not-allowed group",
12583
+ title: isLoadingDocs ? "Criando Documento..." : "Criar Documento no Google Docs"
12531
12584
  },
12532
- isLoadingDocs ? /* @__PURE__ */ import_react21.default.createElement(import_ai4.AiOutlineLoading3Quarters, { className: "animate-spin", size: 14 }) : /* @__PURE__ */ import_react21.default.createElement(GoogleDocsIcon_default, { size: 14, className: "group-hover:scale-110 transition-transform" }),
12533
- isLoadingDocs ? "Criando..." : "Google Doc"
12585
+ isLoadingDocs ? /* @__PURE__ */ import_react21.default.createElement(import_ai4.AiOutlineLoading3Quarters, { className: "animate-spin", size: 14 }) : /* @__PURE__ */ import_react21.default.createElement(GoogleDocsIcon_default, { size: 14, className: "group-hover:scale-110 transition-transform" })
12534
12586
  ), canEdit && /* @__PURE__ */ import_react21.default.createElement("button", { type: "button", onClick: handleAddProp, className: "flex items-center gap-1.5 px-2.5 py-1.5 text-xs rounded-md bg-slate-800/70 hover:bg-slate-700/70 border border-white/10 transition-colors" }, /* @__PURE__ */ import_react21.default.createElement(import_fi19.FiPlus, { size: 14 }), " Adicionar"))), /* @__PURE__ */ import_react21.default.createElement("div", { className: "flex flex-col gap-3" }, customProps.map((prop, idx) => /* @__PURE__ */ import_react21.default.createElement(CustomPropertyDisplay, { key: prop.id, prop, onUpdate: canEdit ? (updatedProp) => handleUpdateProp(idx, updatedProp) : void 0, onRemove: canEdit ? () => handleRemoveProp(idx) : void 0, onOpenImageViewer, unavailableTypes: currentUsedTypes.filter((t) => t !== prop.type), isTextureMode: false, onUploadFile: canEdit ? onUploadFile : void 0, readOnly: !canEdit })), /* @__PURE__ */ import_react21.default.createElement("div", { ref: propsEndRef }))), /* @__PURE__ */ import_react21.default.createElement("div", { className: "pt-6 border-t border-white/10 mt-6" }, /* @__PURE__ */ import_react21.default.createElement("div", { className: "flex items-center justify-between mb-4" }, /* @__PURE__ */ import_react21.default.createElement("h3", { className: "text-[11px] uppercase font-bold text-slate-500 tracking-wider" }, "Hist\xF3rico & Notas"), /* @__PURE__ */ import_react21.default.createElement(
12535
12587
  "button",
12536
12588
  {
package/dist/index.mjs CHANGED
@@ -9156,13 +9156,27 @@ function InSceneCreationForm({
9156
9156
  setIsLoadingDocs(true);
9157
9157
  const res = await create_google_doc_action(name);
9158
9158
  if (res.success) {
9159
- const newProp = {
9160
- id: uuidv45(),
9161
- key: "Google Docs",
9162
- type: "links",
9163
- value: [{ id: uuidv45(), name: "Abrir Documento", value: res.link }]
9164
- };
9165
- setCustomProps((prev) => [...prev, newProp]);
9159
+ const existingLinksPropIndex = customProps.findIndex(
9160
+ (p) => p.type === "links" && p.key === "Links"
9161
+ );
9162
+ if (existingLinksPropIndex !== -1) {
9163
+ const updatedProps = [...customProps];
9164
+ const existingProp = { ...updatedProps[existingLinksPropIndex] };
9165
+ existingProp.value = [
9166
+ ...existingProp.value || [],
9167
+ { id: uuidv45(), name: "Google docs", value: res.link }
9168
+ ];
9169
+ updatedProps[existingLinksPropIndex] = existingProp;
9170
+ setCustomProps(updatedProps);
9171
+ } else {
9172
+ const newProp = {
9173
+ id: uuidv45(),
9174
+ key: "Links",
9175
+ type: "links",
9176
+ value: [{ id: uuidv45(), name: "Google docs", value: res.link }]
9177
+ };
9178
+ setCustomProps((prev) => [...prev, newProp]);
9179
+ }
9166
9180
  if (res.link) {
9167
9181
  window.open(res.link, "_blank");
9168
9182
  }
@@ -9421,11 +9435,10 @@ function InSceneCreationForm({
9421
9435
  type: "button",
9422
9436
  onClick: handleCreateGoogleDoc,
9423
9437
  disabled: isLoadingDocs,
9424
- className: "flex items-center gap-1.5 px-2.5 py-1.5 text-xs rounded-md bg-transparent hover:bg-white/5 text-slate-300 border border-white/10 transition-all disabled:opacity-50 disabled:cursor-not-allowed group",
9425
- title: "Criar Documento no Google Docs"
9438
+ className: "flex items-center justify-center text-slate-300 transition-all disabled:opacity-50 disabled:cursor-not-allowed group",
9439
+ title: isLoadingDocs ? "Criando Documento..." : "Criar Documento no Google Docs"
9426
9440
  },
9427
- isLoadingDocs ? /* @__PURE__ */ React14.createElement(AiOutlineLoading3Quarters, { className: "animate-spin", size: 14 }) : /* @__PURE__ */ React14.createElement(GoogleDocsIcon_default, { size: 14, className: "group-hover:scale-110 transition-transform" }),
9428
- isLoadingDocs ? "Criando..." : "Google Doc"
9441
+ isLoadingDocs ? /* @__PURE__ */ React14.createElement(AiOutlineLoading3Quarters, { className: "animate-spin", size: 14 }) : /* @__PURE__ */ React14.createElement(GoogleDocsIcon_default, { size: 14, className: "group-hover:scale-110 transition-transform" })
9429
9442
  ), /* @__PURE__ */ React14.createElement(
9430
9443
  "button",
9431
9444
  {
@@ -10133,13 +10146,27 @@ function InSceneQuestForm({
10133
10146
  setIsLoadingDocs(true);
10134
10147
  const res = await create_google_doc_action(standardizedName);
10135
10148
  if (res.success) {
10136
- const newProp = {
10137
- id: uuidv47(),
10138
- key: "Google Docs",
10139
- type: "links",
10140
- value: [{ id: uuidv47(), name: "Abrir Documento", value: res.link }]
10141
- };
10142
- setCustomProps((prev) => [...prev, newProp]);
10149
+ const existingLinksPropIndex = customProps.findIndex(
10150
+ (p) => p.type === "links" && p.key === "Links"
10151
+ );
10152
+ if (existingLinksPropIndex !== -1) {
10153
+ const updatedProps = [...customProps];
10154
+ const existingProp = { ...updatedProps[existingLinksPropIndex] };
10155
+ existingProp.value = [
10156
+ ...existingProp.value || [],
10157
+ { id: uuidv47(), name: "Google docs", value: res.link }
10158
+ ];
10159
+ updatedProps[existingLinksPropIndex] = existingProp;
10160
+ setCustomProps(updatedProps);
10161
+ } else {
10162
+ const newProp = {
10163
+ id: uuidv47(),
10164
+ key: "Links",
10165
+ type: "links",
10166
+ value: [{ id: uuidv47(), name: "Google docs", value: res.link }]
10167
+ };
10168
+ setCustomProps((prev) => [...prev, newProp]);
10169
+ }
10143
10170
  if (res.link) {
10144
10171
  window.open(res.link, "_blank");
10145
10172
  }
@@ -10677,11 +10704,10 @@ function InSceneQuestForm({
10677
10704
  type: "button",
10678
10705
  onClick: handleCreateGoogleDoc,
10679
10706
  disabled: isLoadingDocs,
10680
- className: "flex items-center gap-1.5 px-2.5 py-1.5 text-xs rounded-md bg-transparent hover:bg-white/5 text-slate-300 border border-white/10 transition-all disabled:opacity-50 disabled:cursor-not-allowed group",
10681
- title: "Criar Documento no Google Docs"
10707
+ className: "flex items-center justify-center text-slate-300 transition-all disabled:opacity-50 disabled:cursor-not-allowed group",
10708
+ title: isLoadingDocs ? "Criando Documento..." : "Criar Documento no Google Docs"
10682
10709
  },
10683
- isLoadingDocs ? /* @__PURE__ */ React17.createElement(AiOutlineLoading3Quarters2, { className: "animate-spin", size: 14 }) : /* @__PURE__ */ React17.createElement(GoogleDocsIcon_default, { size: 14, className: "group-hover:scale-110 transition-transform" }),
10684
- isLoadingDocs ? "Criando..." : "Google Doc"
10710
+ isLoadingDocs ? /* @__PURE__ */ React17.createElement(AiOutlineLoading3Quarters2, { className: "animate-spin", size: 14 }) : /* @__PURE__ */ React17.createElement(GoogleDocsIcon_default, { size: 14, className: "group-hover:scale-110 transition-transform" })
10685
10711
  ), /* @__PURE__ */ React17.createElement(
10686
10712
  "button",
10687
10713
  {
@@ -10994,13 +11020,27 @@ function NodeDetailsPanel({
10994
11020
  setIsLoadingDocs(true);
10995
11021
  const res = await create_google_doc_action(name);
10996
11022
  if (res.success) {
10997
- const newProp = {
10998
- id: uuidv48(),
10999
- key: "Google Docs",
11000
- type: "links",
11001
- value: [{ id: uuidv48(), name: "Abrir Documento", value: res.link }]
11002
- };
11003
- const updatedProps = [...customProps, newProp];
11023
+ const existingLinksPropIndex = customProps.findIndex(
11024
+ (p) => p.type === "links" && p.key === "Links"
11025
+ );
11026
+ let updatedProps;
11027
+ if (existingLinksPropIndex !== -1) {
11028
+ updatedProps = [...customProps];
11029
+ const existingProp = { ...updatedProps[existingLinksPropIndex] };
11030
+ existingProp.value = [
11031
+ ...existingProp.value || [],
11032
+ { id: uuidv48(), name: "Google docs", value: res.link }
11033
+ ];
11034
+ updatedProps[existingLinksPropIndex] = existingProp;
11035
+ } else {
11036
+ const newProp = {
11037
+ id: uuidv48(),
11038
+ key: "Links",
11039
+ type: "links",
11040
+ value: [{ id: uuidv48(), name: "Google docs", value: res.link }]
11041
+ };
11042
+ updatedProps = [...customProps, newProp];
11043
+ }
11004
11044
  setCustomProps(updatedProps);
11005
11045
  setHasUnsavedChanges(true);
11006
11046
  triggerAutoSave({ customProps: updatedProps });
@@ -11299,11 +11339,10 @@ function NodeDetailsPanel({
11299
11339
  type: "button",
11300
11340
  onClick: handleCreateGoogleDoc,
11301
11341
  disabled: isLoadingDocs,
11302
- className: "flex items-center gap-1.5 px-2.5 py-1.5 text-xs rounded-md bg-transparent hover:bg-white/5 text-slate-300 border border-white/10 transition-all disabled:opacity-50 disabled:cursor-not-allowed group",
11303
- title: "Criar Documento no Google Docs"
11342
+ className: "flex items-center justify-center text-slate-300 transition-all disabled:opacity-50 disabled:cursor-not-allowed group",
11343
+ title: isLoadingDocs ? "Criando Documento..." : "Criar Documento no Google Docs"
11304
11344
  },
11305
- isLoadingDocs ? /* @__PURE__ */ React18.createElement(AiOutlineLoading3Quarters3, { className: "animate-spin", size: 14 }) : /* @__PURE__ */ React18.createElement(GoogleDocsIcon_default, { size: 14, className: "group-hover:scale-110 transition-transform" }),
11306
- isLoadingDocs ? "Criando..." : "Google Doc"
11345
+ isLoadingDocs ? /* @__PURE__ */ React18.createElement(AiOutlineLoading3Quarters3, { className: "animate-spin", size: 14 }) : /* @__PURE__ */ React18.createElement(GoogleDocsIcon_default, { size: 14, className: "group-hover:scale-110 transition-transform" })
11307
11346
  ), canEdit && /* @__PURE__ */ React18.createElement(
11308
11347
  "button",
11309
11348
  {
@@ -11924,13 +11963,27 @@ ${noteText}` : noteText : entry.notes,
11924
11963
  setIsLoadingDocs(true);
11925
11964
  const res = await create_google_doc_action(standardizedName);
11926
11965
  if (res.success) {
11927
- const newProp = {
11928
- id: uuidv49(),
11929
- key: "Google Docs",
11930
- type: "links",
11931
- value: [{ id: uuidv49(), name: "Abrir Documento", value: res.link }]
11932
- };
11933
- const updatedProps = [...customProps, newProp];
11966
+ const existingLinksPropIndex = customProps.findIndex(
11967
+ (p) => p.type === "links" && p.key === "Links"
11968
+ );
11969
+ let updatedProps;
11970
+ if (existingLinksPropIndex !== -1) {
11971
+ updatedProps = [...customProps];
11972
+ const existingProp = { ...updatedProps[existingLinksPropIndex] };
11973
+ existingProp.value = [
11974
+ ...existingProp.value || [],
11975
+ { id: uuidv49(), name: "Google docs", value: res.link }
11976
+ ];
11977
+ updatedProps[existingLinksPropIndex] = existingProp;
11978
+ } else {
11979
+ const newProp = {
11980
+ id: uuidv49(),
11981
+ key: "Links",
11982
+ type: "links",
11983
+ value: [{ id: uuidv49(), name: "Google docs", value: res.link }]
11984
+ };
11985
+ updatedProps = [...customProps, newProp];
11986
+ }
11934
11987
  setCustomProps(updatedProps);
11935
11988
  setHasUnsavedChanges(true);
11936
11989
  triggerAutoSave({ customProps: updatedProps });
@@ -12558,11 +12611,10 @@ ${noteText}` : noteText : entry.notes,
12558
12611
  type: "button",
12559
12612
  onClick: handleCreateGoogleDoc,
12560
12613
  disabled: isLoadingDocs,
12561
- className: "flex items-center gap-1.5 px-2.5 py-1.5 text-xs rounded-md bg-transparent hover:bg-white/5 text-slate-300 border border-white/10 transition-all disabled:opacity-50 disabled:cursor-not-allowed group",
12562
- title: "Criar Documento no Google Docs"
12614
+ className: "flex items-center justify-center text-slate-300 transition-all disabled:opacity-50 disabled:cursor-not-allowed group",
12615
+ title: isLoadingDocs ? "Criando Documento..." : "Criar Documento no Google Docs"
12563
12616
  },
12564
- isLoadingDocs ? /* @__PURE__ */ React20.createElement(AiOutlineLoading3Quarters4, { className: "animate-spin", size: 14 }) : /* @__PURE__ */ React20.createElement(GoogleDocsIcon_default, { size: 14, className: "group-hover:scale-110 transition-transform" }),
12565
- isLoadingDocs ? "Criando..." : "Google Doc"
12617
+ isLoadingDocs ? /* @__PURE__ */ React20.createElement(AiOutlineLoading3Quarters4, { className: "animate-spin", size: 14 }) : /* @__PURE__ */ React20.createElement(GoogleDocsIcon_default, { size: 14, className: "group-hover:scale-110 transition-transform" })
12566
12618
  ), canEdit && /* @__PURE__ */ React20.createElement("button", { type: "button", onClick: handleAddProp, className: "flex items-center gap-1.5 px-2.5 py-1.5 text-xs rounded-md bg-slate-800/70 hover:bg-slate-700/70 border border-white/10 transition-colors" }, /* @__PURE__ */ React20.createElement(FiPlus8, { size: 14 }), " Adicionar"))), /* @__PURE__ */ React20.createElement("div", { className: "flex flex-col gap-3" }, customProps.map((prop, idx) => /* @__PURE__ */ React20.createElement(CustomPropertyDisplay, { key: prop.id, prop, onUpdate: canEdit ? (updatedProp) => handleUpdateProp(idx, updatedProp) : void 0, onRemove: canEdit ? () => handleRemoveProp(idx) : void 0, onOpenImageViewer, unavailableTypes: currentUsedTypes.filter((t) => t !== prop.type), isTextureMode: false, onUploadFile: canEdit ? onUploadFile : void 0, readOnly: !canEdit })), /* @__PURE__ */ React20.createElement("div", { ref: propsEndRef }))), /* @__PURE__ */ React20.createElement("div", { className: "pt-6 border-t border-white/10 mt-6" }, /* @__PURE__ */ React20.createElement("div", { className: "flex items-center justify-between mb-4" }, /* @__PURE__ */ React20.createElement("h3", { className: "text-[11px] uppercase font-bold text-slate-500 tracking-wider" }, "Hist\xF3rico & Notas"), /* @__PURE__ */ React20.createElement(
12567
12619
  "button",
12568
12620
  {
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.62",
3
+ "version": "1.2.6-dev.64",
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",