@cogentic-co/ds 0.5.3 → 0.6.0
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/animations/animation-ai-analysis.js +99 -4
- package/dist/animations/animation-ai-analysis.js.map +1 -1
- package/dist/animations/animation-audit-trail.js +194 -2
- package/dist/animations/animation-audit-trail.js.map +1 -1
- package/dist/animations/animation-compliance-reports.js +108 -3
- package/dist/animations/animation-compliance-reports.js.map +1 -1
- package/dist/animations/animation-custom-rules.js +107 -3
- package/dist/animations/animation-custom-rules.js.map +1 -1
- package/dist/animations/animation-jira-ticket.js +114 -3
- package/dist/animations/animation-jira-ticket.js.map +1 -1
- package/dist/animations/animation-jurisdiction-detection.js +122 -3
- package/dist/animations/animation-jurisdiction-detection.js.map +1 -1
- package/dist/animations/animation-multi-protocol.js +63 -2
- package/dist/animations/animation-multi-protocol.js.map +1 -1
- package/dist/animations/animation-pricing-preview.js +169 -3
- package/dist/animations/animation-pricing-preview.js.map +1 -1
- package/dist/animations/animation-realtime-updates.js +140 -4
- package/dist/animations/animation-realtime-updates.js.map +1 -1
- package/dist/animations/animation-rest-api.js +121 -2
- package/dist/animations/animation-rest-api.js.map +1 -1
- package/dist/animations/animation-risk-scoring.js +158 -4
- package/dist/animations/animation-risk-scoring.js.map +1 -1
- package/dist/animations/animation-sandbox.js +107 -2
- package/dist/animations/animation-sandbox.js.map +1 -1
- package/dist/animations/animation-scheduled-reports.js +107 -3
- package/dist/animations/animation-scheduled-reports.js.map +1 -1
- package/dist/animations/animation-secure-messaging.js +99 -3
- package/dist/animations/animation-secure-messaging.js.map +1 -1
- package/dist/animations/animation-slack-notification.js +90 -3
- package/dist/animations/animation-slack-notification.js.map +1 -1
- package/dist/animations/animation-sop-mapping.js +158 -2
- package/dist/animations/animation-sop-mapping.js.map +1 -1
- package/dist/animations/animation-team-routing.js +118 -4
- package/dist/animations/animation-team-routing.js.map +1 -1
- package/dist/animations/animation-teams-notification.js +89 -3
- package/dist/animations/animation-teams-notification.js.map +1 -1
- package/dist/animations/animation-vasp-identification.js +142 -3
- package/dist/animations/animation-vasp-identification.js.map +1 -1
- package/dist/animations/animation-webhooks.js +105 -3
- package/dist/animations/animation-webhooks.js.map +1 -1
- package/dist/blocks/auth-form.js +0 -1
- package/dist/blocks/feature-section.js +0 -1
- package/dist/blocks/hero-section.js +0 -1
- package/dist/blocks/pricing-table.js +0 -1
- package/dist/blocks/stat-card.js +0 -1
- package/dist/chart-DkwdRX-i.d.ts +50 -0
- package/dist/charts.d.ts +73 -3
- package/dist/charts.js +287 -2
- package/dist/charts.js.map +1 -1
- package/dist/chunk-6RWCZUAD.js +0 -1
- package/dist/chunk-GJAWCIGE.js +237 -0
- package/dist/chunk-GJAWCIGE.js.map +1 -0
- package/dist/chunk-GZNLQE3I.js +0 -1
- package/dist/chunk-TAPJEVUA.js +0 -1
- package/dist/index.d.ts +34 -52
- package/dist/index.js +109 -168
- package/dist/index.js.map +1 -1
- package/package.json +6 -3
- package/dist/chunk-4YD3YS4B.js +0 -110
- package/dist/chunk-4YD3YS4B.js.map +0 -1
- package/dist/chunk-5JLZ42JT.js +0 -125
- package/dist/chunk-5JLZ42JT.js.map +0 -1
- package/dist/chunk-5OOO6TRA.js +0 -111
- package/dist/chunk-5OOO6TRA.js.map +0 -1
- package/dist/chunk-65Z2VEKG.js +0 -161
- package/dist/chunk-65Z2VEKG.js.map +0 -1
- package/dist/chunk-BTFYV3TI.js +0 -102
- package/dist/chunk-BTFYV3TI.js.map +0 -1
- package/dist/chunk-BTZB4JRC.js +0 -117
- package/dist/chunk-BTZB4JRC.js.map +0 -1
- package/dist/chunk-BZSA47MS.js +0 -121
- package/dist/chunk-BZSA47MS.js.map +0 -1
- package/dist/chunk-EFLWU2JP.js +0 -145
- package/dist/chunk-EFLWU2JP.js.map +0 -1
- package/dist/chunk-F7REPQOA.js +0 -93
- package/dist/chunk-F7REPQOA.js.map +0 -1
- package/dist/chunk-FKPK3CB7.js +0 -143
- package/dist/chunk-FKPK3CB7.js.map +0 -1
- package/dist/chunk-H7VUIMEL.js +0 -172
- package/dist/chunk-H7VUIMEL.js.map +0 -1
- package/dist/chunk-HTYR73ON.js +0 -161
- package/dist/chunk-HTYR73ON.js.map +0 -1
- package/dist/chunk-I26ZXVSY.js +0 -124
- package/dist/chunk-I26ZXVSY.js.map +0 -1
- package/dist/chunk-IKATDPHG.js +0 -92
- package/dist/chunk-IKATDPHG.js.map +0 -1
- package/dist/chunk-KUOF3XRZ.js +0 -108
- package/dist/chunk-KUOF3XRZ.js.map +0 -1
- package/dist/chunk-N7PBUY7G.js +0 -110
- package/dist/chunk-N7PBUY7G.js.map +0 -1
- package/dist/chunk-NAPDFVBI.js +0 -102
- package/dist/chunk-NAPDFVBI.js.map +0 -1
- package/dist/chunk-RTK7R4KZ.js +0 -66
- package/dist/chunk-RTK7R4KZ.js.map +0 -1
- package/dist/chunk-RZZTDJHG.js +0 -110
- package/dist/chunk-RZZTDJHG.js.map +0 -1
- package/dist/chunk-SNOJLZP4.js +0 -197
- package/dist/chunk-SNOJLZP4.js.map +0 -1
- package/dist/chunk-U4EPKN7G.js +0 -518
- package/dist/chunk-U4EPKN7G.js.map +0 -1
- package/dist/index-CcPuHWa-.d.ts +0 -118
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/animations/animation-risk-scoring.tsx"],"names":[],"mappings":"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","file":"chunk-HTYR73ON.js","sourcesContent":["\"use client\"\n\nimport { AlertTriangle, ShieldAlert, ShieldCheck } from \"lucide-react\"\nimport { domAnimation, LazyMotion, m } from \"motion/react\"\nimport { useEffect, useState } from \"react\"\n\nimport { useCycleIndex } from \"../hooks/use-cycle-index\"\n\nimport { EASE_OUT } from \"../lib/animation\"\nimport { cn } from \"../lib/utils\"\n\ntype Scenario = {\n txn: string\n corridor: string\n score: number\n level: \"Low\" | \"Medium\" | \"High\"\n colour: string\n barColour: string\n icon: typeof ShieldCheck\n checks: { label: string; result: string; ok: boolean }[]\n}\n\nconst SCENARIOS: Scenario[] = [\n {\n txn: \"TXN-0847\",\n corridor: \"AU \\u2192 SG\",\n score: 18,\n level: \"Low\",\n colour: \"text-emerald-600\",\n barColour: \"bg-emerald-400\",\n icon: ShieldCheck,\n checks: [\n { label: \"Sanctions\", result: \"Clear\", ok: true },\n { label: \"PEP screening\", result: \"Clear\", ok: true },\n { label: \"Travel Rule\", result: \"Verified\", ok: true },\n { label: \"Threshold\", result: \"Below limit\", ok: true },\n ],\n },\n {\n txn: \"TXN-0846\",\n corridor: \"HK \\u2192 GB\",\n score: 72,\n level: \"High\",\n colour: \"text-red-500\",\n barColour: \"bg-red-400\",\n icon: ShieldAlert,\n checks: [\n { label: \"Sanctions\", result: \"Clear\", ok: true },\n { label: \"PEP screening\", result: \"1 match\", ok: false },\n { label: \"Travel Rule\", result: \"Verified\", ok: true },\n { label: \"Threshold\", result: \"Exceeded\", ok: false },\n ],\n },\n {\n txn: \"TXN-0845\",\n corridor: \"AE \\u2192 NL\",\n score: 41,\n level: \"Medium\",\n colour: \"text-amber-500\",\n barColour: \"bg-amber-400\",\n icon: AlertTriangle,\n checks: [\n { label: \"Sanctions\", result: \"Clear\", ok: true },\n { label: \"PEP screening\", result: \"Clear\", ok: true },\n { label: \"Travel Rule\", result: \"Pending\", ok: false },\n { label: \"Threshold\", result: \"Below limit\", ok: true },\n ],\n },\n]\n\nconst CYCLE_MS = 3800\n\nfunction AnimatedNumber({ value, duration = 1000 }: { value: number; duration?: number }) {\n const [display, setDisplay] = useState(0)\n\n useEffect(() => {\n let start: number | null = null\n let raf: number\n\n function tick(ts: number) {\n if (start === null) start = ts\n const progress = Math.min((ts - start) / duration, 1)\n const eased = 1 - (1 - progress) ** 3\n setDisplay(Math.round(value * eased))\n if (progress < 1) raf = requestAnimationFrame(tick)\n }\n\n raf = requestAnimationFrame(tick)\n return () => cancelAnimationFrame(raf)\n }, [value, duration])\n\n return <>{display}</>\n}\n\nexport default function AnimationRiskScoring({ className }: { className?: string }) {\n const [containerRef, index] = useCycleIndex(SCENARIOS.length, CYCLE_MS)\n const s = SCENARIOS[index]\n const Icon = s.icon\n\n return (\n <LazyMotion features={domAnimation}>\n <div ref={containerRef} className={cn(\"flex flex-col p-5\", className)}>\n {/* Header */}\n <div className=\"flex items-center justify-between\">\n <div>\n <p className=\"font-semibold text-[15px] text-forground\">Risk Analysis</p>\n <p className=\"text-[12px] text-gray-400\">Real-time transfer scoring</p>\n </div>\n <m.div\n key={index}\n initial={{ opacity: 0, scale: 0.9 }}\n animate={{ opacity: 1, scale: 1 }}\n className={cn(\n \"flex items-center gap-1.5 rounded-full px-2.5 py-1\",\n s.level === \"Low\"\n ? \"bg-emerald-50\"\n : s.level === \"Medium\"\n ? \"bg-amber-50\"\n : \"bg-red-50\",\n )}\n >\n <Icon className={cn(\"size-3.5\", s.colour)} strokeWidth={2} />\n <span className={cn(\"font-semibold text-[11px]\", s.colour)}>{s.level}</span>\n </m.div>\n </div>\n\n {/* Transfer info */}\n <m.div\n key={`info-${index}`}\n initial={{ opacity: 0, y: 6 }}\n animate={{ opacity: 1, y: 0 }}\n transition={{ duration: 0.3 }}\n className=\"mt-4 flex items-center gap-3 rounded-lg border border-gray-100 bg-gray-50 px-3 py-2.5\"\n >\n <div className=\"flex-1\">\n <p className=\"font-bold font-mono text-[11px] text-gray-400\">{s.txn}</p>\n <p className=\"font-medium text-[12px] text-gray-700\">{s.corridor}</p>\n </div>\n <div className=\"text-right\">\n <p className=\"font-bold font-mono text-2xl text-gray-900\">\n <AnimatedNumber value={s.score} />\n </p>\n <p className=\"text-[10px] text-gray-400\">/100</p>\n </div>\n </m.div>\n\n {/* Score bar */}\n <div className=\"mt-3 h-2 overflow-hidden rounded-full bg-gray-100\">\n <m.div\n key={`bar-${index}`}\n className={cn(\"h-full rounded-full\", s.barColour)}\n style={{ transformOrigin: \"left\", width: \"100%\" }}\n initial={{ scaleX: 0 }}\n animate={{ scaleX: s.score / 100 }}\n transition={{ duration: 1, ease: EASE_OUT }}\n />\n </div>\n\n {/* Check results */}\n <div className=\"mt-4 grid grid-cols-2 gap-2\">\n {s.checks.map((check, i) => (\n <m.div\n key={`${check.label}-${index}`}\n initial={{ opacity: 0, y: 4 }}\n animate={{ opacity: 1, y: 0 }}\n transition={{ duration: 0.25, delay: 0.1 + i * 0.08 }}\n className=\"flex items-center justify-between rounded-lg border border-gray-100 bg-white px-3 py-2\"\n >\n <span className=\"font-medium text-[11px] text-gray-600\">{check.label}</span>\n <span\n className={cn(\n \"font-semibold text-[10px]\",\n check.ok ? \"text-emerald-600\" : \"text-red-500\",\n )}\n >\n {check.result}\n </span>\n </m.div>\n ))}\n </div>\n </div>\n </LazyMotion>\n )\n}\n"]}
|
package/dist/chunk-I26ZXVSY.js
DELETED
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { cn } from './chunk-GZNLQE3I.js';
|
|
3
|
-
import { LazyMotion, domAnimation, m } from 'motion/react';
|
|
4
|
-
import { useState, useRef, useCallback, useEffect } from 'react';
|
|
5
|
-
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
6
|
-
|
|
7
|
-
var REQUEST = [
|
|
8
|
-
{ text: "POST /v1/transfers/screen", colour: "text-emerald-400" },
|
|
9
|
-
{ text: "Authorization: Bearer sk_live_\u2022\u2022\u2022", colour: "text-gray-500" },
|
|
10
|
-
{ text: "Content-Type: application/json", colour: "text-gray-500" },
|
|
11
|
-
{ text: "" },
|
|
12
|
-
{ text: "{", colour: "text-gray-300" },
|
|
13
|
-
{ text: '"transfer_id": "TXN-0847",', colour: "text-[#00D4FF]", indent: 1 },
|
|
14
|
-
{ text: '"originator": {', colour: "text-gray-300", indent: 1 },
|
|
15
|
-
{ text: '"vasp_id": "vasp_au_001",', colour: "text-amber-400", indent: 2 },
|
|
16
|
-
{ text: '"jurisdiction": "AU"', colour: "text-amber-400", indent: 2 },
|
|
17
|
-
{ text: "},", colour: "text-gray-300", indent: 1 },
|
|
18
|
-
{ text: '"beneficiary": {', colour: "text-gray-300", indent: 1 },
|
|
19
|
-
{ text: '"vasp_id": "vasp_sg_042",', colour: "text-amber-400", indent: 2 },
|
|
20
|
-
{ text: '"jurisdiction": "SG"', colour: "text-amber-400", indent: 2 },
|
|
21
|
-
{ text: "},", colour: "text-gray-300", indent: 1 },
|
|
22
|
-
{ text: '"amount": "45000.00",', colour: "text-violet-400", indent: 1 },
|
|
23
|
-
{ text: '"currency": "USD"', colour: "text-violet-400", indent: 1 },
|
|
24
|
-
{ text: "}", colour: "text-gray-300" }
|
|
25
|
-
];
|
|
26
|
-
var RESPONSE = [
|
|
27
|
-
{ text: "200 OK", colour: "text-emerald-400" },
|
|
28
|
-
{ text: "" },
|
|
29
|
-
{ text: "{", colour: "text-gray-300" },
|
|
30
|
-
{ text: '"status": "compliant",', colour: "text-emerald-400", indent: 1 },
|
|
31
|
-
{ text: '"risk_score": 18,', colour: "text-[#00D4FF]", indent: 1 },
|
|
32
|
-
{ text: '"travel_rule": "verified",', colour: "text-emerald-400", indent: 1 },
|
|
33
|
-
{ text: '"jurisdiction_pair": "AU\u2192SG",', colour: "text-amber-400", indent: 1 },
|
|
34
|
-
{ text: '"report_ref": "CR-2024-0847"', colour: "text-violet-400", indent: 1 },
|
|
35
|
-
{ text: "}", colour: "text-gray-300" }
|
|
36
|
-
];
|
|
37
|
-
function AnimationRestApi({ className }) {
|
|
38
|
-
const [phase, setPhase] = useState("request");
|
|
39
|
-
const [visibleLines, setVisibleLines] = useState(0);
|
|
40
|
-
const scrollRef = useRef(null);
|
|
41
|
-
const lines = phase === "request" ? REQUEST : RESPONSE;
|
|
42
|
-
const reset = useCallback(() => {
|
|
43
|
-
setPhase("request");
|
|
44
|
-
setVisibleLines(0);
|
|
45
|
-
}, []);
|
|
46
|
-
useEffect(() => {
|
|
47
|
-
if (visibleLines < lines.length) {
|
|
48
|
-
const id = setTimeout(() => setVisibleLines((v) => v + 1), 80);
|
|
49
|
-
return () => clearTimeout(id);
|
|
50
|
-
} else if (phase === "request") {
|
|
51
|
-
const id = setTimeout(() => {
|
|
52
|
-
setPhase("response");
|
|
53
|
-
setVisibleLines(0);
|
|
54
|
-
}, 1200);
|
|
55
|
-
return () => clearTimeout(id);
|
|
56
|
-
} else {
|
|
57
|
-
const id = setTimeout(reset, 3e3);
|
|
58
|
-
return () => clearTimeout(id);
|
|
59
|
-
}
|
|
60
|
-
}, [visibleLines, lines.length, phase, reset]);
|
|
61
|
-
useEffect(() => {
|
|
62
|
-
const el = scrollRef.current;
|
|
63
|
-
if (!el) return;
|
|
64
|
-
requestAnimationFrame(() => {
|
|
65
|
-
el.scrollTop = el.scrollHeight;
|
|
66
|
-
});
|
|
67
|
-
}, []);
|
|
68
|
-
return /* @__PURE__ */ jsx(LazyMotion, { features: domAnimation, children: /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col bg-[#1a1a2e]", className), children: [
|
|
69
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 border-white/10 border-b px-4 py-2", children: [
|
|
70
|
-
/* @__PURE__ */ jsxs("div", { className: "flex gap-1.5", children: [
|
|
71
|
-
/* @__PURE__ */ jsx("span", { className: "size-2.5 rounded-full bg-red-400/80" }),
|
|
72
|
-
/* @__PURE__ */ jsx("span", { className: "size-2.5 rounded-full bg-amber-400/80" }),
|
|
73
|
-
/* @__PURE__ */ jsx("span", { className: "size-2.5 rounded-full bg-emerald-400/80" })
|
|
74
|
-
] }),
|
|
75
|
-
/* @__PURE__ */ jsx("span", { className: "ml-2 font-mono text-[10px] text-white/40", children: "cogentic-api" }),
|
|
76
|
-
/* @__PURE__ */ jsx(
|
|
77
|
-
m.span,
|
|
78
|
-
{
|
|
79
|
-
initial: { opacity: 0 },
|
|
80
|
-
animate: { opacity: 1 },
|
|
81
|
-
className: cn(
|
|
82
|
-
"ml-auto rounded-full px-2 py-0.5 font-bold text-[9px]",
|
|
83
|
-
phase === "request" ? "bg-amber-500/20 text-amber-300" : "bg-emerald-500/20 text-emerald-300"
|
|
84
|
-
),
|
|
85
|
-
children: phase === "request" ? "REQUEST" : "RESPONSE"
|
|
86
|
-
},
|
|
87
|
-
phase
|
|
88
|
-
)
|
|
89
|
-
] }),
|
|
90
|
-
/* @__PURE__ */ jsx("div", { ref: scrollRef, className: "scrollbar-none flex-1 overflow-y-auto px-4 py-3", children: /* @__PURE__ */ jsxs("div", { className: "space-y-0.5", children: [
|
|
91
|
-
lines.slice(0, visibleLines).map((line, i) => {
|
|
92
|
-
var _a, _b;
|
|
93
|
-
return /* @__PURE__ */ jsxs(
|
|
94
|
-
m.div,
|
|
95
|
-
{
|
|
96
|
-
initial: { opacity: 0 },
|
|
97
|
-
animate: { opacity: 1 },
|
|
98
|
-
className: "flex",
|
|
99
|
-
children: [
|
|
100
|
-
/* @__PURE__ */ jsx("span", { className: "w-5 shrink-0 text-right font-mono text-[10px] text-white/20", children: i + 1 }),
|
|
101
|
-
/* @__PURE__ */ jsx(
|
|
102
|
-
"span",
|
|
103
|
-
{
|
|
104
|
-
className: cn("ml-3 font-mono text-[11px]", (_a = line.colour) != null ? _a : "text-white/60"),
|
|
105
|
-
style: { paddingLeft: ((_b = line.indent) != null ? _b : 0) * 16 },
|
|
106
|
-
children: line.text || "\xA0"
|
|
107
|
-
}
|
|
108
|
-
)
|
|
109
|
-
]
|
|
110
|
-
},
|
|
111
|
-
`${phase}-${i}`
|
|
112
|
-
);
|
|
113
|
-
}),
|
|
114
|
-
visibleLines < lines.length && /* @__PURE__ */ jsxs("div", { className: "flex", children: [
|
|
115
|
-
/* @__PURE__ */ jsx("span", { className: "w-5" }),
|
|
116
|
-
/* @__PURE__ */ jsx("span", { className: "ml-3 animate-pulse font-mono text-[11px] text-white/30", children: "\u2588" })
|
|
117
|
-
] })
|
|
118
|
-
] }) })
|
|
119
|
-
] }) });
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
export { AnimationRestApi };
|
|
123
|
-
//# sourceMappingURL=chunk-I26ZXVSY.js.map
|
|
124
|
-
//# sourceMappingURL=chunk-I26ZXVSY.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/animations/animation-rest-api.tsx"],"names":[],"mappings":"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","file":"chunk-I26ZXVSY.js","sourcesContent":["\"use client\"\n\nimport { domAnimation, LazyMotion, m } from \"motion/react\"\nimport { useCallback, useEffect, useRef, useState } from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\ntype CodeLine = {\n text: string\n colour?: string\n indent?: number\n}\n\nconst REQUEST: CodeLine[] = [\n { text: \"POST /v1/transfers/screen\", colour: \"text-emerald-400\" },\n { text: \"Authorization: Bearer sk_live_\\u2022\\u2022\\u2022\", colour: \"text-gray-500\" },\n { text: \"Content-Type: application/json\", colour: \"text-gray-500\" },\n { text: \"\" },\n { text: \"{\", colour: \"text-gray-300\" },\n { text: '\"transfer_id\": \"TXN-0847\",', colour: \"text-[#00D4FF]\", indent: 1 },\n { text: '\"originator\": {', colour: \"text-gray-300\", indent: 1 },\n { text: '\"vasp_id\": \"vasp_au_001\",', colour: \"text-amber-400\", indent: 2 },\n { text: '\"jurisdiction\": \"AU\"', colour: \"text-amber-400\", indent: 2 },\n { text: \"},\", colour: \"text-gray-300\", indent: 1 },\n { text: '\"beneficiary\": {', colour: \"text-gray-300\", indent: 1 },\n { text: '\"vasp_id\": \"vasp_sg_042\",', colour: \"text-amber-400\", indent: 2 },\n { text: '\"jurisdiction\": \"SG\"', colour: \"text-amber-400\", indent: 2 },\n { text: \"},\", colour: \"text-gray-300\", indent: 1 },\n { text: '\"amount\": \"45000.00\",', colour: \"text-violet-400\", indent: 1 },\n { text: '\"currency\": \"USD\"', colour: \"text-violet-400\", indent: 1 },\n { text: \"}\", colour: \"text-gray-300\" },\n]\n\nconst RESPONSE: CodeLine[] = [\n { text: \"200 OK\", colour: \"text-emerald-400\" },\n { text: \"\" },\n { text: \"{\", colour: \"text-gray-300\" },\n { text: '\"status\": \"compliant\",', colour: \"text-emerald-400\", indent: 1 },\n { text: '\"risk_score\": 18,', colour: \"text-[#00D4FF]\", indent: 1 },\n { text: '\"travel_rule\": \"verified\",', colour: \"text-emerald-400\", indent: 1 },\n { text: '\"jurisdiction_pair\": \"AU→SG\",', colour: \"text-amber-400\", indent: 1 },\n { text: '\"report_ref\": \"CR-2024-0847\"', colour: \"text-violet-400\", indent: 1 },\n { text: \"}\", colour: \"text-gray-300\" },\n]\n\nexport default function AnimationRestApi({ className }: { className?: string }) {\n const [phase, setPhase] = useState<\"request\" | \"response\">(\"request\")\n const [visibleLines, setVisibleLines] = useState(0)\n const scrollRef = useRef<HTMLDivElement>(null)\n const lines = phase === \"request\" ? REQUEST : RESPONSE\n\n const reset = useCallback(() => {\n setPhase(\"request\")\n setVisibleLines(0)\n }, [])\n\n useEffect(() => {\n if (visibleLines < lines.length) {\n const id = setTimeout(() => setVisibleLines((v) => v + 1), 80)\n return () => clearTimeout(id)\n } else if (phase === \"request\") {\n const id = setTimeout(() => {\n setPhase(\"response\")\n setVisibleLines(0)\n }, 1200)\n return () => clearTimeout(id)\n } else {\n const id = setTimeout(reset, 3000)\n return () => clearTimeout(id)\n }\n }, [visibleLines, lines.length, phase, reset])\n\n useEffect(() => {\n const el = scrollRef.current\n if (!el) return\n requestAnimationFrame(() => {\n el.scrollTop = el.scrollHeight\n })\n }, [])\n\n return (\n <LazyMotion features={domAnimation}>\n <div className={cn(\"flex flex-col bg-[#1a1a2e]\", className)}>\n {/* Tab bar */}\n <div className=\"flex items-center gap-3 border-white/10 border-b px-4 py-2\">\n <div className=\"flex gap-1.5\">\n <span className=\"size-2.5 rounded-full bg-red-400/80\" />\n <span className=\"size-2.5 rounded-full bg-amber-400/80\" />\n <span className=\"size-2.5 rounded-full bg-emerald-400/80\" />\n </div>\n <span className=\"ml-2 font-mono text-[10px] text-white/40\">cogentic-api</span>\n <m.span\n key={phase}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n className={cn(\n \"ml-auto rounded-full px-2 py-0.5 font-bold text-[9px]\",\n phase === \"request\"\n ? \"bg-amber-500/20 text-amber-300\"\n : \"bg-emerald-500/20 text-emerald-300\",\n )}\n >\n {phase === \"request\" ? \"REQUEST\" : \"RESPONSE\"}\n </m.span>\n </div>\n\n {/* Code */}\n <div ref={scrollRef} className=\"scrollbar-none flex-1 overflow-y-auto px-4 py-3\">\n <div className=\"space-y-0.5\">\n {lines.slice(0, visibleLines).map((line, i) => (\n <m.div\n key={`${phase}-${i}`}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n className=\"flex\"\n >\n <span className=\"w-5 shrink-0 text-right font-mono text-[10px] text-white/20\">\n {i + 1}\n </span>\n <span\n className={cn(\"ml-3 font-mono text-[11px]\", line.colour ?? \"text-white/60\")}\n style={{ paddingLeft: (line.indent ?? 0) * 16 }}\n >\n {line.text || \"\\u00A0\"}\n </span>\n </m.div>\n ))}\n {visibleLines < lines.length && (\n <div className=\"flex\">\n <span className=\"w-5\" />\n <span className=\"ml-3 animate-pulse font-mono text-[11px] text-white/30\">\n {\"\\u2588\"}\n </span>\n </div>\n )}\n </div>\n </div>\n </div>\n </LazyMotion>\n )\n}\n"]}
|
package/dist/chunk-IKATDPHG.js
DELETED
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { EASE_OUT } from './chunk-TAPJEVUA.js';
|
|
3
|
-
import { cn } from './chunk-GZNLQE3I.js';
|
|
4
|
-
import { motion } from 'motion/react';
|
|
5
|
-
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
6
|
-
|
|
7
|
-
function AnimationTeamsNotification({ className }) {
|
|
8
|
-
return /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col bg-[#f5f5f5] p-4", className), children: [
|
|
9
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 pb-2.5", children: [
|
|
10
|
-
/* @__PURE__ */ jsx("div", { className: "flex size-5 items-center justify-center rounded bg-[#6264A7]", children: /* @__PURE__ */ jsx("svg", { width: "10", height: "10", viewBox: "0 0 10 10", fill: "none", children: /* @__PURE__ */ jsx("path", { d: "M1 3H9M1 5H6M1 7H7", stroke: "white", strokeWidth: "1", strokeLinecap: "round" }) }) }),
|
|
11
|
-
/* @__PURE__ */ jsx("span", { className: "font-semibold text-[13px] text-gray-900", children: "Compliance Reviews" })
|
|
12
|
-
] }),
|
|
13
|
-
/* @__PURE__ */ jsxs(
|
|
14
|
-
motion.div,
|
|
15
|
-
{
|
|
16
|
-
initial: { opacity: 0, y: 10 },
|
|
17
|
-
animate: { opacity: 1, y: 0 },
|
|
18
|
-
transition: { duration: 0.5, ease: EASE_OUT, delay: 0.3 },
|
|
19
|
-
className: "rounded-lg bg-white shadow-sm",
|
|
20
|
-
children: [
|
|
21
|
-
/* @__PURE__ */ jsx("div", { className: "h-1 rounded-t-lg bg-[#6264A7]" }),
|
|
22
|
-
/* @__PURE__ */ jsxs("div", { className: "p-3.5", children: [
|
|
23
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
24
|
-
/* @__PURE__ */ jsx("div", { className: "flex size-6 items-center justify-center rounded bg-gray-900", children: /* @__PURE__ */ jsx("svg", { width: "10", height: "10", viewBox: "0 0 14 14", fill: "none", children: /* @__PURE__ */ jsx("path", { d: "M7 1L12 4V10L7 13L2 10V4L7 1Z", stroke: "#00D4FF", strokeWidth: "1.2" }) }) }),
|
|
25
|
-
/* @__PURE__ */ jsx("span", { className: "font-bold text-[12px] text-gray-900", children: "Cogentic Compliance" }),
|
|
26
|
-
/* @__PURE__ */ jsx("span", { className: "text-[10px] text-gray-400", children: "10:42 AM" })
|
|
27
|
-
] }),
|
|
28
|
-
/* @__PURE__ */ jsxs(
|
|
29
|
-
motion.div,
|
|
30
|
-
{
|
|
31
|
-
initial: { opacity: 0 },
|
|
32
|
-
animate: { opacity: 1 },
|
|
33
|
-
transition: { duration: 0.4, delay: 0.6 },
|
|
34
|
-
children: [
|
|
35
|
-
/* @__PURE__ */ jsx("p", { className: "mt-2.5 font-semibold text-[12px] text-gray-900", children: "Transfer requires review" }),
|
|
36
|
-
/* @__PURE__ */ jsx("div", { className: "mt-2 grid grid-cols-2 gap-x-4 gap-y-1.5", children: [
|
|
37
|
-
{ label: "Transfer", value: "TXN-0847" },
|
|
38
|
-
{ label: "Corridor", value: "AU \u2192 SG" },
|
|
39
|
-
{ label: "Risk score", value: "72 / 100", highlight: true },
|
|
40
|
-
{ label: "Trigger", value: "PEP match" }
|
|
41
|
-
].map((item) => /* @__PURE__ */ jsxs("div", { children: [
|
|
42
|
-
/* @__PURE__ */ jsx("span", { className: "font-medium text-[10px] text-gray-400", children: item.label }),
|
|
43
|
-
/* @__PURE__ */ jsx(
|
|
44
|
-
"p",
|
|
45
|
-
{
|
|
46
|
-
className: cn(
|
|
47
|
-
"font-semibold text-[11px]",
|
|
48
|
-
item.highlight ? "text-red-500" : "text-gray-800"
|
|
49
|
-
),
|
|
50
|
-
children: item.value
|
|
51
|
-
}
|
|
52
|
-
)
|
|
53
|
-
] }, item.label)) }),
|
|
54
|
-
/* @__PURE__ */ jsxs(
|
|
55
|
-
motion.div,
|
|
56
|
-
{
|
|
57
|
-
initial: { opacity: 0, scale: 0.95 },
|
|
58
|
-
animate: { opacity: 1, scale: 1 },
|
|
59
|
-
transition: { duration: 0.3, delay: 0.9 },
|
|
60
|
-
className: "mt-2.5 flex items-center gap-2 rounded bg-amber-50 px-2.5 py-1.5",
|
|
61
|
-
children: [
|
|
62
|
-
/* @__PURE__ */ jsx("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", children: /* @__PURE__ */ jsx("path", { d: "M6 1L11 3.5V8.5L6 11L1 8.5V3.5L6 1Z", stroke: "#D97706", strokeWidth: "1" }) }),
|
|
63
|
-
/* @__PURE__ */ jsx("span", { className: "font-medium text-[10px] text-amber-700", children: "SG jurisdiction requires beneficiary verification within 24h" })
|
|
64
|
-
]
|
|
65
|
-
}
|
|
66
|
-
)
|
|
67
|
-
]
|
|
68
|
-
}
|
|
69
|
-
),
|
|
70
|
-
/* @__PURE__ */ jsxs(
|
|
71
|
-
motion.div,
|
|
72
|
-
{
|
|
73
|
-
initial: { opacity: 0 },
|
|
74
|
-
animate: { opacity: 1 },
|
|
75
|
-
transition: { duration: 0.3, delay: 1.1 },
|
|
76
|
-
className: "mt-3 flex gap-2",
|
|
77
|
-
children: [
|
|
78
|
-
/* @__PURE__ */ jsx("span", { className: "rounded bg-[#6264A7] px-3 py-1.5 font-semibold text-[11px] text-white", children: "Review transfer" }),
|
|
79
|
-
/* @__PURE__ */ jsx("span", { className: "rounded border border-gray-200 px-3 py-1.5 font-semibold text-[11px] text-gray-600", children: "Assign reviewer" })
|
|
80
|
-
]
|
|
81
|
-
}
|
|
82
|
-
)
|
|
83
|
-
] })
|
|
84
|
-
]
|
|
85
|
-
}
|
|
86
|
-
)
|
|
87
|
-
] });
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
export { AnimationTeamsNotification };
|
|
91
|
-
//# sourceMappingURL=chunk-IKATDPHG.js.map
|
|
92
|
-
//# sourceMappingURL=chunk-IKATDPHG.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/animations/animation-teams-notification.tsx"],"names":[],"mappings":"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","file":"chunk-IKATDPHG.js","sourcesContent":["\"use client\"\n\nimport { motion } from \"motion/react\"\n\nimport { EASE_OUT } from \"../lib/animation\"\nimport { cn } from \"../lib/utils\"\n\nexport default function AnimationTeamsNotification({ className }: { className?: string }) {\n return (\n <div className={cn(\"flex flex-col bg-[#f5f5f5] p-4\", className)}>\n {/* Teams channel header */}\n <div className=\"flex items-center gap-2 pb-2.5\">\n <div className=\"flex size-5 items-center justify-center rounded bg-[#6264A7]\">\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\">\n <path d=\"M1 3H9M1 5H6M1 7H7\" stroke=\"white\" strokeWidth=\"1\" strokeLinecap=\"round\" />\n </svg>\n </div>\n <span className=\"font-semibold text-[13px] text-gray-900\">Compliance Reviews</span>\n </div>\n\n {/* Adaptive card message */}\n <motion.div\n initial={{ opacity: 0, y: 10 }}\n animate={{ opacity: 1, y: 0 }}\n transition={{ duration: 0.5, ease: EASE_OUT, delay: 0.3 }}\n className=\"rounded-lg bg-white shadow-sm\"\n >\n {/* Card header with accent */}\n <div className=\"h-1 rounded-t-lg bg-[#6264A7]\" />\n <div className=\"p-3.5\">\n <div className=\"flex items-center gap-2\">\n <div className=\"flex size-6 items-center justify-center rounded bg-gray-900\">\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 14 14\" fill=\"none\">\n <path d=\"M7 1L12 4V10L7 13L2 10V4L7 1Z\" stroke=\"#00D4FF\" strokeWidth=\"1.2\" />\n </svg>\n </div>\n <span className=\"font-bold text-[12px] text-gray-900\">Cogentic Compliance</span>\n <span className=\"text-[10px] text-gray-400\">10:42 AM</span>\n </div>\n\n <motion.div\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n transition={{ duration: 0.4, delay: 0.6 }}\n >\n <p className=\"mt-2.5 font-semibold text-[12px] text-gray-900\">\n Transfer requires review\n </p>\n\n {/* Transfer details grid */}\n <div className=\"mt-2 grid grid-cols-2 gap-x-4 gap-y-1.5\">\n {[\n { label: \"Transfer\", value: \"TXN-0847\" },\n { label: \"Corridor\", value: \"AU \\u2192 SG\" },\n { label: \"Risk score\", value: \"72 / 100\", highlight: true },\n { label: \"Trigger\", value: \"PEP match\" },\n ].map((item) => (\n <div key={item.label}>\n <span className=\"font-medium text-[10px] text-gray-400\">{item.label}</span>\n <p\n className={cn(\n \"font-semibold text-[11px]\",\n item.highlight ? \"text-red-500\" : \"text-gray-800\",\n )}\n >\n {item.value}\n </p>\n </div>\n ))}\n </div>\n\n {/* Jurisdiction badge */}\n <motion.div\n initial={{ opacity: 0, scale: 0.95 }}\n animate={{ opacity: 1, scale: 1 }}\n transition={{ duration: 0.3, delay: 0.9 }}\n className=\"mt-2.5 flex items-center gap-2 rounded bg-amber-50 px-2.5 py-1.5\"\n >\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\n <path d=\"M6 1L11 3.5V8.5L6 11L1 8.5V3.5L6 1Z\" stroke=\"#D97706\" strokeWidth=\"1\" />\n </svg>\n <span className=\"font-medium text-[10px] text-amber-700\">\n SG jurisdiction requires beneficiary verification within 24h\n </span>\n </motion.div>\n </motion.div>\n\n {/* Action buttons */}\n <motion.div\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n transition={{ duration: 0.3, delay: 1.1 }}\n className=\"mt-3 flex gap-2\"\n >\n <span className=\"rounded bg-[#6264A7] px-3 py-1.5 font-semibold text-[11px] text-white\">\n Review transfer\n </span>\n <span className=\"rounded border border-gray-200 px-3 py-1.5 font-semibold text-[11px] text-gray-600\">\n Assign reviewer\n </span>\n </motion.div>\n </div>\n </motion.div>\n </div>\n )\n}\n"]}
|
package/dist/chunk-KUOF3XRZ.js
DELETED
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { useAnimationTimer } from './chunk-RXV2XUDZ.js';
|
|
3
|
-
import { cn } from './chunk-GZNLQE3I.js';
|
|
4
|
-
import { Zap } from 'lucide-react';
|
|
5
|
-
import { LazyMotion, domAnimation, AnimatePresence, m } from 'motion/react';
|
|
6
|
-
import { useRef, useEffect } from 'react';
|
|
7
|
-
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
8
|
-
|
|
9
|
-
var EVENTS = [
|
|
10
|
-
{
|
|
11
|
-
event: "transfer.screened",
|
|
12
|
-
status: 200,
|
|
13
|
-
latency: "42ms",
|
|
14
|
-
payload: '{ "id": "TXN-0847", "result": "compliant" }',
|
|
15
|
-
colour: "text-emerald-400"
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
event: "transfer.flagged",
|
|
19
|
-
status: 200,
|
|
20
|
-
latency: "38ms",
|
|
21
|
-
payload: '{ "id": "TXN-0846", "risk": "high", "reason": "threshold" }',
|
|
22
|
-
colour: "text-amber-400"
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
event: "verification.complete",
|
|
26
|
-
status: 200,
|
|
27
|
-
latency: "51ms",
|
|
28
|
-
payload: '{ "transfer": "TXN-0845", "travel_rule": "verified" }',
|
|
29
|
-
colour: "text-[#00D4FF]"
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
event: "report.generated",
|
|
33
|
-
status: 200,
|
|
34
|
-
latency: "67ms",
|
|
35
|
-
payload: '{ "ref": "CR-2024-Q4", "type": "quarterly" }',
|
|
36
|
-
colour: "text-violet-400"
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
event: "rule.triggered",
|
|
40
|
-
status: 200,
|
|
41
|
-
latency: "29ms",
|
|
42
|
-
payload: '{ "rule": "CR-007", "transfer": "TXN-0851" }',
|
|
43
|
-
colour: "text-red-400"
|
|
44
|
-
}
|
|
45
|
-
];
|
|
46
|
-
function AnimationWebhooks({ className }) {
|
|
47
|
-
const [timerRef, tick] = useAnimationTimer(2200);
|
|
48
|
-
const count = Math.min(tick + 1, 6);
|
|
49
|
-
const startIdx = Math.max(0, tick + 1 - count);
|
|
50
|
-
const visible = Array.from({ length: count }, (_, i) => (startIdx + i) % EVENTS.length);
|
|
51
|
-
const scrollRef = useRef(null);
|
|
52
|
-
useEffect(() => {
|
|
53
|
-
const el = scrollRef.current;
|
|
54
|
-
if (!el) return;
|
|
55
|
-
requestAnimationFrame(() => {
|
|
56
|
-
el.scrollTop = el.scrollHeight;
|
|
57
|
-
});
|
|
58
|
-
}, []);
|
|
59
|
-
return /* @__PURE__ */ jsx(LazyMotion, { features: domAnimation, children: /* @__PURE__ */ jsxs("div", { ref: timerRef, className: cn("flex flex-col bg-[#1a1a2e]", className), children: [
|
|
60
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 border-white/10 border-b px-4 py-2", children: [
|
|
61
|
-
/* @__PURE__ */ jsx(Zap, { className: "size-3 text-amber-400" }),
|
|
62
|
-
/* @__PURE__ */ jsx("span", { className: "font-mono text-[11px] text-white/60", children: "Webhook Events" }),
|
|
63
|
-
/* @__PURE__ */ jsxs("span", { className: "ml-auto flex items-center gap-1", children: [
|
|
64
|
-
/* @__PURE__ */ jsxs("span", { className: "relative flex size-1.5", children: [
|
|
65
|
-
/* @__PURE__ */ jsx("span", { className: "absolute inline-flex size-full animate-ping rounded-full bg-emerald-400 opacity-75" }),
|
|
66
|
-
/* @__PURE__ */ jsx("span", { className: "relative inline-flex size-1.5 rounded-full bg-emerald-500" })
|
|
67
|
-
] }),
|
|
68
|
-
/* @__PURE__ */ jsx("span", { className: "font-mono text-[10px] text-emerald-400", children: "live" })
|
|
69
|
-
] })
|
|
70
|
-
] }),
|
|
71
|
-
/* @__PURE__ */ jsx("div", { ref: scrollRef, className: "scrollbar-none flex-1 overflow-y-auto px-3 py-2", children: /* @__PURE__ */ jsx("div", { className: "space-y-1.5", children: /* @__PURE__ */ jsx(AnimatePresence, { initial: false, children: visible.map((evIdx, i) => {
|
|
72
|
-
const ev = EVENTS[evIdx];
|
|
73
|
-
const isLatest = i === visible.length - 1;
|
|
74
|
-
return /* @__PURE__ */ jsxs(
|
|
75
|
-
m.div,
|
|
76
|
-
{
|
|
77
|
-
initial: { opacity: 0, x: -8 },
|
|
78
|
-
animate: { opacity: isLatest ? 1 : 0.4, x: 0 },
|
|
79
|
-
exit: { opacity: 0, x: 8 },
|
|
80
|
-
transition: { duration: 0.3 },
|
|
81
|
-
className: "rounded-md border border-white/5 bg-white/5 px-3 py-2",
|
|
82
|
-
children: [
|
|
83
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
84
|
-
/* @__PURE__ */ jsx("span", { className: cn("font-mono font-semibold text-[11px]", ev.colour), children: ev.event }),
|
|
85
|
-
/* @__PURE__ */ jsx("span", { className: "ml-auto font-mono text-[10px] text-emerald-400", children: ev.status }),
|
|
86
|
-
/* @__PURE__ */ jsx("span", { className: "font-mono text-[10px] text-white/30", children: ev.latency })
|
|
87
|
-
] }),
|
|
88
|
-
isLatest && /* @__PURE__ */ jsx(
|
|
89
|
-
m.p,
|
|
90
|
-
{
|
|
91
|
-
initial: { opacity: 0 },
|
|
92
|
-
animate: { opacity: 1 },
|
|
93
|
-
transition: { delay: 0.15 },
|
|
94
|
-
className: "mt-1 truncate font-mono text-[10px] text-white/40",
|
|
95
|
-
children: ev.payload
|
|
96
|
-
}
|
|
97
|
-
)
|
|
98
|
-
]
|
|
99
|
-
},
|
|
100
|
-
`${i}-${evIdx}`
|
|
101
|
-
);
|
|
102
|
-
}) }) }) })
|
|
103
|
-
] }) });
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
export { AnimationWebhooks };
|
|
107
|
-
//# sourceMappingURL=chunk-KUOF3XRZ.js.map
|
|
108
|
-
//# sourceMappingURL=chunk-KUOF3XRZ.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/animations/animation-webhooks.tsx"],"names":[],"mappings":"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","file":"chunk-KUOF3XRZ.js","sourcesContent":["\"use client\"\n\nimport { Zap } from \"lucide-react\"\nimport { AnimatePresence, domAnimation, LazyMotion, m } from \"motion/react\"\nimport { useEffect, useRef } from \"react\"\n\nimport { useAnimationTimer } from \"../hooks/use-animation-timer\"\n\nimport { cn } from \"../lib/utils\"\n\ntype WebhookEvent = {\n event: string\n status: number\n latency: string\n payload: string\n colour: string\n}\n\nconst EVENTS: WebhookEvent[] = [\n {\n event: \"transfer.screened\",\n status: 200,\n latency: \"42ms\",\n payload: '{ \"id\": \"TXN-0847\", \"result\": \"compliant\" }',\n colour: \"text-emerald-400\",\n },\n {\n event: \"transfer.flagged\",\n status: 200,\n latency: \"38ms\",\n payload: '{ \"id\": \"TXN-0846\", \"risk\": \"high\", \"reason\": \"threshold\" }',\n colour: \"text-amber-400\",\n },\n {\n event: \"verification.complete\",\n status: 200,\n latency: \"51ms\",\n payload: '{ \"transfer\": \"TXN-0845\", \"travel_rule\": \"verified\" }',\n colour: \"text-[#00D4FF]\",\n },\n {\n event: \"report.generated\",\n status: 200,\n latency: \"67ms\",\n payload: '{ \"ref\": \"CR-2024-Q4\", \"type\": \"quarterly\" }',\n colour: \"text-violet-400\",\n },\n {\n event: \"rule.triggered\",\n status: 200,\n latency: \"29ms\",\n payload: '{ \"rule\": \"CR-007\", \"transfer\": \"TXN-0851\" }',\n colour: \"text-red-400\",\n },\n]\n\nexport default function AnimationWebhooks({ className }: { className?: string }) {\n const [timerRef, tick] = useAnimationTimer(2200)\n const count = Math.min(tick + 1, 6)\n const startIdx = Math.max(0, tick + 1 - count)\n const visible = Array.from({ length: count }, (_, i) => (startIdx + i) % EVENTS.length)\n const scrollRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n const el = scrollRef.current\n if (!el) return\n requestAnimationFrame(() => {\n el.scrollTop = el.scrollHeight\n })\n }, [])\n\n return (\n <LazyMotion features={domAnimation}>\n <div ref={timerRef} className={cn(\"flex flex-col bg-[#1a1a2e]\", className)}>\n {/* Header */}\n <div className=\"flex items-center gap-2 border-white/10 border-b px-4 py-2\">\n <Zap className=\"size-3 text-amber-400\" />\n <span className=\"font-mono text-[11px] text-white/60\">Webhook Events</span>\n <span className=\"ml-auto flex items-center gap-1\">\n <span className=\"relative flex size-1.5\">\n <span className=\"absolute inline-flex size-full animate-ping rounded-full bg-emerald-400 opacity-75\" />\n <span className=\"relative inline-flex size-1.5 rounded-full bg-emerald-500\" />\n </span>\n <span className=\"font-mono text-[10px] text-emerald-400\">live</span>\n </span>\n </div>\n\n {/* Events */}\n <div ref={scrollRef} className=\"scrollbar-none flex-1 overflow-y-auto px-3 py-2\">\n <div className=\"space-y-1.5\">\n <AnimatePresence initial={false}>\n {visible.map((evIdx, i) => {\n const ev = EVENTS[evIdx]\n const isLatest = i === visible.length - 1\n return (\n <m.div\n key={`${i}-${evIdx}`}\n initial={{ opacity: 0, x: -8 }}\n animate={{ opacity: isLatest ? 1 : 0.4, x: 0 }}\n exit={{ opacity: 0, x: 8 }}\n transition={{ duration: 0.3 }}\n className=\"rounded-md border border-white/5 bg-white/5 px-3 py-2\"\n >\n <div className=\"flex items-center gap-2\">\n <span className={cn(\"font-mono font-semibold text-[11px]\", ev.colour)}>\n {ev.event}\n </span>\n <span className=\"ml-auto font-mono text-[10px] text-emerald-400\">\n {ev.status}\n </span>\n <span className=\"font-mono text-[10px] text-white/30\">{ev.latency}</span>\n </div>\n {isLatest && (\n <m.p\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n transition={{ delay: 0.15 }}\n className=\"mt-1 truncate font-mono text-[10px] text-white/40\"\n >\n {ev.payload}\n </m.p>\n )}\n </m.div>\n )\n })}\n </AnimatePresence>\n </div>\n </div>\n </div>\n </LazyMotion>\n )\n}\n"]}
|
package/dist/chunk-N7PBUY7G.js
DELETED
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { cn } from './chunk-GZNLQE3I.js';
|
|
3
|
-
import { RotateCcw, Play } from 'lucide-react';
|
|
4
|
-
import { LazyMotion, domAnimation, m } from 'motion/react';
|
|
5
|
-
import { useState, useRef, useCallback, useEffect } from 'react';
|
|
6
|
-
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
7
|
-
|
|
8
|
-
var SCRIPT = [
|
|
9
|
-
{ type: "command", text: "$ cogentic-cli test transfer --corridor AU:SG --amount 45000" },
|
|
10
|
-
{ type: "info", text: "\u2192 Using sandbox environment (test mode)" },
|
|
11
|
-
{ type: "output", text: "Creating test transfer TXN-TEST-0001..." },
|
|
12
|
-
{ type: "output", text: "Screening against sandbox ruleset..." },
|
|
13
|
-
{ type: "output", text: " Jurisdiction: AUSTRAC \u2192 MAS" },
|
|
14
|
-
{ type: "output", text: " Threshold check: AUD 10,000 exceeded" },
|
|
15
|
-
{ type: "output", text: " Travel Rule: IVMS101 required" },
|
|
16
|
-
{ type: "output", text: " Risk score: 18/100 (Low)" },
|
|
17
|
-
{ type: "success", text: "\u2713 Transfer screened: COMPLIANT" },
|
|
18
|
-
{ type: "info", text: "\u2192 Sandbox report: SR-TEST-0001 generated" },
|
|
19
|
-
{ type: "info", text: "\u2192 No production data affected" },
|
|
20
|
-
{ type: "command", text: "" },
|
|
21
|
-
{ type: "command", text: "$ cogentic-cli test transfer --corridor HK:GB --amount 120000" },
|
|
22
|
-
{ type: "info", text: "\u2192 Using sandbox environment (test mode)" },
|
|
23
|
-
{ type: "output", text: "Creating test transfer TXN-TEST-0002..." },
|
|
24
|
-
{ type: "output", text: "Screening against sandbox ruleset..." },
|
|
25
|
-
{ type: "output", text: " Jurisdiction: SFC \u2192 FCA" },
|
|
26
|
-
{ type: "output", text: " High-risk corridor detected" },
|
|
27
|
-
{ type: "output", text: " Enhanced due diligence triggered" },
|
|
28
|
-
{ type: "output", text: " Risk score: 72/100 (High)" },
|
|
29
|
-
{ type: "success", text: "\u26A0 Transfer screened: FLAGGED \u2014 manual review required" }
|
|
30
|
-
];
|
|
31
|
-
var lineColour = {
|
|
32
|
-
command: "text-white/90",
|
|
33
|
-
output: "text-white/50",
|
|
34
|
-
success: "text-emerald-400",
|
|
35
|
-
info: "text-[#00D4FF]/80"
|
|
36
|
-
};
|
|
37
|
-
function AnimationSandbox({ className }) {
|
|
38
|
-
const [visibleLines, setVisibleLines] = useState(0);
|
|
39
|
-
const scrollRef = useRef(null);
|
|
40
|
-
const reset = useCallback(() => {
|
|
41
|
-
setVisibleLines(0);
|
|
42
|
-
}, []);
|
|
43
|
-
useEffect(() => {
|
|
44
|
-
if (visibleLines < SCRIPT.length) {
|
|
45
|
-
const line = SCRIPT[visibleLines];
|
|
46
|
-
const delay = line.type === "command" ? 400 : line.text === "" ? 200 : 120;
|
|
47
|
-
const id = setTimeout(() => setVisibleLines((v) => v + 1), delay);
|
|
48
|
-
return () => clearTimeout(id);
|
|
49
|
-
} else {
|
|
50
|
-
const id = setTimeout(reset, 4e3);
|
|
51
|
-
return () => clearTimeout(id);
|
|
52
|
-
}
|
|
53
|
-
}, [visibleLines, reset]);
|
|
54
|
-
useEffect(() => {
|
|
55
|
-
const el = scrollRef.current;
|
|
56
|
-
if (!el) return;
|
|
57
|
-
requestAnimationFrame(() => {
|
|
58
|
-
el.scrollTop = el.scrollHeight;
|
|
59
|
-
});
|
|
60
|
-
}, []);
|
|
61
|
-
return /* @__PURE__ */ jsx(LazyMotion, { features: domAnimation, children: /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col bg-[#1a1a2e]", className), children: [
|
|
62
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 border-white/10 border-b px-4 py-2", children: [
|
|
63
|
-
/* @__PURE__ */ jsxs("div", { className: "flex gap-1.5", children: [
|
|
64
|
-
/* @__PURE__ */ jsx("span", { className: "size-2.5 rounded-full bg-red-400/80" }),
|
|
65
|
-
/* @__PURE__ */ jsx("span", { className: "size-2.5 rounded-full bg-amber-400/80" }),
|
|
66
|
-
/* @__PURE__ */ jsx("span", { className: "size-2.5 rounded-full bg-emerald-400/80" })
|
|
67
|
-
] }),
|
|
68
|
-
/* @__PURE__ */ jsx("span", { className: "ml-2 font-mono text-[10px] text-white/40", children: "cogentic-sandbox" }),
|
|
69
|
-
/* @__PURE__ */ jsxs("div", { className: "ml-auto flex items-center gap-2", children: [
|
|
70
|
-
/* @__PURE__ */ jsx("span", { className: "rounded-full bg-amber-500/20 px-2 py-0.5 font-bold font-mono text-[9px] text-amber-300", children: "SANDBOX" }),
|
|
71
|
-
/* @__PURE__ */ jsx(
|
|
72
|
-
"button",
|
|
73
|
-
{
|
|
74
|
-
onClick: reset,
|
|
75
|
-
className: "text-white/30 transition-colors hover:text-white/60",
|
|
76
|
-
"aria-label": "Restart",
|
|
77
|
-
children: /* @__PURE__ */ jsx(RotateCcw, { className: "size-3" })
|
|
78
|
-
}
|
|
79
|
-
)
|
|
80
|
-
] })
|
|
81
|
-
] }),
|
|
82
|
-
/* @__PURE__ */ jsx("div", { ref: scrollRef, className: "scrollbar-none flex-1 overflow-y-auto px-4 py-3", children: /* @__PURE__ */ jsxs("div", { className: "space-y-0.5", children: [
|
|
83
|
-
SCRIPT.slice(0, visibleLines).map((line, i) => /* @__PURE__ */ jsx(
|
|
84
|
-
m.p,
|
|
85
|
-
{
|
|
86
|
-
initial: { opacity: 0 },
|
|
87
|
-
animate: { opacity: 1 },
|
|
88
|
-
className: cn("font-mono text-[11px] leading-relaxed", lineColour[line.type]),
|
|
89
|
-
children: line.text || "\xA0"
|
|
90
|
-
},
|
|
91
|
-
i
|
|
92
|
-
)),
|
|
93
|
-
visibleLines < SCRIPT.length && /* @__PURE__ */ jsx("p", { className: "animate-pulse font-mono text-[11px] text-white/30", children: "\u2588" })
|
|
94
|
-
] }) }),
|
|
95
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 border-white/10 border-t px-4 py-1.5", children: [
|
|
96
|
-
/* @__PURE__ */ jsx(Play, { className: "size-3 text-emerald-400" }),
|
|
97
|
-
/* @__PURE__ */ jsxs("span", { className: "font-mono text-[9px] text-white/30", children: [
|
|
98
|
-
"Sandbox ",
|
|
99
|
-
"\u2022",
|
|
100
|
-
" No production data ",
|
|
101
|
-
"\u2022",
|
|
102
|
-
" Realistic responses"
|
|
103
|
-
] })
|
|
104
|
-
] })
|
|
105
|
-
] }) });
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
export { AnimationSandbox };
|
|
109
|
-
//# sourceMappingURL=chunk-N7PBUY7G.js.map
|
|
110
|
-
//# sourceMappingURL=chunk-N7PBUY7G.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/animations/animation-sandbox.tsx"],"names":[],"mappings":"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","file":"chunk-N7PBUY7G.js","sourcesContent":["\"use client\"\n\nimport { Play, RotateCcw } from \"lucide-react\"\nimport { domAnimation, LazyMotion, m } from \"motion/react\"\nimport { useCallback, useEffect, useRef, useState } from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\ntype ConsoleLine = {\n type: \"command\" | \"output\" | \"success\" | \"info\"\n text: string\n}\n\nconst SCRIPT: ConsoleLine[] = [\n { type: \"command\", text: \"$ cogentic-cli test transfer --corridor AU:SG --amount 45000\" },\n { type: \"info\", text: \"\\u2192 Using sandbox environment (test mode)\" },\n { type: \"output\", text: \"Creating test transfer TXN-TEST-0001...\" },\n { type: \"output\", text: \"Screening against sandbox ruleset...\" },\n { type: \"output\", text: \" Jurisdiction: AUSTRAC \\u2192 MAS\" },\n { type: \"output\", text: \" Threshold check: AUD 10,000 exceeded\" },\n { type: \"output\", text: \" Travel Rule: IVMS101 required\" },\n { type: \"output\", text: \" Risk score: 18/100 (Low)\" },\n { type: \"success\", text: \"\\u2713 Transfer screened: COMPLIANT\" },\n { type: \"info\", text: \"\\u2192 Sandbox report: SR-TEST-0001 generated\" },\n { type: \"info\", text: \"\\u2192 No production data affected\" },\n { type: \"command\", text: \"\" },\n { type: \"command\", text: \"$ cogentic-cli test transfer --corridor HK:GB --amount 120000\" },\n { type: \"info\", text: \"\\u2192 Using sandbox environment (test mode)\" },\n { type: \"output\", text: \"Creating test transfer TXN-TEST-0002...\" },\n { type: \"output\", text: \"Screening against sandbox ruleset...\" },\n { type: \"output\", text: \" Jurisdiction: SFC \\u2192 FCA\" },\n { type: \"output\", text: \" High-risk corridor detected\" },\n { type: \"output\", text: \" Enhanced due diligence triggered\" },\n { type: \"output\", text: \" Risk score: 72/100 (High)\" },\n { type: \"success\", text: \"\\u26A0 Transfer screened: FLAGGED \\u2014 manual review required\" },\n]\n\nconst lineColour: Record<ConsoleLine[\"type\"], string> = {\n command: \"text-white/90\",\n output: \"text-white/50\",\n success: \"text-emerald-400\",\n info: \"text-[#00D4FF]/80\",\n}\n\nexport default function AnimationSandbox({ className }: { className?: string }) {\n const [visibleLines, setVisibleLines] = useState(0)\n const scrollRef = useRef<HTMLDivElement>(null)\n\n const reset = useCallback(() => {\n setVisibleLines(0)\n }, [])\n\n useEffect(() => {\n if (visibleLines < SCRIPT.length) {\n const line = SCRIPT[visibleLines]\n const delay = line.type === \"command\" ? 400 : line.text === \"\" ? 200 : 120\n const id = setTimeout(() => setVisibleLines((v) => v + 1), delay)\n return () => clearTimeout(id)\n } else {\n const id = setTimeout(reset, 4000)\n return () => clearTimeout(id)\n }\n }, [visibleLines, reset])\n\n useEffect(() => {\n const el = scrollRef.current\n if (!el) return\n requestAnimationFrame(() => {\n el.scrollTop = el.scrollHeight\n })\n }, [])\n\n return (\n <LazyMotion features={domAnimation}>\n <div className={cn(\"flex flex-col bg-[#1a1a2e]\", className)}>\n {/* Terminal bar */}\n <div className=\"flex items-center gap-3 border-white/10 border-b px-4 py-2\">\n <div className=\"flex gap-1.5\">\n <span className=\"size-2.5 rounded-full bg-red-400/80\" />\n <span className=\"size-2.5 rounded-full bg-amber-400/80\" />\n <span className=\"size-2.5 rounded-full bg-emerald-400/80\" />\n </div>\n <span className=\"ml-2 font-mono text-[10px] text-white/40\">cogentic-sandbox</span>\n <div className=\"ml-auto flex items-center gap-2\">\n <span className=\"rounded-full bg-amber-500/20 px-2 py-0.5 font-bold font-mono text-[9px] text-amber-300\">\n SANDBOX\n </span>\n <button\n onClick={reset}\n className=\"text-white/30 transition-colors hover:text-white/60\"\n aria-label=\"Restart\"\n >\n <RotateCcw className=\"size-3\" />\n </button>\n </div>\n </div>\n\n {/* Console output */}\n <div ref={scrollRef} className=\"scrollbar-none flex-1 overflow-y-auto px-4 py-3\">\n <div className=\"space-y-0.5\">\n {SCRIPT.slice(0, visibleLines).map((line, i) => (\n <m.p\n key={i}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n className={cn(\"font-mono text-[11px] leading-relaxed\", lineColour[line.type])}\n >\n {line.text || \"\\u00A0\"}\n </m.p>\n ))}\n {visibleLines < SCRIPT.length && (\n <p className=\"animate-pulse font-mono text-[11px] text-white/30\">{\"\\u2588\"}</p>\n )}\n </div>\n </div>\n\n {/* Footer */}\n <div className=\"flex items-center gap-2 border-white/10 border-t px-4 py-1.5\">\n <Play className=\"size-3 text-emerald-400\" />\n <span className=\"font-mono text-[9px] text-white/30\">\n Sandbox {\"\\u2022\"} No production data {\"\\u2022\"} Realistic responses\n </span>\n </div>\n </div>\n </LazyMotion>\n )\n}\n"]}
|