@lv-x-software-house/x_view 1.2.6-dev.10 → 1.2.6-dev.11
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 +3 -58
- package/dist/index.mjs +3 -58
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -13343,7 +13343,6 @@ function AncestryBoard({
|
|
|
13343
13343
|
onSave,
|
|
13344
13344
|
userRole
|
|
13345
13345
|
}) {
|
|
13346
|
-
const [searchTerm, setSearchTerm] = (0, import_react29.useState)("");
|
|
13347
13346
|
const [groups, setGroups] = (0, import_react29.useState)([]);
|
|
13348
13347
|
const [isLoaded, setIsLoaded] = (0, import_react29.useState)(false);
|
|
13349
13348
|
const [saveStatus, setSaveStatus] = (0, import_react29.useState)("idle");
|
|
@@ -13360,13 +13359,6 @@ function AncestryBoard({
|
|
|
13360
13359
|
setIsLoaded(true);
|
|
13361
13360
|
}
|
|
13362
13361
|
}, [initialGroups, isLoaded]);
|
|
13363
|
-
const nodeNamesMap = (0, import_react29.useMemo)(() => {
|
|
13364
|
-
const map = /* @__PURE__ */ new Map();
|
|
13365
|
-
availableNodes.forEach((n) => {
|
|
13366
|
-
if (n == null ? void 0 : n.id) map.set(String(n.id), n.name);
|
|
13367
|
-
});
|
|
13368
|
-
return map;
|
|
13369
|
-
}, [availableNodes]);
|
|
13370
13362
|
const allSearchableItems = (0, import_react29.useMemo)(() => {
|
|
13371
13363
|
const items = [];
|
|
13372
13364
|
availableAncestries.forEach((anc) => {
|
|
@@ -13393,20 +13385,6 @@ function AncestryBoard({
|
|
|
13393
13385
|
});
|
|
13394
13386
|
return items;
|
|
13395
13387
|
}, [availableAncestries, availableNodes]);
|
|
13396
|
-
const filtered = (0, import_react29.useMemo)(() => {
|
|
13397
|
-
const term = searchTerm.toLowerCase().trim();
|
|
13398
|
-
return allSearchableItems.filter((item) => {
|
|
13399
|
-
if (!term) return true;
|
|
13400
|
-
const labelMatch = (item.searchLabel || "").toLowerCase().includes(term);
|
|
13401
|
-
const descMatch = (item.searchDesc || "").toLowerCase().includes(term);
|
|
13402
|
-
let parentMatch = false;
|
|
13403
|
-
if (item.type === "ancestry") {
|
|
13404
|
-
const parentName = nodeNamesMap.get(String(item.ancestral_node)) || "";
|
|
13405
|
-
parentMatch = parentName.toLowerCase().includes(term);
|
|
13406
|
-
}
|
|
13407
|
-
return labelMatch || descMatch || parentMatch;
|
|
13408
|
-
});
|
|
13409
|
-
}, [allSearchableItems, searchTerm, nodeNamesMap]);
|
|
13410
13388
|
const sanitizeGroups = (list) => list.map((g) => ({
|
|
13411
13389
|
id: g.id,
|
|
13412
13390
|
content: g.content || [],
|
|
@@ -13529,40 +13507,7 @@ function AncestryBoard({
|
|
|
13529
13507
|
},
|
|
13530
13508
|
/* @__PURE__ */ import_react29.default.createElement(import_fi23.FiX, { size: 16 })
|
|
13531
13509
|
))),
|
|
13532
|
-
/* @__PURE__ */ import_react29.default.createElement("div", { className: "flex
|
|
13533
|
-
"input",
|
|
13534
|
-
{
|
|
13535
|
-
type: "text",
|
|
13536
|
-
placeholder: "Navegar nas ancestralidades e nodes\u2026",
|
|
13537
|
-
className: "w-full rounded-md pl-9 pr-4 py-2 text-sm bg-slate-950 border border-white/10 text-slate-200 placeholder-slate-600 focus:outline-none focus:ring-1 focus:ring-indigo-500 transition-all",
|
|
13538
|
-
value: searchTerm,
|
|
13539
|
-
onChange: (e) => setSearchTerm(e.target.value),
|
|
13540
|
-
autoFocus: true
|
|
13541
|
-
}
|
|
13542
|
-
))), /* @__PURE__ */ import_react29.default.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-3 space-y-2" }, filtered.map((anc) => {
|
|
13543
|
-
const parentNodeName = nodeNamesMap.get(String(anc.ancestral_node)) || "Node Desconhecido";
|
|
13544
|
-
return /* @__PURE__ */ import_react29.default.createElement(
|
|
13545
|
-
"div",
|
|
13546
|
-
{
|
|
13547
|
-
key: anc.id,
|
|
13548
|
-
className: "group relative flex items-start gap-3 p-3 text-left rounded-lg border border-white/5 bg-slate-800/40 hover:bg-indigo-600/10 hover:border-indigo-500/30 cursor-default transition-all duration-200"
|
|
13549
|
-
},
|
|
13550
|
-
/* @__PURE__ */ import_react29.default.createElement("div", { className: "mt-0.5 w-8 h-8 rounded-md grid place-content-center shrink-0 border bg-slate-800 border-white/5 group-hover:bg-indigo-500 group-hover:text-white transition-all shadow-lg" }, anc.type === "quest" ? /* @__PURE__ */ import_react29.default.createElement(import_fi23.FiCheckSquare, { size: 14, className: "text-emerald-400 group-hover:text-white" }) : anc.type === "version" ? /* @__PURE__ */ import_react29.default.createElement(import_fi23.FiGitBranch, { size: 14, className: "text-amber-400 group-hover:text-white" }) : anc.type === "node" ? /* @__PURE__ */ import_react29.default.createElement(import_fi23.FiBox, { size: 14, className: "text-slate-400 group-hover:text-white" }) : /* @__PURE__ */ import_react29.default.createElement(import_fi23.FiLayers, { size: 14, className: "text-indigo-400 group-hover:text-white" })),
|
|
13551
|
-
/* @__PURE__ */ import_react29.default.createElement("div", { className: "flex-1 min-w-0 pb-2" }, /* @__PURE__ */ import_react29.default.createElement("div", { className: "flex items-center justify-between gap-2" }, /* @__PURE__ */ import_react29.default.createElement("h4", { className: "text-sm font-medium text-slate-200 group-hover:text-white truncate transition-colors" }, anc.searchLabel || "Sem Nome"), /* @__PURE__ */ import_react29.default.createElement("span", { className: "text-[9px] px-1.5 py-0.5 rounded-full bg-white/5 text-slate-500 border border-white/5 uppercase tracking-tighter" }, anc.type)), anc.type === "ancestry" && /* @__PURE__ */ import_react29.default.createElement("div", { className: "flex items-center gap-1.5 mt-0.5 text-[11px] text-slate-500 group-hover:text-indigo-200/70 transition-colors" }, /* @__PURE__ */ import_react29.default.createElement(import_fi23.FiCornerUpRight, { size: 10 }), /* @__PURE__ */ import_react29.default.createElement("span", { className: "truncate max-w-[120px]" }, parentNodeName)), anc.searchDesc && /* @__PURE__ */ import_react29.default.createElement("p", { className: "mt-1.5 text-[11px] text-slate-400 line-clamp-2 leading-relaxed opacity-80" }, anc.searchDesc)),
|
|
13552
|
-
/* @__PURE__ */ import_react29.default.createElement(
|
|
13553
|
-
"button",
|
|
13554
|
-
{
|
|
13555
|
-
onClick: (e) => {
|
|
13556
|
-
e.stopPropagation();
|
|
13557
|
-
if (onSelect) onSelect(anc);
|
|
13558
|
-
},
|
|
13559
|
-
className: "absolute right-2 bottom-2 opacity-0 group-hover:opacity-100 transition-all duration-300 transform translate-y-2 group-hover:translate-y-0 z-10",
|
|
13560
|
-
title: "Focar no cen\xE1rio"
|
|
13561
|
-
},
|
|
13562
|
-
/* @__PURE__ */ import_react29.default.createElement("div", { className: "bg-indigo-500 text-white p-2 rounded-full shadow-lg hover:bg-indigo-400 hover:scale-110 transition-all" }, /* @__PURE__ */ import_react29.default.createElement(import_fi23.FiPlay, { size: 14, className: "ml-0.5" }))
|
|
13563
|
-
)
|
|
13564
|
-
);
|
|
13565
|
-
}))), /* @__PURE__ */ import_react29.default.createElement("div", { className: "flex flex-col flex-1 bg-slate-950/30" }, /* @__PURE__ */ import_react29.default.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-6 space-y-4" }, groups.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 m-4 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, "Nenhum grupo criado.", /* @__PURE__ */ import_react29.default.createElement("br", null), 'Use o bot\xE3o "Novo Grupo" acima.') : /* @__PURE__ */ import_react29.default.createElement(import_react29.default.Fragment, null, "Nenhum grupo dispon\xEDvel para visualiza\xE7\xE3o."))) : groups.map((group, index) => /* @__PURE__ */ import_react29.default.createElement(
|
|
13510
|
+
/* @__PURE__ */ import_react29.default.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar bg-slate-950/30 p-6 space-y-4" }, groups.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 m-4 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, "Nenhum grupo criado.", /* @__PURE__ */ import_react29.default.createElement("br", null), 'Use o bot\xE3o "Novo Grupo" acima.') : /* @__PURE__ */ import_react29.default.createElement(import_react29.default.Fragment, null, "Nenhum grupo dispon\xEDvel para visualiza\xE7\xE3o."))) : groups.map((group, index) => /* @__PURE__ */ import_react29.default.createElement(
|
|
13566
13511
|
GroupItem,
|
|
13567
13512
|
{
|
|
13568
13513
|
key: group.id,
|
|
@@ -13577,8 +13522,8 @@ function AncestryBoard({
|
|
|
13577
13522
|
onMentionClick: handleMentionClick,
|
|
13578
13523
|
canEdit
|
|
13579
13524
|
}
|
|
13580
|
-
)))
|
|
13581
|
-
/* @__PURE__ */ import_react29.default.createElement("div", { className: "px-5 py-2 border-t border-white/10 bg-slate-950/50 text-xs text-slate-500 flex justify-
|
|
13525
|
+
))),
|
|
13526
|
+
/* @__PURE__ */ import_react29.default.createElement("div", { className: "px-5 py-2 border-t border-white/10 bg-slate-950/50 text-xs text-slate-500 flex justify-end flex-shrink-0" }, /* @__PURE__ */ import_react29.default.createElement("span", null, groups.length, " grupos raiz"))
|
|
13582
13527
|
)
|
|
13583
13528
|
);
|
|
13584
13529
|
}
|
package/dist/index.mjs
CHANGED
|
@@ -13389,7 +13389,6 @@ function AncestryBoard({
|
|
|
13389
13389
|
onSave,
|
|
13390
13390
|
userRole
|
|
13391
13391
|
}) {
|
|
13392
|
-
const [searchTerm, setSearchTerm] = useState27("");
|
|
13393
13392
|
const [groups, setGroups] = useState27([]);
|
|
13394
13393
|
const [isLoaded, setIsLoaded] = useState27(false);
|
|
13395
13394
|
const [saveStatus, setSaveStatus] = useState27("idle");
|
|
@@ -13406,13 +13405,6 @@ function AncestryBoard({
|
|
|
13406
13405
|
setIsLoaded(true);
|
|
13407
13406
|
}
|
|
13408
13407
|
}, [initialGroups, isLoaded]);
|
|
13409
|
-
const nodeNamesMap = useMemo12(() => {
|
|
13410
|
-
const map = /* @__PURE__ */ new Map();
|
|
13411
|
-
availableNodes.forEach((n) => {
|
|
13412
|
-
if (n == null ? void 0 : n.id) map.set(String(n.id), n.name);
|
|
13413
|
-
});
|
|
13414
|
-
return map;
|
|
13415
|
-
}, [availableNodes]);
|
|
13416
13408
|
const allSearchableItems = useMemo12(() => {
|
|
13417
13409
|
const items = [];
|
|
13418
13410
|
availableAncestries.forEach((anc) => {
|
|
@@ -13439,20 +13431,6 @@ function AncestryBoard({
|
|
|
13439
13431
|
});
|
|
13440
13432
|
return items;
|
|
13441
13433
|
}, [availableAncestries, availableNodes]);
|
|
13442
|
-
const filtered = useMemo12(() => {
|
|
13443
|
-
const term = searchTerm.toLowerCase().trim();
|
|
13444
|
-
return allSearchableItems.filter((item) => {
|
|
13445
|
-
if (!term) return true;
|
|
13446
|
-
const labelMatch = (item.searchLabel || "").toLowerCase().includes(term);
|
|
13447
|
-
const descMatch = (item.searchDesc || "").toLowerCase().includes(term);
|
|
13448
|
-
let parentMatch = false;
|
|
13449
|
-
if (item.type === "ancestry") {
|
|
13450
|
-
const parentName = nodeNamesMap.get(String(item.ancestral_node)) || "";
|
|
13451
|
-
parentMatch = parentName.toLowerCase().includes(term);
|
|
13452
|
-
}
|
|
13453
|
-
return labelMatch || descMatch || parentMatch;
|
|
13454
|
-
});
|
|
13455
|
-
}, [allSearchableItems, searchTerm, nodeNamesMap]);
|
|
13456
13434
|
const sanitizeGroups = (list) => list.map((g) => ({
|
|
13457
13435
|
id: g.id,
|
|
13458
13436
|
content: g.content || [],
|
|
@@ -13575,40 +13553,7 @@ function AncestryBoard({
|
|
|
13575
13553
|
},
|
|
13576
13554
|
/* @__PURE__ */ React28.createElement(FiX8, { size: 16 })
|
|
13577
13555
|
))),
|
|
13578
|
-
/* @__PURE__ */ React28.createElement("div", { className: "flex
|
|
13579
|
-
"input",
|
|
13580
|
-
{
|
|
13581
|
-
type: "text",
|
|
13582
|
-
placeholder: "Navegar nas ancestralidades e nodes\u2026",
|
|
13583
|
-
className: "w-full rounded-md pl-9 pr-4 py-2 text-sm bg-slate-950 border border-white/10 text-slate-200 placeholder-slate-600 focus:outline-none focus:ring-1 focus:ring-indigo-500 transition-all",
|
|
13584
|
-
value: searchTerm,
|
|
13585
|
-
onChange: (e) => setSearchTerm(e.target.value),
|
|
13586
|
-
autoFocus: true
|
|
13587
|
-
}
|
|
13588
|
-
))), /* @__PURE__ */ React28.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-3 space-y-2" }, filtered.map((anc) => {
|
|
13589
|
-
const parentNodeName = nodeNamesMap.get(String(anc.ancestral_node)) || "Node Desconhecido";
|
|
13590
|
-
return /* @__PURE__ */ React28.createElement(
|
|
13591
|
-
"div",
|
|
13592
|
-
{
|
|
13593
|
-
key: anc.id,
|
|
13594
|
-
className: "group relative flex items-start gap-3 p-3 text-left rounded-lg border border-white/5 bg-slate-800/40 hover:bg-indigo-600/10 hover:border-indigo-500/30 cursor-default transition-all duration-200"
|
|
13595
|
-
},
|
|
13596
|
-
/* @__PURE__ */ React28.createElement("div", { className: "mt-0.5 w-8 h-8 rounded-md grid place-content-center shrink-0 border bg-slate-800 border-white/5 group-hover:bg-indigo-500 group-hover:text-white transition-all shadow-lg" }, anc.type === "quest" ? /* @__PURE__ */ React28.createElement(FiCheckSquare4, { size: 14, className: "text-emerald-400 group-hover:text-white" }) : anc.type === "version" ? /* @__PURE__ */ React28.createElement(FiGitBranch4, { size: 14, className: "text-amber-400 group-hover:text-white" }) : anc.type === "node" ? /* @__PURE__ */ React28.createElement(FiBox2, { size: 14, className: "text-slate-400 group-hover:text-white" }) : /* @__PURE__ */ React28.createElement(FiLayers7, { size: 14, className: "text-indigo-400 group-hover:text-white" })),
|
|
13597
|
-
/* @__PURE__ */ React28.createElement("div", { className: "flex-1 min-w-0 pb-2" }, /* @__PURE__ */ React28.createElement("div", { className: "flex items-center justify-between gap-2" }, /* @__PURE__ */ React28.createElement("h4", { className: "text-sm font-medium text-slate-200 group-hover:text-white truncate transition-colors" }, anc.searchLabel || "Sem Nome"), /* @__PURE__ */ React28.createElement("span", { className: "text-[9px] px-1.5 py-0.5 rounded-full bg-white/5 text-slate-500 border border-white/5 uppercase tracking-tighter" }, anc.type)), anc.type === "ancestry" && /* @__PURE__ */ React28.createElement("div", { className: "flex items-center gap-1.5 mt-0.5 text-[11px] text-slate-500 group-hover:text-indigo-200/70 transition-colors" }, /* @__PURE__ */ React28.createElement(FiCornerUpRight4, { size: 10 }), /* @__PURE__ */ React28.createElement("span", { className: "truncate max-w-[120px]" }, parentNodeName)), anc.searchDesc && /* @__PURE__ */ React28.createElement("p", { className: "mt-1.5 text-[11px] text-slate-400 line-clamp-2 leading-relaxed opacity-80" }, anc.searchDesc)),
|
|
13598
|
-
/* @__PURE__ */ React28.createElement(
|
|
13599
|
-
"button",
|
|
13600
|
-
{
|
|
13601
|
-
onClick: (e) => {
|
|
13602
|
-
e.stopPropagation();
|
|
13603
|
-
if (onSelect) onSelect(anc);
|
|
13604
|
-
},
|
|
13605
|
-
className: "absolute right-2 bottom-2 opacity-0 group-hover:opacity-100 transition-all duration-300 transform translate-y-2 group-hover:translate-y-0 z-10",
|
|
13606
|
-
title: "Focar no cen\xE1rio"
|
|
13607
|
-
},
|
|
13608
|
-
/* @__PURE__ */ React28.createElement("div", { className: "bg-indigo-500 text-white p-2 rounded-full shadow-lg hover:bg-indigo-400 hover:scale-110 transition-all" }, /* @__PURE__ */ React28.createElement(FiPlay, { size: 14, className: "ml-0.5" }))
|
|
13609
|
-
)
|
|
13610
|
-
);
|
|
13611
|
-
}))), /* @__PURE__ */ React28.createElement("div", { className: "flex flex-col flex-1 bg-slate-950/30" }, /* @__PURE__ */ React28.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-6 space-y-4" }, groups.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 m-4 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, "Nenhum grupo criado.", /* @__PURE__ */ React28.createElement("br", null), 'Use o bot\xE3o "Novo Grupo" acima.') : /* @__PURE__ */ React28.createElement(React28.Fragment, null, "Nenhum grupo dispon\xEDvel para visualiza\xE7\xE3o."))) : groups.map((group, index) => /* @__PURE__ */ React28.createElement(
|
|
13556
|
+
/* @__PURE__ */ React28.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar bg-slate-950/30 p-6 space-y-4" }, groups.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 m-4 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, "Nenhum grupo criado.", /* @__PURE__ */ React28.createElement("br", null), 'Use o bot\xE3o "Novo Grupo" acima.') : /* @__PURE__ */ React28.createElement(React28.Fragment, null, "Nenhum grupo dispon\xEDvel para visualiza\xE7\xE3o."))) : groups.map((group, index) => /* @__PURE__ */ React28.createElement(
|
|
13612
13557
|
GroupItem,
|
|
13613
13558
|
{
|
|
13614
13559
|
key: group.id,
|
|
@@ -13623,8 +13568,8 @@ function AncestryBoard({
|
|
|
13623
13568
|
onMentionClick: handleMentionClick,
|
|
13624
13569
|
canEdit
|
|
13625
13570
|
}
|
|
13626
|
-
)))
|
|
13627
|
-
/* @__PURE__ */ React28.createElement("div", { className: "px-5 py-2 border-t border-white/10 bg-slate-950/50 text-xs text-slate-500 flex justify-
|
|
13571
|
+
))),
|
|
13572
|
+
/* @__PURE__ */ React28.createElement("div", { className: "px-5 py-2 border-t border-white/10 bg-slate-950/50 text-xs text-slate-500 flex justify-end flex-shrink-0" }, /* @__PURE__ */ React28.createElement("span", null, groups.length, " grupos raiz"))
|
|
13628
13573
|
)
|
|
13629
13574
|
);
|
|
13630
13575
|
}
|
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.11",
|
|
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",
|