@lv-x-software-house/x_view 1.2.7-dev.4 → 1.2.7-dev.5
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 +88 -76
- package/dist/index.mjs +88 -76
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -3989,7 +3989,6 @@ function XViewSidebar({
|
|
|
3989
3989
|
const [questFilterStatus, setQuestFilterStatus] = (0, import_react3.useState)("");
|
|
3990
3990
|
const [questFilterMilestone, setQuestFilterMilestone] = (0, import_react3.useState)("");
|
|
3991
3991
|
const [isQuestLensLoading, setIsQuestLensLoading] = (0, import_react3.useState)(false);
|
|
3992
|
-
const [isQuestLensMenuOpen, setIsQuestLensMenuOpen] = (0, import_react3.useState)(false);
|
|
3993
3992
|
const [reshapeLayoutType, setReshapeLayoutType] = (0, import_react3.useState)("Star");
|
|
3994
3993
|
const [reshapeColumnCount, setReshapeColumnCount] = (0, import_react3.useState)(4);
|
|
3995
3994
|
const [reshapeCenterNodeId, setReshapeCenterNodeId] = (0, import_react3.useState)("");
|
|
@@ -4128,18 +4127,6 @@ function XViewSidebar({
|
|
|
4128
4127
|
}
|
|
4129
4128
|
return () => document.removeEventListener("mousedown", handleClickOutside);
|
|
4130
4129
|
}, [isFilterMenuOpen, isTypeDropdownOpen]);
|
|
4131
|
-
(0, import_react3.useEffect)(() => {
|
|
4132
|
-
const handleClickOutsideQuest = (event) => {
|
|
4133
|
-
if (questLensRef.current && !questLensRef.current.contains(event.target)) {
|
|
4134
|
-
if (event.target.tagName.toLowerCase() === "select" || event.target.tagName.toLowerCase() === "option") return;
|
|
4135
|
-
setIsQuestLensMenuOpen(false);
|
|
4136
|
-
}
|
|
4137
|
-
};
|
|
4138
|
-
if (isQuestLensMenuOpen) {
|
|
4139
|
-
document.addEventListener("mousedown", handleClickOutsideQuest);
|
|
4140
|
-
}
|
|
4141
|
-
return () => document.removeEventListener("mousedown", handleClickOutsideQuest);
|
|
4142
|
-
}, [isQuestLensMenuOpen]);
|
|
4143
4130
|
(0, import_react3.useEffect)(() => {
|
|
4144
4131
|
const handleClickOutsideAnnexed = (event) => {
|
|
4145
4132
|
if (annexedPanelRef.current && !annexedPanelRef.current.contains(event.target)) {
|
|
@@ -4298,7 +4285,7 @@ function XViewSidebar({
|
|
|
4298
4285
|
}
|
|
4299
4286
|
)
|
|
4300
4287
|
)
|
|
4301
|
-
), /* @__PURE__ */ import_react3.default.createElement("h3", { className: "text-sm font-semibold text-indigo-100 uppercase tracking-wider" }, activeSubMenu === "reshape" ? "Reshape Lens" : "Integra\xE7\xF5es"), /* @__PURE__ */ import_react3.default.createElement(
|
|
4288
|
+
), /* @__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(
|
|
4302
4289
|
"button",
|
|
4303
4290
|
{
|
|
4304
4291
|
className: "ml-auto p-1.5 rounded-md text-slate-400 hover:text-white hover:bg-white/10 transition-colors hidden md:block",
|
|
@@ -4417,7 +4404,74 @@ function XViewSidebar({
|
|
|
4417
4404
|
}
|
|
4418
4405
|
)
|
|
4419
4406
|
) : "Selecionar Pasta no Drive"
|
|
4420
|
-
), /* @__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.")))), activeSubMenu === "
|
|
4407
|
+
), /* @__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.")))), 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-4" }, /* @__PURE__ */ import_react3.default.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ import_react3.default.createElement("label", { className: "text-[11px] uppercase text-slate-400 font-semibold tracking-wider ml-1 block" }, "Respons\xE1vel"), /* @__PURE__ */ import_react3.default.createElement(
|
|
4408
|
+
CustomSelect,
|
|
4409
|
+
{
|
|
4410
|
+
value: questFilterAssignee,
|
|
4411
|
+
onChange: (val) => setQuestFilterAssignee(val),
|
|
4412
|
+
options: [
|
|
4413
|
+
{ value: "", label: "Qualquer / Todos" },
|
|
4414
|
+
...viewMembers.map((m) => ({ value: m.id, label: m.name || m.email }))
|
|
4415
|
+
],
|
|
4416
|
+
placeholder: "Filtrar por respons\xE1vel"
|
|
4417
|
+
}
|
|
4418
|
+
)), /* @__PURE__ */ import_react3.default.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ import_react3.default.createElement("label", { className: "text-[11px] uppercase text-slate-400 font-semibold tracking-wider ml-1 block" }, "Status"), /* @__PURE__ */ import_react3.default.createElement(
|
|
4419
|
+
CustomSelect,
|
|
4420
|
+
{
|
|
4421
|
+
value: questFilterStatus,
|
|
4422
|
+
onChange: (val) => setQuestFilterStatus(val),
|
|
4423
|
+
options: [
|
|
4424
|
+
{ value: "", label: "Padr\xE3o (Oculta Dones)" },
|
|
4425
|
+
{ value: "all", label: "Mostrar Todos" },
|
|
4426
|
+
{ value: "Backlog", label: "Backlog" },
|
|
4427
|
+
{ value: "In Progress", label: "In Progress" },
|
|
4428
|
+
{ value: "Review", label: "Review" },
|
|
4429
|
+
{ value: "Done", label: "Done" }
|
|
4430
|
+
],
|
|
4431
|
+
placeholder: "Filtrar por status"
|
|
4432
|
+
}
|
|
4433
|
+
)), /* @__PURE__ */ import_react3.default.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ import_react3.default.createElement("label", { className: "text-[11px] uppercase text-slate-400 font-semibold tracking-wider ml-1 block" }, "Milestone"), /* @__PURE__ */ import_react3.default.createElement(
|
|
4434
|
+
CustomSelect,
|
|
4435
|
+
{
|
|
4436
|
+
value: questFilterMilestone,
|
|
4437
|
+
onChange: (val) => setQuestFilterMilestone(val),
|
|
4438
|
+
options: [
|
|
4439
|
+
{ value: "", label: "Todos os Milestones" },
|
|
4440
|
+
...milestones.map((m) => ({ value: m.id, label: m.name }))
|
|
4441
|
+
],
|
|
4442
|
+
placeholder: "Filtrar por marco"
|
|
4443
|
+
}
|
|
4444
|
+
))), /* @__PURE__ */ import_react3.default.createElement("div", { className: "flex gap-3 pt-4 border-t border-white/10" }, /* @__PURE__ */ import_react3.default.createElement(
|
|
4445
|
+
"button",
|
|
4446
|
+
{
|
|
4447
|
+
onClick: () => {
|
|
4448
|
+
setQuestFilterAssignee("");
|
|
4449
|
+
setQuestFilterStatus("");
|
|
4450
|
+
setQuestFilterMilestone("");
|
|
4451
|
+
},
|
|
4452
|
+
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"
|
|
4453
|
+
},
|
|
4454
|
+
"Limpar"
|
|
4455
|
+
), /* @__PURE__ */ import_react3.default.createElement(
|
|
4456
|
+
"button",
|
|
4457
|
+
{
|
|
4458
|
+
disabled: isQuestLensLoading,
|
|
4459
|
+
onClick: async () => {
|
|
4460
|
+
setIsQuestLensLoading(true);
|
|
4461
|
+
try {
|
|
4462
|
+
await onActivateQuestLens({
|
|
4463
|
+
assigneeId: questFilterAssignee,
|
|
4464
|
+
status: questFilterStatus,
|
|
4465
|
+
milestoneId: questFilterMilestone
|
|
4466
|
+
});
|
|
4467
|
+
} finally {
|
|
4468
|
+
setIsQuestLensLoading(false);
|
|
4469
|
+
}
|
|
4470
|
+
},
|
|
4471
|
+
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 flex items-center justify-center gap-2 disabled:opacity-50"
|
|
4472
|
+
},
|
|
4473
|
+
isQuestLensLoading ? "Processando..." : "Aplicar Lens"
|
|
4474
|
+
))), 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(
|
|
4421
4475
|
CustomSelect,
|
|
4422
4476
|
{
|
|
4423
4477
|
value: reshapeLayoutType,
|
|
@@ -4683,69 +4737,27 @@ function XViewSidebar({
|
|
|
4683
4737
|
))))), /* @__PURE__ */ import_react3.default.createElement("div", { className: "h-px bg-white/10" }), /* @__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" }, "Lentes"), /* @__PURE__ */ import_react3.default.createElement("div", { className: "relative", ref: questLensRef }, /* @__PURE__ */ import_react3.default.createElement(
|
|
4684
4738
|
"button",
|
|
4685
4739
|
{
|
|
4686
|
-
onClick: () =>
|
|
4687
|
-
className: `${buttonBaseClass} ${
|
|
4688
|
-
title: "Abrir filtros da Lente de Quests"
|
|
4689
|
-
},
|
|
4690
|
-
/* @__PURE__ */ import_react3.default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, /* @__PURE__ */ import_react3.default.createElement("path", { d: "M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z" }), /* @__PURE__ */ import_react3.default.createElement("path", { d: "M9 12l2 2 4-4" })),
|
|
4691
|
-
"Quest Lens",
|
|
4692
|
-
(questFilterAssignee || questFilterStatus || questFilterMilestone) && /* @__PURE__ */ import_react3.default.createElement("span", { className: "ml-1 px-1.5 py-0.5 rounded-full bg-indigo-500 text-[9px] font-bold" }, "!")
|
|
4693
|
-
), isQuestLensMenuOpen && /* @__PURE__ */ import_react3.default.createElement("div", { className: "absolute left-0 bottom-full mb-2 w-full p-4 rounded-xl bg-slate-900 border border-white/10 shadow-2xl z-50 flex flex-col gap-4 animate-in fade-in slide-in-from-bottom-2 duration-200" }, /* @__PURE__ */ import_react3.default.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ import_react3.default.createElement("label", { className: "text-[10px] uppercase text-slate-400 font-bold tracking-widest" }, "Respons\xE1vel"), /* @__PURE__ */ import_react3.default.createElement(
|
|
4694
|
-
"select",
|
|
4695
|
-
{
|
|
4696
|
-
value: questFilterAssignee,
|
|
4697
|
-
onChange: (e) => setQuestFilterAssignee(e.target.value),
|
|
4698
|
-
className: "w-full bg-slate-800 p-2 text-xs rounded border border-white/10 focus:outline-none focus:border-indigo-500/50 text-white appearance-none cursor-pointer"
|
|
4699
|
-
},
|
|
4700
|
-
/* @__PURE__ */ import_react3.default.createElement("option", { value: "" }, "Todos os Respons\xE1veis"),
|
|
4701
|
-
viewMembers.map((m) => /* @__PURE__ */ import_react3.default.createElement("option", { key: m.id, value: m.id }, m.name || m.email))
|
|
4702
|
-
)), /* @__PURE__ */ import_react3.default.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ import_react3.default.createElement("label", { className: "text-[10px] uppercase text-slate-400 font-bold tracking-widest" }, "Status"), /* @__PURE__ */ import_react3.default.createElement(
|
|
4703
|
-
"select",
|
|
4704
|
-
{
|
|
4705
|
-
value: questFilterStatus,
|
|
4706
|
-
onChange: (e) => setQuestFilterStatus(e.target.value),
|
|
4707
|
-
className: "w-full bg-slate-800 p-2 text-xs rounded border border-white/10 focus:outline-none focus:border-indigo-500/50 text-white appearance-none cursor-pointer"
|
|
4708
|
-
},
|
|
4709
|
-
/* @__PURE__ */ import_react3.default.createElement("option", { value: "" }, "Todos (Exclui Done)"),
|
|
4710
|
-
/* @__PURE__ */ import_react3.default.createElement("option", { value: "Backlog" }, "Backlog"),
|
|
4711
|
-
/* @__PURE__ */ import_react3.default.createElement("option", { value: "In Progress" }, "In Progress"),
|
|
4712
|
-
/* @__PURE__ */ import_react3.default.createElement("option", { value: "Review" }, "Review"),
|
|
4713
|
-
/* @__PURE__ */ import_react3.default.createElement("option", { value: "Done" }, "Done")
|
|
4714
|
-
)), /* @__PURE__ */ import_react3.default.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ import_react3.default.createElement("label", { className: "text-[10px] uppercase text-slate-400 font-bold tracking-widest" }, "Milestone"), /* @__PURE__ */ import_react3.default.createElement(
|
|
4715
|
-
"select",
|
|
4716
|
-
{
|
|
4717
|
-
value: questFilterMilestone,
|
|
4718
|
-
onChange: (e) => setQuestFilterMilestone(e.target.value),
|
|
4719
|
-
className: "w-full bg-slate-800 p-2 text-xs rounded border border-white/10 focus:outline-none focus:border-indigo-500/50 text-white appearance-none cursor-pointer"
|
|
4720
|
-
},
|
|
4721
|
-
/* @__PURE__ */ import_react3.default.createElement("option", { value: "" }, "Todos os Milestones"),
|
|
4722
|
-
(milestones || []).map((ms) => /* @__PURE__ */ import_react3.default.createElement("option", { key: ms.id, value: ms.id }, ms.name, " ", ms.status === "inactive" ? "(Inativo)" : ""))
|
|
4723
|
-
)), /* @__PURE__ */ import_react3.default.createElement("div", { className: "flex gap-2 pt-1 border-t border-white/10 mt-2" }, /* @__PURE__ */ import_react3.default.createElement(
|
|
4724
|
-
"button",
|
|
4725
|
-
{
|
|
4726
|
-
onClick: () => {
|
|
4727
|
-
setQuestFilterAssignee("");
|
|
4728
|
-
setQuestFilterStatus("");
|
|
4729
|
-
setQuestFilterMilestone("");
|
|
4730
|
-
},
|
|
4731
|
-
className: "flex-1 py-2 bg-white/5 hover:bg-white/10 text-slate-300 text-[11px] font-medium rounded-lg transition-colors border border-white/5 mt-3"
|
|
4740
|
+
onClick: () => setActiveSubMenu(activeSubMenu === "quest" ? null : "quest"),
|
|
4741
|
+
className: `${buttonBaseClass} lens-button ${activeSubMenu === "quest" || questFilterAssignee || questFilterStatus || questFilterMilestone ? "bg-indigo-500/30 border-indigo-400" : ""}`
|
|
4732
4742
|
},
|
|
4733
|
-
|
|
4734
|
-
|
|
4735
|
-
|
|
4736
|
-
|
|
4737
|
-
|
|
4738
|
-
|
|
4739
|
-
|
|
4740
|
-
|
|
4741
|
-
|
|
4742
|
-
|
|
4743
|
-
|
|
4743
|
+
/* @__PURE__ */ import_react3.default.createElement(
|
|
4744
|
+
"svg",
|
|
4745
|
+
{
|
|
4746
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
4747
|
+
width: "16",
|
|
4748
|
+
height: "16",
|
|
4749
|
+
viewBox: "0 0 24 24",
|
|
4750
|
+
fill: "none",
|
|
4751
|
+
stroke: "currentColor",
|
|
4752
|
+
strokeWidth: "2",
|
|
4753
|
+
strokeLinecap: "round",
|
|
4754
|
+
strokeLinejoin: "round"
|
|
4744
4755
|
},
|
|
4745
|
-
|
|
4746
|
-
|
|
4747
|
-
|
|
4748
|
-
|
|
4756
|
+
/* @__PURE__ */ import_react3.default.createElement("path", { d: "M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z" }),
|
|
4757
|
+
/* @__PURE__ */ import_react3.default.createElement("path", { d: "M9 12l2 2 4-4" })
|
|
4758
|
+
),
|
|
4759
|
+
"Quests"
|
|
4760
|
+
)), /* @__PURE__ */ import_react3.default.createElement("div", { className: "relative" }, /* @__PURE__ */ import_react3.default.createElement(
|
|
4749
4761
|
"button",
|
|
4750
4762
|
{
|
|
4751
4763
|
onClick: () => setActiveSubMenu(
|
package/dist/index.mjs
CHANGED
|
@@ -3950,7 +3950,6 @@ function XViewSidebar({
|
|
|
3950
3950
|
const [questFilterStatus, setQuestFilterStatus] = useState3("");
|
|
3951
3951
|
const [questFilterMilestone, setQuestFilterMilestone] = useState3("");
|
|
3952
3952
|
const [isQuestLensLoading, setIsQuestLensLoading] = useState3(false);
|
|
3953
|
-
const [isQuestLensMenuOpen, setIsQuestLensMenuOpen] = useState3(false);
|
|
3954
3953
|
const [reshapeLayoutType, setReshapeLayoutType] = useState3("Star");
|
|
3955
3954
|
const [reshapeColumnCount, setReshapeColumnCount] = useState3(4);
|
|
3956
3955
|
const [reshapeCenterNodeId, setReshapeCenterNodeId] = useState3("");
|
|
@@ -4089,18 +4088,6 @@ function XViewSidebar({
|
|
|
4089
4088
|
}
|
|
4090
4089
|
return () => document.removeEventListener("mousedown", handleClickOutside);
|
|
4091
4090
|
}, [isFilterMenuOpen, isTypeDropdownOpen]);
|
|
4092
|
-
useEffect2(() => {
|
|
4093
|
-
const handleClickOutsideQuest = (event) => {
|
|
4094
|
-
if (questLensRef.current && !questLensRef.current.contains(event.target)) {
|
|
4095
|
-
if (event.target.tagName.toLowerCase() === "select" || event.target.tagName.toLowerCase() === "option") return;
|
|
4096
|
-
setIsQuestLensMenuOpen(false);
|
|
4097
|
-
}
|
|
4098
|
-
};
|
|
4099
|
-
if (isQuestLensMenuOpen) {
|
|
4100
|
-
document.addEventListener("mousedown", handleClickOutsideQuest);
|
|
4101
|
-
}
|
|
4102
|
-
return () => document.removeEventListener("mousedown", handleClickOutsideQuest);
|
|
4103
|
-
}, [isQuestLensMenuOpen]);
|
|
4104
4091
|
useEffect2(() => {
|
|
4105
4092
|
const handleClickOutsideAnnexed = (event) => {
|
|
4106
4093
|
if (annexedPanelRef.current && !annexedPanelRef.current.contains(event.target)) {
|
|
@@ -4259,7 +4246,7 @@ function XViewSidebar({
|
|
|
4259
4246
|
}
|
|
4260
4247
|
)
|
|
4261
4248
|
)
|
|
4262
|
-
), /* @__PURE__ */ React2.createElement("h3", { className: "text-sm font-semibold text-indigo-100 uppercase tracking-wider" }, activeSubMenu === "reshape" ? "Reshape Lens" : "Integra\xE7\xF5es"), /* @__PURE__ */ React2.createElement(
|
|
4249
|
+
), /* @__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(
|
|
4263
4250
|
"button",
|
|
4264
4251
|
{
|
|
4265
4252
|
className: "ml-auto p-1.5 rounded-md text-slate-400 hover:text-white hover:bg-white/10 transition-colors hidden md:block",
|
|
@@ -4378,7 +4365,74 @@ function XViewSidebar({
|
|
|
4378
4365
|
}
|
|
4379
4366
|
)
|
|
4380
4367
|
) : "Selecionar Pasta no Drive"
|
|
4381
|
-
), /* @__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.")))), activeSubMenu === "
|
|
4368
|
+
), /* @__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.")))), 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-4" }, /* @__PURE__ */ React2.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React2.createElement("label", { className: "text-[11px] uppercase text-slate-400 font-semibold tracking-wider ml-1 block" }, "Respons\xE1vel"), /* @__PURE__ */ React2.createElement(
|
|
4369
|
+
CustomSelect,
|
|
4370
|
+
{
|
|
4371
|
+
value: questFilterAssignee,
|
|
4372
|
+
onChange: (val) => setQuestFilterAssignee(val),
|
|
4373
|
+
options: [
|
|
4374
|
+
{ value: "", label: "Qualquer / Todos" },
|
|
4375
|
+
...viewMembers.map((m) => ({ value: m.id, label: m.name || m.email }))
|
|
4376
|
+
],
|
|
4377
|
+
placeholder: "Filtrar por respons\xE1vel"
|
|
4378
|
+
}
|
|
4379
|
+
)), /* @__PURE__ */ React2.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React2.createElement("label", { className: "text-[11px] uppercase text-slate-400 font-semibold tracking-wider ml-1 block" }, "Status"), /* @__PURE__ */ React2.createElement(
|
|
4380
|
+
CustomSelect,
|
|
4381
|
+
{
|
|
4382
|
+
value: questFilterStatus,
|
|
4383
|
+
onChange: (val) => setQuestFilterStatus(val),
|
|
4384
|
+
options: [
|
|
4385
|
+
{ value: "", label: "Padr\xE3o (Oculta Dones)" },
|
|
4386
|
+
{ value: "all", label: "Mostrar Todos" },
|
|
4387
|
+
{ value: "Backlog", label: "Backlog" },
|
|
4388
|
+
{ value: "In Progress", label: "In Progress" },
|
|
4389
|
+
{ value: "Review", label: "Review" },
|
|
4390
|
+
{ value: "Done", label: "Done" }
|
|
4391
|
+
],
|
|
4392
|
+
placeholder: "Filtrar por status"
|
|
4393
|
+
}
|
|
4394
|
+
)), /* @__PURE__ */ React2.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React2.createElement("label", { className: "text-[11px] uppercase text-slate-400 font-semibold tracking-wider ml-1 block" }, "Milestone"), /* @__PURE__ */ React2.createElement(
|
|
4395
|
+
CustomSelect,
|
|
4396
|
+
{
|
|
4397
|
+
value: questFilterMilestone,
|
|
4398
|
+
onChange: (val) => setQuestFilterMilestone(val),
|
|
4399
|
+
options: [
|
|
4400
|
+
{ value: "", label: "Todos os Milestones" },
|
|
4401
|
+
...milestones.map((m) => ({ value: m.id, label: m.name }))
|
|
4402
|
+
],
|
|
4403
|
+
placeholder: "Filtrar por marco"
|
|
4404
|
+
}
|
|
4405
|
+
))), /* @__PURE__ */ React2.createElement("div", { className: "flex gap-3 pt-4 border-t border-white/10" }, /* @__PURE__ */ React2.createElement(
|
|
4406
|
+
"button",
|
|
4407
|
+
{
|
|
4408
|
+
onClick: () => {
|
|
4409
|
+
setQuestFilterAssignee("");
|
|
4410
|
+
setQuestFilterStatus("");
|
|
4411
|
+
setQuestFilterMilestone("");
|
|
4412
|
+
},
|
|
4413
|
+
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"
|
|
4414
|
+
},
|
|
4415
|
+
"Limpar"
|
|
4416
|
+
), /* @__PURE__ */ React2.createElement(
|
|
4417
|
+
"button",
|
|
4418
|
+
{
|
|
4419
|
+
disabled: isQuestLensLoading,
|
|
4420
|
+
onClick: async () => {
|
|
4421
|
+
setIsQuestLensLoading(true);
|
|
4422
|
+
try {
|
|
4423
|
+
await onActivateQuestLens({
|
|
4424
|
+
assigneeId: questFilterAssignee,
|
|
4425
|
+
status: questFilterStatus,
|
|
4426
|
+
milestoneId: questFilterMilestone
|
|
4427
|
+
});
|
|
4428
|
+
} finally {
|
|
4429
|
+
setIsQuestLensLoading(false);
|
|
4430
|
+
}
|
|
4431
|
+
},
|
|
4432
|
+
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 flex items-center justify-center gap-2 disabled:opacity-50"
|
|
4433
|
+
},
|
|
4434
|
+
isQuestLensLoading ? "Processando..." : "Aplicar Lens"
|
|
4435
|
+
))), 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(
|
|
4382
4436
|
CustomSelect,
|
|
4383
4437
|
{
|
|
4384
4438
|
value: reshapeLayoutType,
|
|
@@ -4644,69 +4698,27 @@ function XViewSidebar({
|
|
|
4644
4698
|
))))), /* @__PURE__ */ React2.createElement("div", { className: "h-px bg-white/10" }), /* @__PURE__ */ React2.createElement("section", { className: "space-y-2" }, /* @__PURE__ */ React2.createElement("p", { className: "text-[11px] uppercase tracking-wider text-slate-400" }, "Lentes"), /* @__PURE__ */ React2.createElement("div", { className: "relative", ref: questLensRef }, /* @__PURE__ */ React2.createElement(
|
|
4645
4699
|
"button",
|
|
4646
4700
|
{
|
|
4647
|
-
onClick: () =>
|
|
4648
|
-
className: `${buttonBaseClass} ${
|
|
4649
|
-
title: "Abrir filtros da Lente de Quests"
|
|
4650
|
-
},
|
|
4651
|
-
/* @__PURE__ */ React2.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, /* @__PURE__ */ React2.createElement("path", { d: "M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z" }), /* @__PURE__ */ React2.createElement("path", { d: "M9 12l2 2 4-4" })),
|
|
4652
|
-
"Quest Lens",
|
|
4653
|
-
(questFilterAssignee || questFilterStatus || questFilterMilestone) && /* @__PURE__ */ React2.createElement("span", { className: "ml-1 px-1.5 py-0.5 rounded-full bg-indigo-500 text-[9px] font-bold" }, "!")
|
|
4654
|
-
), isQuestLensMenuOpen && /* @__PURE__ */ React2.createElement("div", { className: "absolute left-0 bottom-full mb-2 w-full p-4 rounded-xl bg-slate-900 border border-white/10 shadow-2xl z-50 flex flex-col gap-4 animate-in fade-in slide-in-from-bottom-2 duration-200" }, /* @__PURE__ */ React2.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React2.createElement("label", { className: "text-[10px] uppercase text-slate-400 font-bold tracking-widest" }, "Respons\xE1vel"), /* @__PURE__ */ React2.createElement(
|
|
4655
|
-
"select",
|
|
4656
|
-
{
|
|
4657
|
-
value: questFilterAssignee,
|
|
4658
|
-
onChange: (e) => setQuestFilterAssignee(e.target.value),
|
|
4659
|
-
className: "w-full bg-slate-800 p-2 text-xs rounded border border-white/10 focus:outline-none focus:border-indigo-500/50 text-white appearance-none cursor-pointer"
|
|
4660
|
-
},
|
|
4661
|
-
/* @__PURE__ */ React2.createElement("option", { value: "" }, "Todos os Respons\xE1veis"),
|
|
4662
|
-
viewMembers.map((m) => /* @__PURE__ */ React2.createElement("option", { key: m.id, value: m.id }, m.name || m.email))
|
|
4663
|
-
)), /* @__PURE__ */ React2.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React2.createElement("label", { className: "text-[10px] uppercase text-slate-400 font-bold tracking-widest" }, "Status"), /* @__PURE__ */ React2.createElement(
|
|
4664
|
-
"select",
|
|
4665
|
-
{
|
|
4666
|
-
value: questFilterStatus,
|
|
4667
|
-
onChange: (e) => setQuestFilterStatus(e.target.value),
|
|
4668
|
-
className: "w-full bg-slate-800 p-2 text-xs rounded border border-white/10 focus:outline-none focus:border-indigo-500/50 text-white appearance-none cursor-pointer"
|
|
4669
|
-
},
|
|
4670
|
-
/* @__PURE__ */ React2.createElement("option", { value: "" }, "Todos (Exclui Done)"),
|
|
4671
|
-
/* @__PURE__ */ React2.createElement("option", { value: "Backlog" }, "Backlog"),
|
|
4672
|
-
/* @__PURE__ */ React2.createElement("option", { value: "In Progress" }, "In Progress"),
|
|
4673
|
-
/* @__PURE__ */ React2.createElement("option", { value: "Review" }, "Review"),
|
|
4674
|
-
/* @__PURE__ */ React2.createElement("option", { value: "Done" }, "Done")
|
|
4675
|
-
)), /* @__PURE__ */ React2.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React2.createElement("label", { className: "text-[10px] uppercase text-slate-400 font-bold tracking-widest" }, "Milestone"), /* @__PURE__ */ React2.createElement(
|
|
4676
|
-
"select",
|
|
4677
|
-
{
|
|
4678
|
-
value: questFilterMilestone,
|
|
4679
|
-
onChange: (e) => setQuestFilterMilestone(e.target.value),
|
|
4680
|
-
className: "w-full bg-slate-800 p-2 text-xs rounded border border-white/10 focus:outline-none focus:border-indigo-500/50 text-white appearance-none cursor-pointer"
|
|
4681
|
-
},
|
|
4682
|
-
/* @__PURE__ */ React2.createElement("option", { value: "" }, "Todos os Milestones"),
|
|
4683
|
-
(milestones || []).map((ms) => /* @__PURE__ */ React2.createElement("option", { key: ms.id, value: ms.id }, ms.name, " ", ms.status === "inactive" ? "(Inativo)" : ""))
|
|
4684
|
-
)), /* @__PURE__ */ React2.createElement("div", { className: "flex gap-2 pt-1 border-t border-white/10 mt-2" }, /* @__PURE__ */ React2.createElement(
|
|
4685
|
-
"button",
|
|
4686
|
-
{
|
|
4687
|
-
onClick: () => {
|
|
4688
|
-
setQuestFilterAssignee("");
|
|
4689
|
-
setQuestFilterStatus("");
|
|
4690
|
-
setQuestFilterMilestone("");
|
|
4691
|
-
},
|
|
4692
|
-
className: "flex-1 py-2 bg-white/5 hover:bg-white/10 text-slate-300 text-[11px] font-medium rounded-lg transition-colors border border-white/5 mt-3"
|
|
4701
|
+
onClick: () => setActiveSubMenu(activeSubMenu === "quest" ? null : "quest"),
|
|
4702
|
+
className: `${buttonBaseClass} lens-button ${activeSubMenu === "quest" || questFilterAssignee || questFilterStatus || questFilterMilestone ? "bg-indigo-500/30 border-indigo-400" : ""}`
|
|
4693
4703
|
},
|
|
4694
|
-
|
|
4695
|
-
|
|
4696
|
-
|
|
4697
|
-
|
|
4698
|
-
|
|
4699
|
-
|
|
4700
|
-
|
|
4701
|
-
|
|
4702
|
-
|
|
4703
|
-
|
|
4704
|
-
|
|
4704
|
+
/* @__PURE__ */ React2.createElement(
|
|
4705
|
+
"svg",
|
|
4706
|
+
{
|
|
4707
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
4708
|
+
width: "16",
|
|
4709
|
+
height: "16",
|
|
4710
|
+
viewBox: "0 0 24 24",
|
|
4711
|
+
fill: "none",
|
|
4712
|
+
stroke: "currentColor",
|
|
4713
|
+
strokeWidth: "2",
|
|
4714
|
+
strokeLinecap: "round",
|
|
4715
|
+
strokeLinejoin: "round"
|
|
4705
4716
|
},
|
|
4706
|
-
|
|
4707
|
-
|
|
4708
|
-
|
|
4709
|
-
|
|
4717
|
+
/* @__PURE__ */ React2.createElement("path", { d: "M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z" }),
|
|
4718
|
+
/* @__PURE__ */ React2.createElement("path", { d: "M9 12l2 2 4-4" })
|
|
4719
|
+
),
|
|
4720
|
+
"Quests"
|
|
4721
|
+
)), /* @__PURE__ */ React2.createElement("div", { className: "relative" }, /* @__PURE__ */ React2.createElement(
|
|
4710
4722
|
"button",
|
|
4711
4723
|
{
|
|
4712
4724
|
onClick: () => setActiveSubMenu(
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lv-x-software-house/x_view",
|
|
3
|
-
"version": "1.2.7-dev.
|
|
3
|
+
"version": "1.2.7-dev.5",
|
|
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",
|