@datatechsolutions/ui 2.11.64 → 2.11.66
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/astrlabe/index.js +131 -131
- package/dist/astrlabe/index.mjs +3 -3
- package/dist/astrlabe/workflow-canvas.js +3 -3
- package/dist/astrlabe/workflow-canvas.mjs +2 -2
- package/dist/{chunk-EBJ7O3S5.js → chunk-23SPYTXR.js} +64 -64
- package/dist/{chunk-EBJ7O3S5.js.map → chunk-23SPYTXR.js.map} +1 -1
- package/dist/{chunk-7GKAQFMY.mjs → chunk-2QHIFD2J.mjs} +3 -3
- package/dist/{chunk-7GKAQFMY.mjs.map → chunk-2QHIFD2J.mjs.map} +1 -1
- package/dist/{chunk-T7XUKDEH.mjs → chunk-GQBSFIXC.mjs} +347 -140
- package/dist/chunk-GQBSFIXC.mjs.map +1 -0
- package/dist/{chunk-ZIBUWOWT.js → chunk-T23YGO4X.js} +350 -138
- package/dist/chunk-T23YGO4X.js.map +1 -0
- package/dist/index.d.mts +48 -5
- package/dist/index.d.ts +48 -5
- package/dist/index.js +759 -739
- package/dist/index.mjs +1 -1
- package/package.json +1 -1
- package/dist/chunk-T7XUKDEH.mjs.map +0 -1
- package/dist/chunk-ZIBUWOWT.js.map +0 -1
|
@@ -16415,50 +16415,58 @@ var DashboardDemo = ({
|
|
|
16415
16415
|
}
|
|
16416
16416
|
);
|
|
16417
16417
|
};
|
|
16418
|
+
var DEFAULT_THEME = {
|
|
16419
|
+
runButtonGradient: "from-indigo-600 to-violet-600",
|
|
16420
|
+
runButtonShadow: "shadow-indigo-500/20",
|
|
16421
|
+
stepActiveBg: "bg-indigo-500",
|
|
16422
|
+
activeRing: "ring-indigo-500/60",
|
|
16423
|
+
activeEdgeStroke: "#818cf8",
|
|
16424
|
+
completeEdgeStroke: "#10b981",
|
|
16425
|
+
badge: "bg-indigo-500/15 text-indigo-700 dark:text-indigo-300"
|
|
16426
|
+
};
|
|
16418
16427
|
var NODE_TYPE_META = {
|
|
16419
|
-
start: { icon: HeroIcons.PlayIcon, color: "text-emerald-300", bg: "bg-emerald-500/15", glow: "rgba(16,185,129,0.45)" },
|
|
16420
|
-
end: { icon: HeroIcons.CheckCircleIcon, color: "text-emerald-300", bg: "bg-emerald-500/15", glow: "rgba(16,185,129,0.45)" },
|
|
16421
|
-
datasource: { icon: HeroIcons.CircleStackIcon, color: "text-sky-300", bg: "bg-sky-500/15", glow: "rgba(14,165,233,0.45)" },
|
|
16422
|
-
entity: { icon: HeroIcons.RectangleStackIcon, color: "text-sky-300", bg: "bg-sky-500/15", glow: "rgba(14,165,233,0.45)" },
|
|
16423
|
-
http_request: { icon: HeroIcons.CloudIcon, color: "text-cyan-300", bg: "bg-cyan-500/15", glow: "rgba(34,211,238,0.45)" },
|
|
16424
|
-
knowledge_base: { icon: HeroIcons.ServerStackIcon, color: "text-cyan-300", bg: "bg-cyan-500/15", glow: "rgba(34,211,238,0.45)" },
|
|
16425
|
-
agent: { icon: HeroIcons.CpuChipIcon, color: "text-purple-300", bg: "bg-purple-500/15", glow: "rgba(168,85,247,0.5)" },
|
|
16426
|
-
agent_tool: { icon: HeroIcons.BeakerIcon, color: "text-violet-300", bg: "bg-violet-500/15", glow: "rgba(139,92,246,0.5)" },
|
|
16427
|
-
tool: { icon: HeroIcons.BeakerIcon, color: "text-violet-300", bg: "bg-violet-500/15", glow: "rgba(139,92,246,0.5)" },
|
|
16428
|
-
code: { icon: HeroIcons.CodeBracketIcon, color: "text-amber-300", bg: "bg-amber-500/15", glow: "rgba(245,158,11,0.45)" },
|
|
16429
|
-
template_transform: { icon: HeroIcons.DocumentTextIcon, color: "text-amber-300", bg: "bg-amber-500/15", glow: "rgba(245,158,11,0.45)" },
|
|
16430
|
-
if_else: { icon: HeroIcons.BoltIcon, color: "text-orange-300", bg: "bg-orange-500/15", glow: "rgba(251,146,60,0.5)" },
|
|
16431
|
-
question_classifier: { icon: HeroIcons.BoltIcon, color: "text-orange-300", bg: "bg-orange-500/15", glow: "rgba(251,146,60,0.5)" },
|
|
16432
|
-
parameter_extractor: { icon: HeroIcons.AdjustmentsHorizontalIcon, color: "text-orange-300", bg: "bg-orange-500/15", glow: "rgba(251,146,60,0.5)" },
|
|
16433
|
-
variable_aggregator: { icon: HeroIcons.AdjustmentsHorizontalIcon, color: "text-yellow-300", bg: "bg-yellow-500/15", glow: "rgba(234,179,8,0.45)" },
|
|
16434
|
-
variable_assigner: { icon: HeroIcons.AdjustmentsHorizontalIcon, color: "text-yellow-300", bg: "bg-yellow-500/15", glow: "rgba(234,179,8,0.45)" },
|
|
16435
|
-
iteration: { icon: HeroIcons.ArrowPathIcon, color: "text-fuchsia-300", bg: "bg-fuchsia-500/15", glow: "rgba(232,121,249,0.5)" },
|
|
16436
|
-
iteration_start: { icon: HeroIcons.ArrowPathIcon, color: "text-fuchsia-300", bg: "bg-fuchsia-500/15", glow: "rgba(232,121,249,0.5)" },
|
|
16437
|
-
list_operator: { icon: HeroIcons.AdjustmentsHorizontalIcon, color: "text-fuchsia-300", bg: "bg-fuchsia-500/15", glow: "rgba(232,121,249,0.5)" },
|
|
16438
|
-
answer: { icon: HeroIcons.ChartBarIcon, color: "text-emerald-300", bg: "bg-emerald-500/15", glow: "rgba(16,185,129,0.45)" },
|
|
16439
|
-
dashboard_output: { icon: HeroIcons.ChartBarIcon, color: "text-emerald-300", bg: "bg-emerald-500/15", glow: "rgba(16,185,129,0.45)" },
|
|
16440
|
-
rule: { icon: HeroIcons.BoltIcon, color: "text-rose-300", bg: "bg-rose-500/15", glow: "rgba(244,63,94,0.5)" },
|
|
16441
|
-
document_extractor: { icon: HeroIcons.DocumentTextIcon, color: "text-amber-300", bg: "bg-amber-500/15", glow: "rgba(245,158,11,0.45)" },
|
|
16442
|
-
model_provider: { icon: HeroIcons.CpuChipIcon, color: "text-violet-300", bg: "bg-violet-500/15", glow: "rgba(139,92,246,0.5)" },
|
|
16443
|
-
note: { icon: HeroIcons.DocumentTextIcon, color: "text-slate-300", bg: "bg-slate-500/15", glow: "rgba(100,116,139,0.4)" },
|
|
16444
|
-
group: { icon: HeroIcons.RectangleStackIcon, color: "text-slate-300", bg: "bg-slate-500/15", glow: "rgba(100,116,139,0.4)" }
|
|
16428
|
+
start: { icon: HeroIcons.PlayIcon, color: "text-emerald-300", bg: "bg-emerald-500/15", glow: "rgba(16,185,129,0.45)", tag: "start" },
|
|
16429
|
+
end: { icon: HeroIcons.CheckCircleIcon, color: "text-emerald-300", bg: "bg-emerald-500/15", glow: "rgba(16,185,129,0.45)", tag: "end" },
|
|
16430
|
+
datasource: { icon: HeroIcons.CircleStackIcon, color: "text-sky-300", bg: "bg-sky-500/15", glow: "rgba(14,165,233,0.45)", tag: "datasource" },
|
|
16431
|
+
entity: { icon: HeroIcons.RectangleStackIcon, color: "text-sky-300", bg: "bg-sky-500/15", glow: "rgba(14,165,233,0.45)", tag: "entity" },
|
|
16432
|
+
http_request: { icon: HeroIcons.CloudIcon, color: "text-cyan-300", bg: "bg-cyan-500/15", glow: "rgba(34,211,238,0.45)", tag: "http" },
|
|
16433
|
+
knowledge_base: { icon: HeroIcons.ServerStackIcon, color: "text-cyan-300", bg: "bg-cyan-500/15", glow: "rgba(34,211,238,0.45)", tag: "kb" },
|
|
16434
|
+
agent: { icon: HeroIcons.CpuChipIcon, color: "text-purple-300", bg: "bg-purple-500/15", glow: "rgba(168,85,247,0.5)", tag: "agent" },
|
|
16435
|
+
agent_tool: { icon: HeroIcons.BeakerIcon, color: "text-violet-300", bg: "bg-violet-500/15", glow: "rgba(139,92,246,0.5)", tag: "agent.tool" },
|
|
16436
|
+
tool: { icon: HeroIcons.BeakerIcon, color: "text-violet-300", bg: "bg-violet-500/15", glow: "rgba(139,92,246,0.5)", tag: "tool" },
|
|
16437
|
+
code: { icon: HeroIcons.CodeBracketIcon, color: "text-amber-300", bg: "bg-amber-500/15", glow: "rgba(245,158,11,0.45)", tag: "code" },
|
|
16438
|
+
template_transform: { icon: HeroIcons.DocumentTextIcon, color: "text-amber-300", bg: "bg-amber-500/15", glow: "rgba(245,158,11,0.45)", tag: "template" },
|
|
16439
|
+
if_else: { icon: HeroIcons.BoltIcon, color: "text-orange-300", bg: "bg-orange-500/15", glow: "rgba(251,146,60,0.5)", tag: "branch" },
|
|
16440
|
+
question_classifier: { icon: HeroIcons.BoltIcon, color: "text-orange-300", bg: "bg-orange-500/15", glow: "rgba(251,146,60,0.5)", tag: "classifier" },
|
|
16441
|
+
parameter_extractor: { icon: HeroIcons.AdjustmentsHorizontalIcon, color: "text-orange-300", bg: "bg-orange-500/15", glow: "rgba(251,146,60,0.5)", tag: "extractor" },
|
|
16442
|
+
variable_aggregator: { icon: HeroIcons.AdjustmentsHorizontalIcon, color: "text-yellow-300", bg: "bg-yellow-500/15", glow: "rgba(234,179,8,0.45)", tag: "aggregate" },
|
|
16443
|
+
variable_assigner: { icon: HeroIcons.AdjustmentsHorizontalIcon, color: "text-yellow-300", bg: "bg-yellow-500/15", glow: "rgba(234,179,8,0.45)", tag: "assign" },
|
|
16444
|
+
iteration: { icon: HeroIcons.ArrowPathIcon, color: "text-fuchsia-300", bg: "bg-fuchsia-500/15", glow: "rgba(232,121,249,0.5)", tag: "iterate" },
|
|
16445
|
+
iteration_start: { icon: HeroIcons.ArrowPathIcon, color: "text-fuchsia-300", bg: "bg-fuchsia-500/15", glow: "rgba(232,121,249,0.5)", tag: "iterate.start" },
|
|
16446
|
+
list_operator: { icon: HeroIcons.AdjustmentsHorizontalIcon, color: "text-fuchsia-300", bg: "bg-fuchsia-500/15", glow: "rgba(232,121,249,0.5)", tag: "list" },
|
|
16447
|
+
answer: { icon: HeroIcons.ChartBarIcon, color: "text-emerald-300", bg: "bg-emerald-500/15", glow: "rgba(16,185,129,0.45)", tag: "answer" },
|
|
16448
|
+
dashboard_output: { icon: HeroIcons.ChartBarIcon, color: "text-emerald-300", bg: "bg-emerald-500/15", glow: "rgba(16,185,129,0.45)", tag: "dashboard" },
|
|
16449
|
+
rule: { icon: HeroIcons.BoltIcon, color: "text-rose-300", bg: "bg-rose-500/15", glow: "rgba(244,63,94,0.5)", tag: "rule" },
|
|
16450
|
+
document_extractor: { icon: HeroIcons.DocumentTextIcon, color: "text-amber-300", bg: "bg-amber-500/15", glow: "rgba(245,158,11,0.45)", tag: "extract" },
|
|
16451
|
+
model_provider: { icon: HeroIcons.CpuChipIcon, color: "text-violet-300", bg: "bg-violet-500/15", glow: "rgba(139,92,246,0.5)", tag: "model" },
|
|
16452
|
+
note: { icon: HeroIcons.DocumentTextIcon, color: "text-slate-300", bg: "bg-slate-500/15", glow: "rgba(100,116,139,0.4)", tag: "note" },
|
|
16453
|
+
group: { icon: HeroIcons.RectangleStackIcon, color: "text-slate-300", bg: "bg-slate-500/15", glow: "rgba(100,116,139,0.4)", tag: "group" }
|
|
16445
16454
|
};
|
|
16446
|
-
var FALLBACK_META = { icon: HeroIcons.BoltIcon, color: "text-gray-300", bg: "bg-gray-500/15", glow: "rgba(100,116,139,0.4)" };
|
|
16455
|
+
var FALLBACK_META = { icon: HeroIcons.BoltIcon, color: "text-gray-300", bg: "bg-gray-500/15", glow: "rgba(100,116,139,0.4)", tag: "node" };
|
|
16447
16456
|
function getNodeMeta(type) {
|
|
16448
16457
|
return NODE_TYPE_META[type] ?? FALLBACK_META;
|
|
16449
16458
|
}
|
|
16450
|
-
var NODE_W = 180;
|
|
16451
|
-
var NODE_H = 80;
|
|
16452
|
-
var PADDING = 24;
|
|
16453
16459
|
function DepartmentWorkflowDemo({
|
|
16454
16460
|
workflow,
|
|
16455
16461
|
stepDurationMs = 1100,
|
|
16456
16462
|
autoPlay = false,
|
|
16457
16463
|
className,
|
|
16458
16464
|
hideHeader = false,
|
|
16459
|
-
onComplete
|
|
16465
|
+
onComplete,
|
|
16466
|
+
theme
|
|
16460
16467
|
}) {
|
|
16461
|
-
const
|
|
16468
|
+
const t = { ...DEFAULT_THEME, ...theme };
|
|
16469
|
+
const { graph, steps, title, description, accentBadge, completionSummary } = workflow;
|
|
16462
16470
|
const [stepIndex, setStepIndex] = React12.useState(-1);
|
|
16463
16471
|
const intervalRef = React12.useRef(null);
|
|
16464
16472
|
const completedRef = React12.useRef(false);
|
|
@@ -16466,6 +16474,20 @@ function DepartmentWorkflowDemo({
|
|
|
16466
16474
|
const isIdle = stepIndex === -1;
|
|
16467
16475
|
const isRunning = stepIndex >= 0 && stepIndex < total - 1;
|
|
16468
16476
|
const isComplete = stepIndex === total - 1 && total > 0;
|
|
16477
|
+
const columns = React12.useMemo(() => {
|
|
16478
|
+
const stepByNode = /* @__PURE__ */ new Map();
|
|
16479
|
+
steps.forEach((s, idx) => {
|
|
16480
|
+
for (const id of s.nodes) {
|
|
16481
|
+
if (!stepByNode.has(id)) stepByNode.set(id, idx);
|
|
16482
|
+
}
|
|
16483
|
+
});
|
|
16484
|
+
const cols = steps.map(() => []);
|
|
16485
|
+
for (const node2 of graph.nodes) {
|
|
16486
|
+
const idx = stepByNode.get(node2.id);
|
|
16487
|
+
if (idx !== void 0) cols[idx].push(node2);
|
|
16488
|
+
}
|
|
16489
|
+
return cols.map((col, i) => ({ stepIndex: i, nodes: col, label: steps[i]?.label ?? "" })).filter((c) => c.nodes.length > 0);
|
|
16490
|
+
}, [graph.nodes, steps]);
|
|
16469
16491
|
const activeNodeIds = React12.useMemo(() => {
|
|
16470
16492
|
if (stepIndex < 0) return /* @__PURE__ */ new Set();
|
|
16471
16493
|
return new Set(steps[stepIndex]?.nodes ?? []);
|
|
@@ -16515,42 +16537,32 @@ function DepartmentWorkflowDemo({
|
|
|
16515
16537
|
if (intervalRef.current) clearInterval(intervalRef.current);
|
|
16516
16538
|
};
|
|
16517
16539
|
}, [autoPlay, handleRun]);
|
|
16518
|
-
const bounds = React12.useMemo(() => {
|
|
16519
|
-
if (graph.nodes.length === 0) return { width: 800, height: 400 };
|
|
16520
|
-
let maxX = 0;
|
|
16521
|
-
let maxY = 0;
|
|
16522
|
-
for (const node2 of graph.nodes) {
|
|
16523
|
-
if (node2.position.x > maxX) maxX = node2.position.x;
|
|
16524
|
-
if (node2.position.y > maxY) maxY = node2.position.y;
|
|
16525
|
-
}
|
|
16526
|
-
return { width: maxX + NODE_W + PADDING * 2, height: maxY + NODE_H + PADDING * 2 };
|
|
16527
|
-
}, [graph.nodes]);
|
|
16528
16540
|
const currentStepLabel = stepIndex >= 0 ? steps[stepIndex]?.label : "Ready to run";
|
|
16529
16541
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `liquid-surface rounded-2xl overflow-hidden ${className ?? ""}`, children: [
|
|
16530
16542
|
!hideHeader && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "border-b border-white/5 px-5 py-4 flex items-start gap-4", children: [
|
|
16531
16543
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 min-w-0", children: [
|
|
16532
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: `inline-flex items-center gap-1.5 rounded-full px-2.5 py-0.5 text-[10px] font-semibold uppercase tracking-wider ${accentBadge}`, children: [
|
|
16544
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: `inline-flex items-center gap-1.5 rounded-full px-2.5 py-0.5 text-[10px] font-semibold uppercase tracking-wider ${accentBadge ?? t.badge}`, children: [
|
|
16533
16545
|
/* @__PURE__ */ jsxRuntime.jsx(HeroIcons.BoltIcon, { className: "h-3 w-3" }),
|
|
16534
16546
|
"Astrlabe workflow"
|
|
16535
16547
|
] }),
|
|
16536
|
-
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mt-2 text-lg font-bold text-white", children: title }),
|
|
16537
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 text-xs text-gray-400", children: description })
|
|
16548
|
+
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mt-2 text-lg font-bold text-gray-900 dark:text-white", children: title }),
|
|
16549
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 text-xs text-gray-500 dark:text-gray-400", children: description })
|
|
16538
16550
|
] }),
|
|
16539
16551
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 shrink-0", children: [
|
|
16540
16552
|
stepIndex >= 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-0.5", children: steps.map((_, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
16541
16553
|
"div",
|
|
16542
16554
|
{
|
|
16543
|
-
className: `h-1 w-3 rounded-full transition-all duration-500 ${index < stepIndex || isComplete ? "bg-emerald-500" : index === stepIndex ?
|
|
16555
|
+
className: `h-1 w-3 rounded-full transition-all duration-500 ${index < stepIndex || isComplete ? "bg-emerald-500" : index === stepIndex ? `${t.stepActiveBg} animate-pulse` : "bg-white/10"}`
|
|
16544
16556
|
},
|
|
16545
16557
|
index
|
|
16546
16558
|
)) }),
|
|
16547
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "max-w-[180px] truncate text-[10px] text-gray-400", children: currentStepLabel }),
|
|
16559
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "max-w-[180px] truncate text-[10px] text-gray-500 dark:text-gray-400", children: currentStepLabel }),
|
|
16548
16560
|
isIdle ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
16549
16561
|
"button",
|
|
16550
16562
|
{
|
|
16551
16563
|
type: "button",
|
|
16552
16564
|
onClick: handleRun,
|
|
16553
|
-
className:
|
|
16565
|
+
className: `flex items-center gap-1 rounded-lg bg-gradient-to-r ${t.runButtonGradient} px-3 py-1 text-[11px] font-semibold text-white shadow-lg ${t.runButtonShadow} hover:scale-105 active:scale-95 transition-all`,
|
|
16554
16566
|
children: [
|
|
16555
16567
|
/* @__PURE__ */ jsxRuntime.jsx(HeroIcons.PlayIcon, { className: "h-3 w-3" }),
|
|
16556
16568
|
" Run"
|
|
@@ -16572,7 +16584,7 @@ function DepartmentWorkflowDemo({
|
|
|
16572
16584
|
{
|
|
16573
16585
|
type: "button",
|
|
16574
16586
|
onClick: handleRun,
|
|
16575
|
-
className: "flex items-center gap-1 rounded-lg border border-white/10 px-3 py-1 text-[11px] font-medium text-gray-300 hover:bg-white/5",
|
|
16587
|
+
className: "flex items-center gap-1 rounded-lg border border-white/10 px-3 py-1 text-[11px] font-medium text-gray-700 dark:text-gray-300 hover:bg-white/5",
|
|
16576
16588
|
children: [
|
|
16577
16589
|
/* @__PURE__ */ jsxRuntime.jsx(HeroIcons.ArrowPathIcon, { className: "h-3 w-3" }),
|
|
16578
16590
|
" Replay"
|
|
@@ -16581,80 +16593,74 @@ function DepartmentWorkflowDemo({
|
|
|
16581
16593
|
)
|
|
16582
16594
|
] })
|
|
16583
16595
|
] }),
|
|
16584
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "
|
|
16596
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "overflow-x-auto px-4 py-5", children: [
|
|
16585
16597
|
/* @__PURE__ */ jsxRuntime.jsx("style", { children: `
|
|
16586
|
-
@keyframes
|
|
16587
|
-
@keyframes
|
|
16598
|
+
@keyframes deptGlow { 0%, 100% { box-shadow: 0 0 12px var(--glow); } 50% { box-shadow: 0 0 28px var(--glow); } }
|
|
16599
|
+
@keyframes deptEdge { to { stroke-dashoffset: -16; } }
|
|
16588
16600
|
` }),
|
|
16589
|
-
/* @__PURE__ */ jsxRuntime.
|
|
16590
|
-
|
|
16591
|
-
|
|
16592
|
-
|
|
16593
|
-
|
|
16594
|
-
|
|
16595
|
-
const y1 = source.position.y + NODE_H / 2;
|
|
16596
|
-
const x2 = target.position.x;
|
|
16597
|
-
const y2 = target.position.y + NODE_H / 2;
|
|
16598
|
-
const midX = (x1 + x2) / 2;
|
|
16599
|
-
const isActive = activeNodeIds.has(edge2.source) || completedNodeIds.has(edge2.source) && (activeNodeIds.has(edge2.target) || completedNodeIds.has(edge2.target));
|
|
16600
|
-
const isComplete2 = completedNodeIds.has(edge2.source) && completedNodeIds.has(edge2.target);
|
|
16601
|
-
const stroke = isComplete2 ? "#10b981" : isActive ? "#818cf8" : "#334155";
|
|
16602
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("g", { children: [
|
|
16601
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-stretch gap-0 min-w-full", children: columns.map((col, colIdx) => {
|
|
16602
|
+
const isStepActive = stepIndex === col.stepIndex;
|
|
16603
|
+
const isStepDone = stepIndex > col.stepIndex;
|
|
16604
|
+
const showsConnector = colIdx > 0;
|
|
16605
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex shrink-0 items-stretch", children: [
|
|
16606
|
+
showsConnector && /* @__PURE__ */ jsxRuntime.jsxs("svg", { width: "36", height: "100", className: "self-center shrink-0", viewBox: "0 0 36 100", children: [
|
|
16603
16607
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
16604
|
-
"
|
|
16608
|
+
"line",
|
|
16605
16609
|
{
|
|
16606
|
-
|
|
16607
|
-
|
|
16608
|
-
|
|
16609
|
-
|
|
16610
|
+
x1: "0",
|
|
16611
|
+
y1: "50",
|
|
16612
|
+
x2: "36",
|
|
16613
|
+
y2: "50",
|
|
16614
|
+
stroke: isStepDone ? t.completeEdgeStroke : isStepActive ? t.activeEdgeStroke : "#334155",
|
|
16615
|
+
strokeWidth: "2",
|
|
16610
16616
|
strokeDasharray: "6 4",
|
|
16611
|
-
style: { animation:
|
|
16617
|
+
style: { animation: isStepActive ? "deptEdge 0.8s linear infinite" : "none" }
|
|
16612
16618
|
}
|
|
16613
16619
|
),
|
|
16614
|
-
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx:
|
|
16615
|
-
] },
|
|
16616
|
-
|
|
16617
|
-
|
|
16618
|
-
|
|
16619
|
-
|
|
16620
|
-
|
|
16621
|
-
|
|
16622
|
-
|
|
16623
|
-
|
|
16624
|
-
|
|
16625
|
-
|
|
16626
|
-
|
|
16627
|
-
|
|
16628
|
-
|
|
16629
|
-
|
|
16630
|
-
|
|
16631
|
-
|
|
16632
|
-
|
|
16633
|
-
|
|
16634
|
-
|
|
16635
|
-
|
|
16636
|
-
|
|
16637
|
-
|
|
16638
|
-
|
|
16639
|
-
|
|
16640
|
-
|
|
16641
|
-
|
|
16642
|
-
|
|
16643
|
-
|
|
16644
|
-
|
|
16620
|
+
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "34", cy: "50", r: "3", fill: isStepDone ? t.completeEdgeStroke : isStepActive ? t.activeEdgeStroke : "#334155" })
|
|
16621
|
+
] }),
|
|
16622
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex w-[160px] flex-col gap-2 shrink-0", children: [
|
|
16623
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-[8px] font-bold uppercase tracking-wider text-gray-400 dark:text-gray-500 text-center", children: [
|
|
16624
|
+
"Step ",
|
|
16625
|
+
col.stepIndex + 1
|
|
16626
|
+
] }),
|
|
16627
|
+
col.nodes.map((node2) => {
|
|
16628
|
+
const status = getStatus(node2);
|
|
16629
|
+
const meta = getNodeMeta(node2.type);
|
|
16630
|
+
const statusClass = status === "running" ? `scale-[1.04] ring-2 ${t.activeRing}` : status === "complete" ? "ring-1 ring-emerald-500/40" : "opacity-50";
|
|
16631
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
16632
|
+
"div",
|
|
16633
|
+
{
|
|
16634
|
+
className: `liquid-surface rounded-xl p-2.5 transition-all duration-500 ${statusClass}`,
|
|
16635
|
+
style: status === "running" ? { "--glow": meta.glow, animation: "deptGlow 1.4s ease-in-out infinite" } : void 0,
|
|
16636
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
16637
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: `flex h-8 w-8 shrink-0 items-center justify-center rounded-lg ${meta.bg}`, children: /* @__PURE__ */ jsxRuntime.jsx(meta.icon, { className: `h-4 w-4 ${meta.color}` }) }),
|
|
16638
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
16639
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "truncate text-[11px] font-semibold text-gray-900 dark:text-white", children: node2.data.label }),
|
|
16640
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1 text-[8px] text-gray-500 dark:text-gray-500", children: [
|
|
16641
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate font-mono", children: meta.tag }),
|
|
16642
|
+
status === "running" && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: `flex items-center gap-0.5 ${t.stepActiveBg.replace("bg-", "text-")}`, children: [
|
|
16643
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "h-1 w-1 rounded-full bg-current animate-pulse" }),
|
|
16644
|
+
"ativo"
|
|
16645
|
+
] }),
|
|
16646
|
+
status === "complete" && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex items-center gap-0.5 text-emerald-500", children: [
|
|
16647
|
+
/* @__PURE__ */ jsxRuntime.jsx(HeroIcons.CheckCircleIcon, { className: "h-2.5 w-2.5" }),
|
|
16648
|
+
"ok"
|
|
16649
|
+
] })
|
|
16650
|
+
] })
|
|
16645
16651
|
] })
|
|
16646
16652
|
] })
|
|
16647
|
-
|
|
16648
|
-
|
|
16649
|
-
|
|
16650
|
-
|
|
16651
|
-
)
|
|
16652
|
-
})
|
|
16653
|
-
|
|
16653
|
+
},
|
|
16654
|
+
node2.id
|
|
16655
|
+
);
|
|
16656
|
+
})
|
|
16657
|
+
] })
|
|
16658
|
+
] }, col.stepIndex);
|
|
16659
|
+
}) })
|
|
16654
16660
|
] }),
|
|
16655
16661
|
isComplete && completionSummary && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "border-t border-white/5 bg-emerald-500/[0.06] px-5 py-3 flex items-center gap-2", children: [
|
|
16656
|
-
/* @__PURE__ */ jsxRuntime.jsx(HeroIcons.CheckCircleIcon, { className: "h-4 w-4 shrink-0 text-emerald-
|
|
16657
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[11px] font-semibold text-emerald-300", children: completionSummary })
|
|
16662
|
+
/* @__PURE__ */ jsxRuntime.jsx(HeroIcons.CheckCircleIcon, { className: "h-4 w-4 shrink-0 text-emerald-500" }),
|
|
16663
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[11px] font-semibold text-emerald-700 dark:text-emerald-300", children: completionSummary })
|
|
16658
16664
|
] })
|
|
16659
16665
|
] });
|
|
16660
16666
|
}
|
|
@@ -16899,6 +16905,160 @@ var customerAnalyticsWorkflow = {
|
|
|
16899
16905
|
step("Publishing analytics dashboard\u2026", "dashboard")
|
|
16900
16906
|
]
|
|
16901
16907
|
};
|
|
16908
|
+
var payrollWorkflow = {
|
|
16909
|
+
title: "Folha de pagamento \u2014 fechamento eSocial",
|
|
16910
|
+
description: "Ponto \u2192 c\xE1lculos paralelos (FGTS / INSS / IRRF) \u2192 encargos \u2192 S-1200 \u2192 dashboard.",
|
|
16911
|
+
accentBadge: "bg-cyan-500/15 text-cyan-300",
|
|
16912
|
+
completionSummary: "142 holerites processados \xB7 R$ 890k bruto \xB7 eSocial S-1200 transmitido",
|
|
16913
|
+
graph: buildGraph(
|
|
16914
|
+
[
|
|
16915
|
+
node("start", "start", "Fechamento mensal", 0, 120),
|
|
16916
|
+
node("attendance", "datasource", "Buscar ponto", 220, 120),
|
|
16917
|
+
node("fgts", "code", "Calcular FGTS", 460, 10),
|
|
16918
|
+
node("inss", "code", "Calcular INSS", 460, 120),
|
|
16919
|
+
node("irrf", "code", "Calcular IRRF", 460, 230),
|
|
16920
|
+
node("aggregate", "variable_aggregator", "Agregar folha", 700, 120),
|
|
16921
|
+
node("esocial", "template_transform", "Gerar S-1200", 940, 120),
|
|
16922
|
+
node("transmit", "http_request", "Transmitir eSocial", 1180, 120),
|
|
16923
|
+
node("report", "dashboard_output", "Dashboard folha", 1420, 120)
|
|
16924
|
+
],
|
|
16925
|
+
[
|
|
16926
|
+
edge("start", "attendance"),
|
|
16927
|
+
edge("attendance", "fgts"),
|
|
16928
|
+
edge("attendance", "inss"),
|
|
16929
|
+
edge("attendance", "irrf"),
|
|
16930
|
+
edge("fgts", "aggregate"),
|
|
16931
|
+
edge("inss", "aggregate"),
|
|
16932
|
+
edge("irrf", "aggregate"),
|
|
16933
|
+
edge("aggregate", "esocial"),
|
|
16934
|
+
edge("esocial", "transmit"),
|
|
16935
|
+
edge("transmit", "report")
|
|
16936
|
+
]
|
|
16937
|
+
),
|
|
16938
|
+
steps: [
|
|
16939
|
+
step("Iniciando fechamento mensal\u2026", "start"),
|
|
16940
|
+
step("Buscando registros de ponto\u2026", "attendance"),
|
|
16941
|
+
step("Calculando FGTS, INSS e IRRF em paralelo\u2026", "fgts", "inss", "irrf"),
|
|
16942
|
+
step("Agregando folha consolidada\u2026", "aggregate"),
|
|
16943
|
+
step("Gerando evento S-1200\u2026", "esocial"),
|
|
16944
|
+
step("Transmitindo ao eSocial\u2026", "transmit"),
|
|
16945
|
+
step("Publicando dashboard da folha\u2026", "report")
|
|
16946
|
+
]
|
|
16947
|
+
};
|
|
16948
|
+
var supportWorkflow = {
|
|
16949
|
+
title: "Atendimento \u2014 ticket com SLA",
|
|
16950
|
+
description: "Ticket \u2192 paralelo (hist\xF3rico do cliente, status do pedido, base de conhecimento) \u2192 classificar \u2192 rascunhar \u2192 revisar \u2192 responder.",
|
|
16951
|
+
accentBadge: "bg-teal-500/15 text-teal-300",
|
|
16952
|
+
completionSummary: "Ticket respondido em 2min \xB7 CSAT esperado 4.8/5 \xB7 SLA cumprido",
|
|
16953
|
+
graph: buildGraph(
|
|
16954
|
+
[
|
|
16955
|
+
node("start", "start", "Ticket #847", 0, 120),
|
|
16956
|
+
node("history", "datasource", "Hist\xF3rico cliente", 220, 10),
|
|
16957
|
+
node("order", "datasource", "Status pedido", 220, 120),
|
|
16958
|
+
node("kb", "knowledge_base", "Base de conhecimento", 220, 230),
|
|
16959
|
+
node("classify", "question_classifier", "Classificar inten\xE7\xE3o", 460, 120),
|
|
16960
|
+
node("gate", "if_else", "Urgente?", 700, 120),
|
|
16961
|
+
node("draft", "agent", "Rascunhar resposta", 940, 120),
|
|
16962
|
+
node("review", "agent", "Revisor humano", 1180, 120),
|
|
16963
|
+
node("send", "http_request", "Enviar resposta", 1420, 120)
|
|
16964
|
+
],
|
|
16965
|
+
[
|
|
16966
|
+
edge("start", "history"),
|
|
16967
|
+
edge("start", "order"),
|
|
16968
|
+
edge("start", "kb"),
|
|
16969
|
+
edge("history", "classify"),
|
|
16970
|
+
edge("order", "classify"),
|
|
16971
|
+
edge("kb", "classify"),
|
|
16972
|
+
edge("classify", "gate"),
|
|
16973
|
+
edge("gate", "draft"),
|
|
16974
|
+
edge("draft", "review"),
|
|
16975
|
+
edge("review", "send")
|
|
16976
|
+
]
|
|
16977
|
+
),
|
|
16978
|
+
steps: [
|
|
16979
|
+
step("Ticket recebido\u2026", "start"),
|
|
16980
|
+
step("Buscando contexto em paralelo\u2026", "history", "order", "kb"),
|
|
16981
|
+
step("Classificando inten\xE7\xE3o e prioridade\u2026", "classify"),
|
|
16982
|
+
step("Avaliando SLA\u2026", "gate"),
|
|
16983
|
+
step("Rascunhando resposta personalizada\u2026", "draft"),
|
|
16984
|
+
step("Revis\xE3o humana (opcional)\u2026", "review"),
|
|
16985
|
+
step("Enviando resposta ao cliente\u2026", "send")
|
|
16986
|
+
]
|
|
16987
|
+
};
|
|
16988
|
+
var manufacturingWorkflow = {
|
|
16989
|
+
title: "Produ\xE7\xE3o \u2014 planejamento MRP",
|
|
16990
|
+
description: "Demanda \u2192 BOM \u2192 verificar estoque \u2192 alocar centros de trabalho \u2192 QC \u2192 liberar OPs.",
|
|
16991
|
+
accentBadge: "bg-violet-500/15 text-violet-300",
|
|
16992
|
+
completionSummary: "34 OPs liberadas \xB7 OEE 87% \xB7 3 desvios de QC tratados automaticamente",
|
|
16993
|
+
graph: buildGraph(
|
|
16994
|
+
[
|
|
16995
|
+
node("start", "start", "Trigger MRP semanal", 0, 120),
|
|
16996
|
+
node("demand", "datasource", "Buscar demanda", 220, 120),
|
|
16997
|
+
node("bom", "entity", "Explodir BOM", 460, 120),
|
|
16998
|
+
node("stock", "code", "Checar estoque", 700, 10),
|
|
16999
|
+
node("schedule", "agent", "Alocar centros", 700, 230),
|
|
17000
|
+
node("release", "iteration", "Liberar OPs", 940, 120),
|
|
17001
|
+
node("qc", "agent", "Checkpoint QC", 1180, 120),
|
|
17002
|
+
node("report", "dashboard_output", "Painel produ\xE7\xE3o", 1420, 120)
|
|
17003
|
+
],
|
|
17004
|
+
[
|
|
17005
|
+
edge("start", "demand"),
|
|
17006
|
+
edge("demand", "bom"),
|
|
17007
|
+
edge("bom", "stock"),
|
|
17008
|
+
edge("bom", "schedule"),
|
|
17009
|
+
edge("stock", "release"),
|
|
17010
|
+
edge("schedule", "release"),
|
|
17011
|
+
edge("release", "qc"),
|
|
17012
|
+
edge("qc", "report")
|
|
17013
|
+
]
|
|
17014
|
+
),
|
|
17015
|
+
steps: [
|
|
17016
|
+
step("Disparo semanal do MRP\u2026", "start"),
|
|
17017
|
+
step("Puxando demanda prevista\u2026", "demand"),
|
|
17018
|
+
step("Explodindo lista de materiais\u2026", "bom"),
|
|
17019
|
+
step("Checando estoque e alocando capacidade em paralelo\u2026", "stock", "schedule"),
|
|
17020
|
+
step("Liberando 34 ordens de produ\xE7\xE3o\u2026", "release"),
|
|
17021
|
+
step("Rodando checkpoints de qualidade\u2026", "qc"),
|
|
17022
|
+
step("Publicando painel da produ\xE7\xE3o\u2026", "report")
|
|
17023
|
+
]
|
|
17024
|
+
};
|
|
17025
|
+
var logisticsWorkflow = {
|
|
17026
|
+
title: "Log\xEDstica \u2014 roteiriza\xE7\xE3o inteligente",
|
|
17027
|
+
description: "Pedidos \u2192 paralelo (tr\xE2nsito, frota, janelas) \u2192 otimizador \u2192 despacho \u2192 tracking.",
|
|
17028
|
+
accentBadge: "bg-sky-500/15 text-sky-300",
|
|
17029
|
+
completionSummary: "28 entregas roteirizadas \xB7 -12% km \xB7 94% on-time esperado",
|
|
17030
|
+
graph: buildGraph(
|
|
17031
|
+
[
|
|
17032
|
+
node("start", "start", "28 pedidos SP", 0, 120),
|
|
17033
|
+
node("traffic", "http_request", "Tr\xE2nsito tempo real", 220, 10),
|
|
17034
|
+
node("fleet", "datasource", "Frota dispon\xEDvel", 220, 120),
|
|
17035
|
+
node("windows", "datasource", "Janelas de entrega", 220, 230),
|
|
17036
|
+
node("optimize", "agent", "Otimizador de rotas", 460, 120),
|
|
17037
|
+
node("dispatch", "iteration", "Despachar ve\xEDculos", 700, 120),
|
|
17038
|
+
node("notify", "http_request", "Notificar clientes", 940, 120),
|
|
17039
|
+
node("track", "dashboard_output", "Painel de tracking", 1180, 120)
|
|
17040
|
+
],
|
|
17041
|
+
[
|
|
17042
|
+
edge("start", "traffic"),
|
|
17043
|
+
edge("start", "fleet"),
|
|
17044
|
+
edge("start", "windows"),
|
|
17045
|
+
edge("traffic", "optimize"),
|
|
17046
|
+
edge("fleet", "optimize"),
|
|
17047
|
+
edge("windows", "optimize"),
|
|
17048
|
+
edge("optimize", "dispatch"),
|
|
17049
|
+
edge("dispatch", "notify"),
|
|
17050
|
+
edge("notify", "track")
|
|
17051
|
+
]
|
|
17052
|
+
),
|
|
17053
|
+
steps: [
|
|
17054
|
+
step("28 pedidos entraram na fila\u2026", "start"),
|
|
17055
|
+
step("Consultando tr\xE2nsito, frota e janelas em paralelo\u2026", "traffic", "fleet", "windows"),
|
|
17056
|
+
step("Otimizador montando rotas\u2026", "optimize"),
|
|
17057
|
+
step("Despachando ve\xEDculos\u2026", "dispatch"),
|
|
17058
|
+
step("Notificando clientes via WhatsApp\u2026", "notify"),
|
|
17059
|
+
step("Publicando painel de tracking\u2026", "track")
|
|
17060
|
+
]
|
|
17061
|
+
};
|
|
16902
17062
|
var lgpdWorkflow = {
|
|
16903
17063
|
title: "LGPD compliance \u2014 privacy sweep",
|
|
16904
17064
|
description: "Scan audit logs \u2192 detect PII access violations \u2192 remediate \u2192 notify DPO \u2192 report.",
|
|
@@ -16934,6 +17094,32 @@ var lgpdWorkflow = {
|
|
|
16934
17094
|
step("Filing compliance report\u2026", "report")
|
|
16935
17095
|
]
|
|
16936
17096
|
};
|
|
17097
|
+
var DEFAULT_ASSISTANT_THEME = {
|
|
17098
|
+
brandGradient: "from-blue-500 to-purple-600",
|
|
17099
|
+
inputAvatar: "from-blue-500 to-purple-600",
|
|
17100
|
+
inputBorder: "border-indigo-300/40 dark:border-indigo-400/30",
|
|
17101
|
+
inputCursor: "bg-indigo-500",
|
|
17102
|
+
stageActiveBadge: "bg-indigo-500/15 text-indigo-600 dark:text-indigo-300",
|
|
17103
|
+
progressActiveBar: "bg-indigo-500",
|
|
17104
|
+
workflow: {}
|
|
17105
|
+
};
|
|
17106
|
+
var koriAssistantTheme = {
|
|
17107
|
+
brandGradient: "from-amber-500 to-orange-600",
|
|
17108
|
+
inputAvatar: "from-amber-500 to-orange-600",
|
|
17109
|
+
inputBorder: "border-amber-300/50 dark:border-amber-400/40",
|
|
17110
|
+
inputCursor: "bg-amber-500",
|
|
17111
|
+
stageActiveBadge: "bg-amber-500/15 text-amber-700 dark:text-amber-300",
|
|
17112
|
+
progressActiveBar: "bg-amber-500",
|
|
17113
|
+
workflow: {
|
|
17114
|
+
runButtonGradient: "from-amber-500 to-orange-600",
|
|
17115
|
+
runButtonShadow: "shadow-amber-500/25",
|
|
17116
|
+
stepActiveBg: "bg-amber-500",
|
|
17117
|
+
activeRing: "ring-amber-500/60",
|
|
17118
|
+
activeEdgeStroke: "#f59e0b",
|
|
17119
|
+
completeEdgeStroke: "#10b981",
|
|
17120
|
+
badge: "bg-amber-500/15 text-amber-700 dark:text-amber-300"
|
|
17121
|
+
}
|
|
17122
|
+
};
|
|
16937
17123
|
function DepartmentAssistantDemo({
|
|
16938
17124
|
flows,
|
|
16939
17125
|
initialIndex = 0,
|
|
@@ -16941,8 +17127,11 @@ function DepartmentAssistantDemo({
|
|
|
16941
17127
|
dashboardHoldMs = 1e4,
|
|
16942
17128
|
typingSpeedMs = 32,
|
|
16943
17129
|
workflowStepMs = 1050,
|
|
17130
|
+
theme,
|
|
17131
|
+
brandName = "Kori AI Assistant",
|
|
16944
17132
|
className
|
|
16945
17133
|
}) {
|
|
17134
|
+
const t = { ...DEFAULT_ASSISTANT_THEME, ...theme, workflow: { ...DEFAULT_ASSISTANT_THEME.workflow, ...theme?.workflow } };
|
|
16946
17135
|
const [flowIndex, setFlowIndex] = React12.useState(initialIndex);
|
|
16947
17136
|
const [stage, setStage] = React12.useState("input");
|
|
16948
17137
|
const [typed, setTyped] = React12.useState("");
|
|
@@ -16958,25 +17147,25 @@ function DepartmentAssistantDemo({
|
|
|
16958
17147
|
setTyped(flow.prompt.slice(0, i));
|
|
16959
17148
|
} else {
|
|
16960
17149
|
clearInterval(interval);
|
|
16961
|
-
const
|
|
16962
|
-
return () => clearTimeout(
|
|
17150
|
+
const timer = setTimeout(() => setStage("workflow"), 700);
|
|
17151
|
+
return () => clearTimeout(timer);
|
|
16963
17152
|
}
|
|
16964
17153
|
return void 0;
|
|
16965
17154
|
}, typingSpeedMs);
|
|
16966
17155
|
return () => clearInterval(interval);
|
|
16967
17156
|
}, [stage, flow.prompt, typingSpeedMs]);
|
|
16968
17157
|
const handleWorkflowComplete = React12.useCallback(() => {
|
|
16969
|
-
const
|
|
16970
|
-
rotateTimerRef.current =
|
|
17158
|
+
const timer = setTimeout(() => setStage("dashboard"), 1200);
|
|
17159
|
+
rotateTimerRef.current = timer;
|
|
16971
17160
|
}, []);
|
|
16972
17161
|
React12.useEffect(() => {
|
|
16973
17162
|
if (stage !== "dashboard") return void 0;
|
|
16974
17163
|
if (!autoRotate) return void 0;
|
|
16975
|
-
const
|
|
17164
|
+
const timer = setTimeout(() => {
|
|
16976
17165
|
setFlowIndex((prev) => (prev + 1) % flows.length);
|
|
16977
17166
|
setStage("input");
|
|
16978
17167
|
}, dashboardHoldMs);
|
|
16979
|
-
return () => clearTimeout(
|
|
17168
|
+
return () => clearTimeout(timer);
|
|
16980
17169
|
}, [stage, autoRotate, dashboardHoldMs, flows.length]);
|
|
16981
17170
|
const handleDepartmentSelect = React12.useCallback((next) => {
|
|
16982
17171
|
if (rotateTimerRef.current) clearTimeout(rotateTimerRef.current);
|
|
@@ -16987,8 +17176,8 @@ function DepartmentAssistantDemo({
|
|
|
16987
17176
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `liquid-surface rounded-3xl overflow-hidden ${className ?? ""}`, children: [
|
|
16988
17177
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "border-b border-white/5 px-4 py-3 flex flex-wrap items-center gap-2", children: [
|
|
16989
17178
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 pr-3", children: [
|
|
16990
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className:
|
|
16991
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-bold text-gray-900 dark:text-white", children:
|
|
17179
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: `flex h-7 w-7 items-center justify-center rounded-lg bg-gradient-to-br ${t.brandGradient}`, children: /* @__PURE__ */ jsxRuntime.jsx(HeroIcons.CpuChipIcon, { className: "h-4 w-4 text-white" }) }),
|
|
17180
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-bold text-gray-900 dark:text-white", children: brandName })
|
|
16992
17181
|
] }),
|
|
16993
17182
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1" }),
|
|
16994
17183
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap items-center gap-1.5", children: flows.map((entry, index) => {
|
|
@@ -16998,7 +17187,7 @@ function DepartmentAssistantDemo({
|
|
|
16998
17187
|
{
|
|
16999
17188
|
type: "button",
|
|
17000
17189
|
onClick: () => handleDepartmentSelect(index),
|
|
17001
|
-
className: `group inline-flex items-center gap-1.5 rounded-full px-3 py-1.5 text-[11px] font-semibold transition-all ${isActive ? `bg-gradient-to-r ${entry.accent} text-white shadow-lg
|
|
17190
|
+
className: `group inline-flex items-center gap-1.5 rounded-full px-3 py-1.5 text-[11px] font-semibold transition-all ${isActive ? `bg-gradient-to-r ${entry.accent} text-white shadow-lg scale-105` : "text-gray-600 dark:text-gray-400 hover:bg-white/5 hover:text-gray-900 dark:hover:text-white"}`,
|
|
17002
17191
|
children: [
|
|
17003
17192
|
/* @__PURE__ */ jsxRuntime.jsx(entry.icon, { className: "h-3.5 w-3.5" }),
|
|
17004
17193
|
entry.name
|
|
@@ -17009,11 +17198,11 @@ function DepartmentAssistantDemo({
|
|
|
17009
17198
|
}) })
|
|
17010
17199
|
] }),
|
|
17011
17200
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "border-b border-white/5 px-6 py-3 flex items-center gap-3 text-[11px]", children: [
|
|
17012
|
-
/* @__PURE__ */ jsxRuntime.jsx(StageChip, { label: "Ask", stageIndex, mine: 0 }),
|
|
17201
|
+
/* @__PURE__ */ jsxRuntime.jsx(StageChip, { label: "Ask", stageIndex, mine: 0, activeBadge: t.stageActiveBadge }),
|
|
17013
17202
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-px flex-1 bg-gradient-to-r from-white/10 to-white/5" }),
|
|
17014
|
-
/* @__PURE__ */ jsxRuntime.jsx(StageChip, { label: "Orchestrate", stageIndex, mine: 1 }),
|
|
17203
|
+
/* @__PURE__ */ jsxRuntime.jsx(StageChip, { label: "Orchestrate", stageIndex, mine: 1, activeBadge: t.stageActiveBadge }),
|
|
17015
17204
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-px flex-1 bg-gradient-to-r from-white/5 to-white/10" }),
|
|
17016
|
-
/* @__PURE__ */ jsxRuntime.jsx(StageChip, { label: "Deliver", stageIndex, mine: 2 })
|
|
17205
|
+
/* @__PURE__ */ jsxRuntime.jsx(StageChip, { label: "Deliver", stageIndex, mine: 2, activeBadge: t.stageActiveBadge })
|
|
17017
17206
|
] }),
|
|
17018
17207
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative", style: { minHeight: 600 }, children: /* @__PURE__ */ jsxRuntime.jsxs(framerMotion.AnimatePresence, { mode: "wait", children: [
|
|
17019
17208
|
stage === "input" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -17024,7 +17213,17 @@ function DepartmentAssistantDemo({
|
|
|
17024
17213
|
exit: { opacity: 0, y: -12 },
|
|
17025
17214
|
transition: { duration: 0.45 },
|
|
17026
17215
|
className: "flex items-center justify-center p-10",
|
|
17027
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
17216
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
17217
|
+
InputStage3,
|
|
17218
|
+
{
|
|
17219
|
+
prompt: typed,
|
|
17220
|
+
department: flow.name,
|
|
17221
|
+
agents: flow.agents,
|
|
17222
|
+
avatarGradient: t.inputAvatar,
|
|
17223
|
+
borderClass: t.inputBorder,
|
|
17224
|
+
cursorClass: t.inputCursor
|
|
17225
|
+
}
|
|
17226
|
+
)
|
|
17028
17227
|
},
|
|
17029
17228
|
`input-${flow.id}`
|
|
17030
17229
|
),
|
|
@@ -17043,7 +17242,8 @@ function DepartmentAssistantDemo({
|
|
|
17043
17242
|
autoPlay: true,
|
|
17044
17243
|
hideHeader: true,
|
|
17045
17244
|
stepDurationMs: workflowStepMs,
|
|
17046
|
-
onComplete: handleWorkflowComplete
|
|
17245
|
+
onComplete: handleWorkflowComplete,
|
|
17246
|
+
theme: t.workflow
|
|
17047
17247
|
},
|
|
17048
17248
|
`wf-${flow.id}`
|
|
17049
17249
|
)
|
|
@@ -17065,7 +17265,7 @@ function DepartmentAssistantDemo({
|
|
|
17065
17265
|
] }) }),
|
|
17066
17266
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between border-t border-white/5 px-5 py-3", children: [
|
|
17067
17267
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 text-[11px] text-gray-500 dark:text-gray-400", children: [
|
|
17068
|
-
/* @__PURE__ */ jsxRuntime.jsx(HeroIcons.BoltIcon, { className:
|
|
17268
|
+
/* @__PURE__ */ jsxRuntime.jsx(HeroIcons.BoltIcon, { className: `h-3.5 w-3.5 ${t.progressActiveBar.replace("bg-", "text-")}` }),
|
|
17069
17269
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "font-medium", children: [
|
|
17070
17270
|
stage === "input" && "Usu\xE1rio envia um pedido ao assistente\u2026",
|
|
17071
17271
|
stage === "workflow" && "Astrlabe orquestrando agentes e datasources\u2026",
|
|
@@ -17075,20 +17275,20 @@ function DepartmentAssistantDemo({
|
|
|
17075
17275
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-1", children: flows.map((entry, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
17076
17276
|
"span",
|
|
17077
17277
|
{
|
|
17078
|
-
className: `h-1 rounded-full transition-all duration-500 ${index === flowIndex ?
|
|
17278
|
+
className: `h-1 rounded-full transition-all duration-500 ${index === flowIndex ? `w-8 ${t.progressActiveBar}` : "w-1.5 bg-gray-300 dark:bg-white/10"}`
|
|
17079
17279
|
},
|
|
17080
17280
|
entry.id
|
|
17081
17281
|
)) })
|
|
17082
17282
|
] })
|
|
17083
17283
|
] });
|
|
17084
17284
|
}
|
|
17085
|
-
function StageChip({ label, stageIndex, mine }) {
|
|
17285
|
+
function StageChip({ label, stageIndex, mine, activeBadge }) {
|
|
17086
17286
|
const isActive = stageIndex === mine;
|
|
17087
17287
|
const isDone = stageIndex > mine;
|
|
17088
17288
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
17089
17289
|
"div",
|
|
17090
17290
|
{
|
|
17091
|
-
className: `inline-flex items-center gap-1.5 rounded-full px-2.5 py-0.5 font-semibold transition-colors ${isActive ?
|
|
17291
|
+
className: `inline-flex items-center gap-1.5 rounded-full px-2.5 py-0.5 font-semibold transition-colors ${isActive ? activeBadge : isDone ? "bg-emerald-500/10 text-emerald-600 dark:text-emerald-300" : "bg-white/5 text-gray-500 dark:text-gray-500"}`,
|
|
17092
17292
|
children: [
|
|
17093
17293
|
isDone ? /* @__PURE__ */ jsxRuntime.jsx(HeroIcons.CheckCircleIcon, { className: "h-3.5 w-3.5" }) : isActive ? /* @__PURE__ */ jsxRuntime.jsx(HeroIcons.BoltIcon, { className: "h-3.5 w-3.5 animate-pulse" }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "h-1.5 w-1.5 rounded-full bg-current" }),
|
|
17094
17294
|
label
|
|
@@ -17096,10 +17296,17 @@ function StageChip({ label, stageIndex, mine }) {
|
|
|
17096
17296
|
}
|
|
17097
17297
|
);
|
|
17098
17298
|
}
|
|
17099
|
-
function InputStage3({
|
|
17299
|
+
function InputStage3({
|
|
17300
|
+
prompt,
|
|
17301
|
+
department,
|
|
17302
|
+
agents,
|
|
17303
|
+
avatarGradient,
|
|
17304
|
+
borderClass,
|
|
17305
|
+
cursorClass
|
|
17306
|
+
}) {
|
|
17100
17307
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full max-w-2xl", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-2xl border border-white/10 bg-white/70 dark:bg-zinc-900/70 p-8 shadow-2xl backdrop-blur-sm", children: [
|
|
17101
17308
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-6 flex items-center gap-3", children: [
|
|
17102
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className:
|
|
17309
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: `h-12 w-12 rounded-xl bg-gradient-to-br ${avatarGradient} flex items-center justify-center`, children: /* @__PURE__ */ jsxRuntime.jsx(HeroIcons.SparklesIcon, { className: "h-6 w-6 text-white" }) }),
|
|
17103
17310
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
17104
17311
|
/* @__PURE__ */ jsxRuntime.jsxs("h3", { className: "text-base font-bold text-gray-900 dark:text-white", children: [
|
|
17105
17312
|
"Assistente \u2014 ",
|
|
@@ -17108,17 +17315,17 @@ function InputStage3({ prompt, department, agents }) {
|
|
|
17108
17315
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-gray-500 dark:text-gray-400", children: "Digite um pedido e veja os agentes atuarem." })
|
|
17109
17316
|
] })
|
|
17110
17317
|
] }),
|
|
17111
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className:
|
|
17318
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: `rounded-xl border-2 ${borderClass} bg-white/40 dark:bg-white/[0.02] p-4 min-h-[120px]`, children: /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-base font-medium text-gray-900 dark:text-white", children: [
|
|
17112
17319
|
prompt,
|
|
17113
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className:
|
|
17320
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: `ml-1 inline-block w-0.5 h-5 ${cursorClass} animate-pulse` })
|
|
17114
17321
|
] }) }),
|
|
17115
17322
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-4 flex items-center gap-2 text-xs text-gray-500 dark:text-gray-400", children: [
|
|
17116
|
-
/* @__PURE__ */ jsxRuntime.jsx(HeroIcons.BoltIcon, { className:
|
|
17323
|
+
/* @__PURE__ */ jsxRuntime.jsx(HeroIcons.BoltIcon, { className: `h-3.5 w-3.5 ${cursorClass.replace("bg-", "text-")}` }),
|
|
17117
17324
|
"Agentes prontos:",
|
|
17118
17325
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1.5", children: agents.map((agent) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
17119
17326
|
"span",
|
|
17120
17327
|
{
|
|
17121
|
-
className: "inline-flex items-center rounded-full border border-
|
|
17328
|
+
className: "inline-flex items-center rounded-full border border-white/10 bg-white/60 dark:bg-white/[0.04] px-2 py-0.5 text-[10px] font-semibold text-gray-700 dark:text-gray-200",
|
|
17122
17329
|
children: agent
|
|
17123
17330
|
},
|
|
17124
17331
|
agent
|
|
@@ -25091,14 +25298,18 @@ exports.isValidThailandProvince = isValidThailandProvince;
|
|
|
25091
25298
|
exports.isValidTurkeyProvince = isValidTurkeyProvince;
|
|
25092
25299
|
exports.isValidUKNation = isValidUKNation;
|
|
25093
25300
|
exports.isValidUsState = isValidUsState;
|
|
25301
|
+
exports.koriAssistantTheme = koriAssistantTheme;
|
|
25094
25302
|
exports.koriDepartmentFlows = koriDepartmentFlows;
|
|
25095
25303
|
exports.lgpdWorkflow = lgpdWorkflow;
|
|
25096
25304
|
exports.listItem = listItem;
|
|
25097
25305
|
exports.listItemReduced = listItemReduced;
|
|
25306
|
+
exports.logisticsWorkflow = logisticsWorkflow;
|
|
25307
|
+
exports.manufacturingWorkflow = manufacturingWorkflow;
|
|
25098
25308
|
exports.marketingWorkflow = marketingWorkflow;
|
|
25099
25309
|
exports.notificationBanner = notificationBanner;
|
|
25100
25310
|
exports.notificationBannerReduced = notificationBannerReduced;
|
|
25101
25311
|
exports.pageControlDot = pageControlDot;
|
|
25312
|
+
exports.payrollWorkflow = payrollWorkflow;
|
|
25102
25313
|
exports.prefersReducedMotion = prefersReducedMotion;
|
|
25103
25314
|
exports.registerCountry = registerCountry;
|
|
25104
25315
|
exports.registerSubdivisionTheme = registerSubdivisionTheme;
|
|
@@ -25116,6 +25327,7 @@ exports.slideUp = slideUp;
|
|
|
25116
25327
|
exports.springPresets = springPresets;
|
|
25117
25328
|
exports.springPresetsReduced = springPresetsReduced;
|
|
25118
25329
|
exports.staggerContainer = staggerContainer;
|
|
25330
|
+
exports.supportWorkflow = supportWorkflow;
|
|
25119
25331
|
exports.swipeActionThreshold = swipeActionThreshold;
|
|
25120
25332
|
exports.swipeConstraints = swipeConstraints;
|
|
25121
25333
|
exports.useGeoMapState = useGeoMapState;
|
|
@@ -25125,5 +25337,5 @@ exports.usePullToRefresh = usePullToRefresh;
|
|
|
25125
25337
|
exports.validateDashboardSpec = validateDashboardSpec;
|
|
25126
25338
|
exports.xScale = xScale;
|
|
25127
25339
|
exports.yScale = yScale;
|
|
25128
|
-
//# sourceMappingURL=chunk-
|
|
25129
|
-
//# sourceMappingURL=chunk-
|
|
25340
|
+
//# sourceMappingURL=chunk-T23YGO4X.js.map
|
|
25341
|
+
//# sourceMappingURL=chunk-T23YGO4X.js.map
|