@lv-x-software-house/x_view 1.2.6-dev.28 → 1.2.6-dev.29
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 +17 -7
- package/dist/index.mjs +17 -7
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -13525,7 +13525,9 @@ function Boards({
|
|
|
13525
13525
|
}));
|
|
13526
13526
|
(0, import_react29.useEffect)(() => {
|
|
13527
13527
|
if (initialBoardItems && !isLoaded) {
|
|
13528
|
-
const hasLegacyTypes = (list) => list.some(
|
|
13528
|
+
const hasLegacyTypes = (list) => list.some(
|
|
13529
|
+
(g) => g.type === "group" || hasLegacyTypes(g.children || [])
|
|
13530
|
+
);
|
|
13529
13531
|
let preparedItems = [];
|
|
13530
13532
|
if (hasLegacyTypes(initialBoardItems)) {
|
|
13531
13533
|
console.warn("Legacy Boards detected. Resetting board to empty list.");
|
|
@@ -13541,7 +13543,9 @@ function Boards({
|
|
|
13541
13543
|
preparedItems = prepare(initialBoardItems);
|
|
13542
13544
|
}
|
|
13543
13545
|
setBoardItems(preparedItems);
|
|
13544
|
-
lastSavedBoardItemsRef.current = JSON.stringify(
|
|
13546
|
+
lastSavedBoardItemsRef.current = JSON.stringify(
|
|
13547
|
+
sanitizeBoardItems(preparedItems)
|
|
13548
|
+
);
|
|
13545
13549
|
setIsLoaded(true);
|
|
13546
13550
|
}
|
|
13547
13551
|
}, [initialBoardItems, isLoaded]);
|
|
@@ -13779,17 +13783,23 @@ function Boards({
|
|
|
13779
13783
|
/* @__PURE__ */ import_react29.default.createElement(
|
|
13780
13784
|
"div",
|
|
13781
13785
|
{
|
|
13782
|
-
className: "bg-slate-950 border border-white/10 rounded-xl w-[
|
|
13786
|
+
className: "bg-slate-950 border border-white/10 rounded-xl w-full max-w-[calc(100vw-32px)] h-[97vh] flex flex-col shadow-2xl overflow-hidden animate-in fade-in zoom-in-95 duration-200",
|
|
13783
13787
|
onClick: (e) => e.stopPropagation()
|
|
13784
13788
|
},
|
|
13785
|
-
/* @__PURE__ */ import_react29.default.createElement("div", { className: "h-14 px-4 border-b border-white/10 bg-slate-900/90 flex items-center justify-between shrink-0" }, /* @__PURE__ */ import_react29.default.createElement("div", { className: "flex items-center gap-4" }, /* @__PURE__ */ import_react29.default.createElement("h3", { className: "text-base font-semibold text-white flex items-center gap-2 whitespace-nowrap" }, /* @__PURE__ */ import_react29.default.createElement(import_fi23.FiLayers, { className: "text-indigo-400" }), "Boards"), saveStatus !== "idle" && /* @__PURE__ */ import_react29.default.createElement("div", { className: "flex items-center gap-2 animate-in fade-in slide-in-from-left-2 duration-300" }, /* @__PURE__ */ import_react29.default.createElement("div", { className: "w-px h-4 bg-white/10 mx-1" }), /* @__PURE__ */ import_react29.default.createElement("div", { className: "flex items-center gap-1.5 px-2 py-0.5 rounded-full bg-slate-900/50 border border-white/5" }, saveStatus === "saving" && /* @__PURE__ */ import_react29.default.createElement(import_react29.default.Fragment, null, /* @__PURE__ */ import_react29.default.createElement(
|
|
13789
|
+
/* @__PURE__ */ import_react29.default.createElement("div", { className: "h-14 px-4 border-b border-white/10 bg-slate-900/90 flex items-center justify-between shrink-0" }, /* @__PURE__ */ import_react29.default.createElement("div", { className: "flex items-center gap-4" }, /* @__PURE__ */ import_react29.default.createElement("h3", { className: "text-base font-semibold text-white flex items-center gap-2 whitespace-nowrap" }, /* @__PURE__ */ import_react29.default.createElement(import_fi23.FiLayers, { className: "text-indigo-400" }), "Boards"), saveStatus !== "idle" && /* @__PURE__ */ import_react29.default.createElement("div", { className: "flex items-center gap-2 animate-in fade-in slide-in-from-left-2 duration-300" }, /* @__PURE__ */ import_react29.default.createElement("div", { className: "w-px h-4 bg-white/10 mx-1" }), /* @__PURE__ */ import_react29.default.createElement("div", { className: "flex items-center gap-1.5 px-2 py-0.5 rounded-full bg-slate-900/50 border border-white/5" }, saveStatus === "saving" && /* @__PURE__ */ import_react29.default.createElement(import_react29.default.Fragment, null, /* @__PURE__ */ import_react29.default.createElement(
|
|
13790
|
+
import_fi23.FiLoader,
|
|
13791
|
+
{
|
|
13792
|
+
className: "animate-spin text-indigo-400",
|
|
13793
|
+
size: 12
|
|
13794
|
+
}
|
|
13795
|
+
), /* @__PURE__ */ import_react29.default.createElement("span", { className: "text-[10px] uppercase tracking-wide font-medium text-indigo-300" }, "Salvando")), saveStatus === "saved" && /* @__PURE__ */ import_react29.default.createElement(import_react29.default.Fragment, null, /* @__PURE__ */ import_react29.default.createElement(import_fi23.FiCheckCircle, { className: "text-emerald-400", size: 12 }), /* @__PURE__ */ import_react29.default.createElement("span", { className: "text-[10px] uppercase tracking-wide font-medium text-slate-400" }, "Salvo")), saveStatus === "error" && /* @__PURE__ */ import_react29.default.createElement(import_react29.default.Fragment, null, /* @__PURE__ */ import_react29.default.createElement("span", { className: "w-2 h-2 rounded-full bg-red-500" }), /* @__PURE__ */ import_react29.default.createElement("span", { className: "text-[10px] uppercase tracking-wide font-medium text-red-400" }, "Erro"))))), /* @__PURE__ */ import_react29.default.createElement("div", { className: "flex items-center gap-3" }, canEdit && /* @__PURE__ */ import_react29.default.createElement(import_react29.default.Fragment, null, /* @__PURE__ */ import_react29.default.createElement(
|
|
13786
13796
|
"button",
|
|
13787
13797
|
{
|
|
13788
13798
|
onClick: () => handleAddItem("folder"),
|
|
13789
13799
|
className: "flex items-center gap-2 px-3 py-1.5 bg-white/5 hover:bg-white/10 border border-white/10 hover:border-white/20 backdrop-blur-sm text-slate-200 hover:text-white rounded-md transition-all duration-200 text-xs font-medium shadow-sm"
|
|
13790
13800
|
},
|
|
13791
13801
|
/* @__PURE__ */ import_react29.default.createElement(import_fi23.FiPlus, { size: 14, className: "text-amber-400" }),
|
|
13792
|
-
/* @__PURE__ */ import_react29.default.createElement("span", { className: "hidden sm:inline" }, "
|
|
13802
|
+
/* @__PURE__ */ import_react29.default.createElement("span", { className: "hidden sm:inline" }, "Pasta")
|
|
13793
13803
|
), /* @__PURE__ */ import_react29.default.createElement(
|
|
13794
13804
|
"button",
|
|
13795
13805
|
{
|
|
@@ -13797,7 +13807,7 @@ function Boards({
|
|
|
13797
13807
|
className: "flex items-center gap-2 px-3 py-1.5 bg-white/5 hover:bg-white/10 border border-white/10 hover:border-white/20 backdrop-blur-sm text-slate-200 hover:text-white rounded-md transition-all duration-200 text-xs font-medium shadow-sm"
|
|
13798
13808
|
},
|
|
13799
13809
|
/* @__PURE__ */ import_react29.default.createElement(import_fi23.FiPlus, { size: 14, className: "text-indigo-400" }),
|
|
13800
|
-
/* @__PURE__ */ import_react29.default.createElement("span", { className: "hidden sm:inline" }, "
|
|
13810
|
+
/* @__PURE__ */ import_react29.default.createElement("span", { className: "hidden sm:inline" }, "Texto")
|
|
13801
13811
|
)), /* @__PURE__ */ import_react29.default.createElement(
|
|
13802
13812
|
"button",
|
|
13803
13813
|
{
|
|
@@ -13829,7 +13839,7 @@ function Boards({
|
|
|
13829
13839
|
/* @__PURE__ */ import_react29.default.createElement(import_fi23.FiArrowLeft, { size: 10 }),
|
|
13830
13840
|
/* @__PURE__ */ import_react29.default.createElement("span", null, "Voltar")
|
|
13831
13841
|
))),
|
|
13832
|
-
/* @__PURE__ */ import_react29.default.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar bg-slate-950/30 p-6 space-y-4" }, currentBoardItems.length === 0 ? /* @__PURE__ */ import_react29.default.createElement("div", { className: "flex flex-col items-center justify-center h-full text-slate-500 gap-3 border-2 border-dashed border-white/5 rounded-xl bg-slate-900/20" }, /* @__PURE__ */ import_react29.default.createElement(import_fi23.FiLayers, { size: 24, className: "opacity-20" }), /* @__PURE__ */ import_react29.default.createElement("p", { className: "text-xs text-center px-4" }, canEdit ? /* @__PURE__ */ import_react29.default.createElement(import_react29.default.Fragment, null, "Esta pasta est\xE1 vazia.", /* @__PURE__ */ import_react29.default.createElement("br", null), "Use os bot\xF5es acima para criar conte\xFAdo.") : /* @__PURE__ */ import_react29.default.createElement(import_react29.default.Fragment, null, "Nenhum conte\xFAdo dispon\xEDvel nesta pasta."))) : currentBoardItems.map((item, index) => /* @__PURE__ */ import_react29.default.createElement(
|
|
13842
|
+
/* @__PURE__ */ import_react29.default.createElement("div", { className: "flex-1 overflow-y-auto overflow-x-hidden custom-scrollbar bg-slate-950/30 p-6 space-y-4" }, currentBoardItems.length === 0 ? /* @__PURE__ */ import_react29.default.createElement("div", { className: "flex flex-col items-center justify-center h-full text-slate-500 gap-3 border-2 border-dashed border-white/5 rounded-xl bg-slate-900/20" }, /* @__PURE__ */ import_react29.default.createElement(import_fi23.FiLayers, { size: 24, className: "opacity-20" }), /* @__PURE__ */ import_react29.default.createElement("p", { className: "text-xs text-center px-4" }, canEdit ? /* @__PURE__ */ import_react29.default.createElement(import_react29.default.Fragment, null, "Esta pasta est\xE1 vazia.", /* @__PURE__ */ import_react29.default.createElement("br", null), "Use os bot\xF5es acima para criar conte\xFAdo.") : /* @__PURE__ */ import_react29.default.createElement(import_react29.default.Fragment, null, "Nenhum conte\xFAdo dispon\xEDvel nesta pasta."))) : currentBoardItems.map((item, index) => /* @__PURE__ */ import_react29.default.createElement(
|
|
13833
13843
|
BoardItem,
|
|
13834
13844
|
{
|
|
13835
13845
|
key: item.id,
|
package/dist/index.mjs
CHANGED
|
@@ -13575,7 +13575,9 @@ function Boards({
|
|
|
13575
13575
|
}));
|
|
13576
13576
|
useEffect23(() => {
|
|
13577
13577
|
if (initialBoardItems && !isLoaded) {
|
|
13578
|
-
const hasLegacyTypes = (list) => list.some(
|
|
13578
|
+
const hasLegacyTypes = (list) => list.some(
|
|
13579
|
+
(g) => g.type === "group" || hasLegacyTypes(g.children || [])
|
|
13580
|
+
);
|
|
13579
13581
|
let preparedItems = [];
|
|
13580
13582
|
if (hasLegacyTypes(initialBoardItems)) {
|
|
13581
13583
|
console.warn("Legacy Boards detected. Resetting board to empty list.");
|
|
@@ -13591,7 +13593,9 @@ function Boards({
|
|
|
13591
13593
|
preparedItems = prepare(initialBoardItems);
|
|
13592
13594
|
}
|
|
13593
13595
|
setBoardItems(preparedItems);
|
|
13594
|
-
lastSavedBoardItemsRef.current = JSON.stringify(
|
|
13596
|
+
lastSavedBoardItemsRef.current = JSON.stringify(
|
|
13597
|
+
sanitizeBoardItems(preparedItems)
|
|
13598
|
+
);
|
|
13595
13599
|
setIsLoaded(true);
|
|
13596
13600
|
}
|
|
13597
13601
|
}, [initialBoardItems, isLoaded]);
|
|
@@ -13829,17 +13833,23 @@ function Boards({
|
|
|
13829
13833
|
/* @__PURE__ */ React28.createElement(
|
|
13830
13834
|
"div",
|
|
13831
13835
|
{
|
|
13832
|
-
className: "bg-slate-950 border border-white/10 rounded-xl w-[
|
|
13836
|
+
className: "bg-slate-950 border border-white/10 rounded-xl w-full max-w-[calc(100vw-32px)] h-[97vh] flex flex-col shadow-2xl overflow-hidden animate-in fade-in zoom-in-95 duration-200",
|
|
13833
13837
|
onClick: (e) => e.stopPropagation()
|
|
13834
13838
|
},
|
|
13835
|
-
/* @__PURE__ */ React28.createElement("div", { className: "h-14 px-4 border-b border-white/10 bg-slate-900/90 flex items-center justify-between shrink-0" }, /* @__PURE__ */ React28.createElement("div", { className: "flex items-center gap-4" }, /* @__PURE__ */ React28.createElement("h3", { className: "text-base font-semibold text-white flex items-center gap-2 whitespace-nowrap" }, /* @__PURE__ */ React28.createElement(FiLayers7, { className: "text-indigo-400" }), "Boards"), saveStatus !== "idle" && /* @__PURE__ */ React28.createElement("div", { className: "flex items-center gap-2 animate-in fade-in slide-in-from-left-2 duration-300" }, /* @__PURE__ */ React28.createElement("div", { className: "w-px h-4 bg-white/10 mx-1" }), /* @__PURE__ */ React28.createElement("div", { className: "flex items-center gap-1.5 px-2 py-0.5 rounded-full bg-slate-900/50 border border-white/5" }, saveStatus === "saving" && /* @__PURE__ */ React28.createElement(React28.Fragment, null, /* @__PURE__ */ React28.createElement(
|
|
13839
|
+
/* @__PURE__ */ React28.createElement("div", { className: "h-14 px-4 border-b border-white/10 bg-slate-900/90 flex items-center justify-between shrink-0" }, /* @__PURE__ */ React28.createElement("div", { className: "flex items-center gap-4" }, /* @__PURE__ */ React28.createElement("h3", { className: "text-base font-semibold text-white flex items-center gap-2 whitespace-nowrap" }, /* @__PURE__ */ React28.createElement(FiLayers7, { className: "text-indigo-400" }), "Boards"), saveStatus !== "idle" && /* @__PURE__ */ React28.createElement("div", { className: "flex items-center gap-2 animate-in fade-in slide-in-from-left-2 duration-300" }, /* @__PURE__ */ React28.createElement("div", { className: "w-px h-4 bg-white/10 mx-1" }), /* @__PURE__ */ React28.createElement("div", { className: "flex items-center gap-1.5 px-2 py-0.5 rounded-full bg-slate-900/50 border border-white/5" }, saveStatus === "saving" && /* @__PURE__ */ React28.createElement(React28.Fragment, null, /* @__PURE__ */ React28.createElement(
|
|
13840
|
+
FiLoader5,
|
|
13841
|
+
{
|
|
13842
|
+
className: "animate-spin text-indigo-400",
|
|
13843
|
+
size: 12
|
|
13844
|
+
}
|
|
13845
|
+
), /* @__PURE__ */ React28.createElement("span", { className: "text-[10px] uppercase tracking-wide font-medium text-indigo-300" }, "Salvando")), saveStatus === "saved" && /* @__PURE__ */ React28.createElement(React28.Fragment, null, /* @__PURE__ */ React28.createElement(FiCheckCircle, { className: "text-emerald-400", size: 12 }), /* @__PURE__ */ React28.createElement("span", { className: "text-[10px] uppercase tracking-wide font-medium text-slate-400" }, "Salvo")), saveStatus === "error" && /* @__PURE__ */ React28.createElement(React28.Fragment, null, /* @__PURE__ */ React28.createElement("span", { className: "w-2 h-2 rounded-full bg-red-500" }), /* @__PURE__ */ React28.createElement("span", { className: "text-[10px] uppercase tracking-wide font-medium text-red-400" }, "Erro"))))), /* @__PURE__ */ React28.createElement("div", { className: "flex items-center gap-3" }, canEdit && /* @__PURE__ */ React28.createElement(React28.Fragment, null, /* @__PURE__ */ React28.createElement(
|
|
13836
13846
|
"button",
|
|
13837
13847
|
{
|
|
13838
13848
|
onClick: () => handleAddItem("folder"),
|
|
13839
13849
|
className: "flex items-center gap-2 px-3 py-1.5 bg-white/5 hover:bg-white/10 border border-white/10 hover:border-white/20 backdrop-blur-sm text-slate-200 hover:text-white rounded-md transition-all duration-200 text-xs font-medium shadow-sm"
|
|
13840
13850
|
},
|
|
13841
13851
|
/* @__PURE__ */ React28.createElement(FiPlus10, { size: 14, className: "text-amber-400" }),
|
|
13842
|
-
/* @__PURE__ */ React28.createElement("span", { className: "hidden sm:inline" }, "
|
|
13852
|
+
/* @__PURE__ */ React28.createElement("span", { className: "hidden sm:inline" }, "Pasta")
|
|
13843
13853
|
), /* @__PURE__ */ React28.createElement(
|
|
13844
13854
|
"button",
|
|
13845
13855
|
{
|
|
@@ -13847,7 +13857,7 @@ function Boards({
|
|
|
13847
13857
|
className: "flex items-center gap-2 px-3 py-1.5 bg-white/5 hover:bg-white/10 border border-white/10 hover:border-white/20 backdrop-blur-sm text-slate-200 hover:text-white rounded-md transition-all duration-200 text-xs font-medium shadow-sm"
|
|
13848
13858
|
},
|
|
13849
13859
|
/* @__PURE__ */ React28.createElement(FiPlus10, { size: 14, className: "text-indigo-400" }),
|
|
13850
|
-
/* @__PURE__ */ React28.createElement("span", { className: "hidden sm:inline" }, "
|
|
13860
|
+
/* @__PURE__ */ React28.createElement("span", { className: "hidden sm:inline" }, "Texto")
|
|
13851
13861
|
)), /* @__PURE__ */ React28.createElement(
|
|
13852
13862
|
"button",
|
|
13853
13863
|
{
|
|
@@ -13879,7 +13889,7 @@ function Boards({
|
|
|
13879
13889
|
/* @__PURE__ */ React28.createElement(FiArrowLeft3, { size: 10 }),
|
|
13880
13890
|
/* @__PURE__ */ React28.createElement("span", null, "Voltar")
|
|
13881
13891
|
))),
|
|
13882
|
-
/* @__PURE__ */ React28.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar bg-slate-950/30 p-6 space-y-4" }, currentBoardItems.length === 0 ? /* @__PURE__ */ React28.createElement("div", { className: "flex flex-col items-center justify-center h-full text-slate-500 gap-3 border-2 border-dashed border-white/5 rounded-xl bg-slate-900/20" }, /* @__PURE__ */ React28.createElement(FiLayers7, { size: 24, className: "opacity-20" }), /* @__PURE__ */ React28.createElement("p", { className: "text-xs text-center px-4" }, canEdit ? /* @__PURE__ */ React28.createElement(React28.Fragment, null, "Esta pasta est\xE1 vazia.", /* @__PURE__ */ React28.createElement("br", null), "Use os bot\xF5es acima para criar conte\xFAdo.") : /* @__PURE__ */ React28.createElement(React28.Fragment, null, "Nenhum conte\xFAdo dispon\xEDvel nesta pasta."))) : currentBoardItems.map((item, index) => /* @__PURE__ */ React28.createElement(
|
|
13892
|
+
/* @__PURE__ */ React28.createElement("div", { className: "flex-1 overflow-y-auto overflow-x-hidden custom-scrollbar bg-slate-950/30 p-6 space-y-4" }, currentBoardItems.length === 0 ? /* @__PURE__ */ React28.createElement("div", { className: "flex flex-col items-center justify-center h-full text-slate-500 gap-3 border-2 border-dashed border-white/5 rounded-xl bg-slate-900/20" }, /* @__PURE__ */ React28.createElement(FiLayers7, { size: 24, className: "opacity-20" }), /* @__PURE__ */ React28.createElement("p", { className: "text-xs text-center px-4" }, canEdit ? /* @__PURE__ */ React28.createElement(React28.Fragment, null, "Esta pasta est\xE1 vazia.", /* @__PURE__ */ React28.createElement("br", null), "Use os bot\xF5es acima para criar conte\xFAdo.") : /* @__PURE__ */ React28.createElement(React28.Fragment, null, "Nenhum conte\xFAdo dispon\xEDvel nesta pasta."))) : currentBoardItems.map((item, index) => /* @__PURE__ */ React28.createElement(
|
|
13883
13893
|
BoardItem,
|
|
13884
13894
|
{
|
|
13885
13895
|
key: item.id,
|
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.
|
|
3
|
+
"version": "1.2.6-dev.29",
|
|
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",
|