@cogentic-co/ds 0.5.5 → 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.
Files changed (101) hide show
  1. package/dist/animations/animation-ai-analysis.js +99 -4
  2. package/dist/animations/animation-ai-analysis.js.map +1 -1
  3. package/dist/animations/animation-audit-trail.js +194 -2
  4. package/dist/animations/animation-audit-trail.js.map +1 -1
  5. package/dist/animations/animation-compliance-reports.js +108 -3
  6. package/dist/animations/animation-compliance-reports.js.map +1 -1
  7. package/dist/animations/animation-custom-rules.js +107 -3
  8. package/dist/animations/animation-custom-rules.js.map +1 -1
  9. package/dist/animations/animation-jira-ticket.js +114 -3
  10. package/dist/animations/animation-jira-ticket.js.map +1 -1
  11. package/dist/animations/animation-jurisdiction-detection.js +122 -3
  12. package/dist/animations/animation-jurisdiction-detection.js.map +1 -1
  13. package/dist/animations/animation-multi-protocol.js +63 -2
  14. package/dist/animations/animation-multi-protocol.js.map +1 -1
  15. package/dist/animations/animation-pricing-preview.js +169 -3
  16. package/dist/animations/animation-pricing-preview.js.map +1 -1
  17. package/dist/animations/animation-realtime-updates.js +140 -4
  18. package/dist/animations/animation-realtime-updates.js.map +1 -1
  19. package/dist/animations/animation-rest-api.js +121 -2
  20. package/dist/animations/animation-rest-api.js.map +1 -1
  21. package/dist/animations/animation-risk-scoring.js +158 -4
  22. package/dist/animations/animation-risk-scoring.js.map +1 -1
  23. package/dist/animations/animation-sandbox.js +107 -2
  24. package/dist/animations/animation-sandbox.js.map +1 -1
  25. package/dist/animations/animation-scheduled-reports.js +107 -3
  26. package/dist/animations/animation-scheduled-reports.js.map +1 -1
  27. package/dist/animations/animation-secure-messaging.js +99 -3
  28. package/dist/animations/animation-secure-messaging.js.map +1 -1
  29. package/dist/animations/animation-slack-notification.js +90 -3
  30. package/dist/animations/animation-slack-notification.js.map +1 -1
  31. package/dist/animations/animation-sop-mapping.js +158 -2
  32. package/dist/animations/animation-sop-mapping.js.map +1 -1
  33. package/dist/animations/animation-team-routing.js +118 -4
  34. package/dist/animations/animation-team-routing.js.map +1 -1
  35. package/dist/animations/animation-teams-notification.js +89 -3
  36. package/dist/animations/animation-teams-notification.js.map +1 -1
  37. package/dist/animations/animation-vasp-identification.js +142 -3
  38. package/dist/animations/animation-vasp-identification.js.map +1 -1
  39. package/dist/animations/animation-webhooks.js +105 -3
  40. package/dist/animations/animation-webhooks.js.map +1 -1
  41. package/dist/blocks/auth-form.js +0 -1
  42. package/dist/blocks/feature-section.js +0 -1
  43. package/dist/blocks/hero-section.js +0 -1
  44. package/dist/blocks/pricing-table.js +0 -1
  45. package/dist/blocks/stat-card.js +0 -1
  46. package/dist/chart-DkwdRX-i.d.ts +50 -0
  47. package/dist/charts.d.ts +73 -3
  48. package/dist/charts.js +287 -2
  49. package/dist/charts.js.map +1 -1
  50. package/dist/chunk-6RWCZUAD.js +0 -1
  51. package/dist/chunk-GJAWCIGE.js +237 -0
  52. package/dist/chunk-GJAWCIGE.js.map +1 -0
  53. package/dist/chunk-GZNLQE3I.js +0 -1
  54. package/dist/chunk-TAPJEVUA.js +0 -1
  55. package/dist/index.d.ts +34 -52
  56. package/dist/index.js +109 -168
  57. package/dist/index.js.map +1 -1
  58. package/package.json +24 -34
  59. package/dist/chunk-4YD3YS4B.js +0 -110
  60. package/dist/chunk-4YD3YS4B.js.map +0 -1
  61. package/dist/chunk-5JLZ42JT.js +0 -125
  62. package/dist/chunk-5JLZ42JT.js.map +0 -1
  63. package/dist/chunk-5OOO6TRA.js +0 -111
  64. package/dist/chunk-5OOO6TRA.js.map +0 -1
  65. package/dist/chunk-65Z2VEKG.js +0 -161
  66. package/dist/chunk-65Z2VEKG.js.map +0 -1
  67. package/dist/chunk-BTFYV3TI.js +0 -102
  68. package/dist/chunk-BTFYV3TI.js.map +0 -1
  69. package/dist/chunk-BTZB4JRC.js +0 -117
  70. package/dist/chunk-BTZB4JRC.js.map +0 -1
  71. package/dist/chunk-BZSA47MS.js +0 -121
  72. package/dist/chunk-BZSA47MS.js.map +0 -1
  73. package/dist/chunk-EFLWU2JP.js +0 -145
  74. package/dist/chunk-EFLWU2JP.js.map +0 -1
  75. package/dist/chunk-F7REPQOA.js +0 -93
  76. package/dist/chunk-F7REPQOA.js.map +0 -1
  77. package/dist/chunk-FKPK3CB7.js +0 -143
  78. package/dist/chunk-FKPK3CB7.js.map +0 -1
  79. package/dist/chunk-H7VUIMEL.js +0 -172
  80. package/dist/chunk-H7VUIMEL.js.map +0 -1
  81. package/dist/chunk-HTYR73ON.js +0 -161
  82. package/dist/chunk-HTYR73ON.js.map +0 -1
  83. package/dist/chunk-I26ZXVSY.js +0 -124
  84. package/dist/chunk-I26ZXVSY.js.map +0 -1
  85. package/dist/chunk-IKATDPHG.js +0 -92
  86. package/dist/chunk-IKATDPHG.js.map +0 -1
  87. package/dist/chunk-KUOF3XRZ.js +0 -108
  88. package/dist/chunk-KUOF3XRZ.js.map +0 -1
  89. package/dist/chunk-N7PBUY7G.js +0 -110
  90. package/dist/chunk-N7PBUY7G.js.map +0 -1
  91. package/dist/chunk-NAPDFVBI.js +0 -102
  92. package/dist/chunk-NAPDFVBI.js.map +0 -1
  93. package/dist/chunk-RTK7R4KZ.js +0 -66
  94. package/dist/chunk-RTK7R4KZ.js.map +0 -1
  95. package/dist/chunk-RZZTDJHG.js +0 -110
  96. package/dist/chunk-RZZTDJHG.js.map +0 -1
  97. package/dist/chunk-SNOJLZP4.js +0 -197
  98. package/dist/chunk-SNOJLZP4.js.map +0 -1
  99. package/dist/chunk-U4EPKN7G.js +0 -518
  100. package/dist/chunk-U4EPKN7G.js.map +0 -1
  101. package/dist/index-CcPuHWa-.d.ts +0 -118
@@ -1,161 +0,0 @@
1
- "use client";
2
- import { cn } from './chunk-GZNLQE3I.js';
3
- import { jsxs, jsx } from 'react/jsx-runtime';
4
-
5
- var ITEMS = [
6
- {
7
- code: "SOP-001",
8
- regulation: "AML/CFT Policy",
9
- jurisdiction: "AUSTRAC",
10
- flag: "\u{1F1E6}\u{1F1FA}",
11
- version: "v3.2",
12
- coverage: "14 controls mapped",
13
- lastReview: "Reviewed 3 days ago",
14
- status: "mapped"
15
- },
16
- {
17
- code: "SOP-014",
18
- regulation: "Travel Rule \u2014 IVMS101",
19
- jurisdiction: "MAS",
20
- flag: "\u{1F1F8}\u{1F1EC}",
21
- version: "v2.1",
22
- coverage: "8 controls mapped",
23
- lastReview: "Updated 12 hours ago",
24
- status: "updated"
25
- },
26
- {
27
- code: "SOP-007",
28
- regulation: "Enhanced Due Diligence",
29
- jurisdiction: "FCA",
30
- flag: "\u{1F1EC}\u{1F1E7}",
31
- version: "v1.8",
32
- coverage: "11 controls mapped",
33
- lastReview: "Review due in 2 days",
34
- status: "review"
35
- },
36
- {
37
- code: "SOP-023",
38
- regulation: "Sanctions Screening",
39
- jurisdiction: "OFAC",
40
- flag: "\u{1F1FA}\u{1F1F8}",
41
- version: "v4.0",
42
- coverage: "6 controls mapped",
43
- lastReview: "Reviewed 1 week ago",
44
- status: "mapped"
45
- },
46
- {
47
- code: "SOP-009",
48
- regulation: "MiCA Compliance",
49
- jurisdiction: "EU",
50
- flag: "\u{1F1EA}\u{1F1FA}",
51
- version: "v1.4",
52
- coverage: "19 controls mapped",
53
- lastReview: "Updated 2 days ago",
54
- status: "updated"
55
- },
56
- {
57
- code: "SOP-031",
58
- regulation: "VA Licensing Framework",
59
- jurisdiction: "SFC",
60
- flag: "\u{1F1ED}\u{1F1F0}",
61
- version: "v2.0",
62
- coverage: "9 controls mapped",
63
- lastReview: "Reviewed 5 days ago",
64
- status: "mapped"
65
- },
66
- {
67
- code: "SOP-018",
68
- regulation: "Threshold Reporting",
69
- jurisdiction: "FINTRAC",
70
- flag: "\u{1F1E8}\u{1F1E6}",
71
- version: "v3.1",
72
- coverage: "7 controls mapped",
73
- lastReview: "Review due tomorrow",
74
- status: "review"
75
- },
76
- {
77
- code: "SOP-042",
78
- regulation: "VASP Obligations",
79
- jurisdiction: "VARA",
80
- flag: "\u{1F1E6}\u{1F1EA}",
81
- version: "v1.1",
82
- coverage: "12 controls mapped",
83
- lastReview: "Reviewed 2 weeks ago",
84
- status: "mapped"
85
- }
86
- ];
87
- var statusStyle = {
88
- mapped: { dot: "bg-emerald-400", label: "Mapped", bg: "bg-emerald-50 text-emerald-700" },
89
- review: { dot: "bg-amber-400", label: "Review", bg: "bg-amber-50 text-amber-700" },
90
- updated: { dot: "bg-[#00D4FF]", label: "Updated", bg: "bg-sky-50 text-sky-700" }
91
- };
92
- function AnimationSopMapping({ className }) {
93
- const doubled = [...ITEMS, ...ITEMS];
94
- return /* @__PURE__ */ jsxs("div", { className: cn("relative flex items-center overflow-hidden", className), children: [
95
- /* @__PURE__ */ jsx("div", { className: "pointer-events-none absolute inset-y-0 left-0 z-10 w-16 bg-gradient-to-r from-card/40 to-transparent" }),
96
- /* @__PURE__ */ jsx("div", { className: "pointer-events-none absolute inset-y-0 right-0 z-10 w-16 bg-gradient-to-l from-card/40 to-transparent" }),
97
- /* @__PURE__ */ jsx(
98
- "div",
99
- {
100
- className: "flex w-max animate-marquee-left gap-4 px-4",
101
- style: { animationDuration: "55s" },
102
- children: doubled.map((item, i) => {
103
- const st = statusStyle[item.status];
104
- return /* @__PURE__ */ jsxs(
105
- "div",
106
- {
107
- className: "flex shrink-0 flex-col rounded-xl border border-gray-200 bg-white shadow-sm",
108
- style: { width: 260 },
109
- children: [
110
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 border-gray-100 border-b px-4 py-3", children: [
111
- /* @__PURE__ */ jsx("span", { className: "font-bold font-mono text-[11px] text-gray-400", children: item.code }),
112
- /* @__PURE__ */ jsx("span", { className: "text-[10px] text-gray-300", children: item.version }),
113
- /* @__PURE__ */ jsx(
114
- "span",
115
- {
116
- className: cn(
117
- "ml-auto rounded-full px-2 py-0.5 font-semibold text-[10px]",
118
- st.bg
119
- ),
120
- children: st.label
121
- }
122
- )
123
- ] }),
124
- /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2.5 px-4 py-3", children: [
125
- /* @__PURE__ */ jsxs("div", { children: [
126
- /* @__PURE__ */ jsx("p", { className: "font-semibold text-[13px] text-gray-900 leading-snug", children: item.regulation }),
127
- /* @__PURE__ */ jsxs("div", { className: "mt-1 flex items-center gap-1.5", children: [
128
- /* @__PURE__ */ jsx("span", { className: "text-sm", children: item.flag }),
129
- /* @__PURE__ */ jsx("span", { className: "text-[11px] text-gray-500", children: item.jurisdiction })
130
- ] })
131
- ] }),
132
- /* @__PURE__ */ jsxs("div", { children: [
133
- /* @__PURE__ */ jsx("div", { className: "flex items-center justify-between", children: /* @__PURE__ */ jsx("span", { className: "font-medium text-[10px] text-gray-500", children: item.coverage }) }),
134
- /* @__PURE__ */ jsx("div", { className: "mt-1 h-1.5 overflow-hidden rounded-full bg-gray-100", children: /* @__PURE__ */ jsx(
135
- "div",
136
- {
137
- className: cn(
138
- "h-full rounded-full",
139
- item.status === "mapped" ? "bg-emerald-400" : item.status === "updated" ? "bg-[#00D4FF]" : "bg-amber-400"
140
- ),
141
- style: {
142
- width: item.status === "mapped" ? "100%" : item.status === "updated" ? "85%" : "60%"
143
- }
144
- }
145
- ) })
146
- ] }),
147
- /* @__PURE__ */ jsx("p", { className: "text-[10px] text-gray-400", children: item.lastReview })
148
- ] })
149
- ]
150
- },
151
- `${item.code}-${i}`
152
- );
153
- })
154
- }
155
- )
156
- ] });
157
- }
158
-
159
- export { AnimationSopMapping };
160
- //# sourceMappingURL=chunk-65Z2VEKG.js.map
161
- //# sourceMappingURL=chunk-65Z2VEKG.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/animations/animation-sop-mapping.tsx"],"names":[],"mappings":"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","file":"chunk-65Z2VEKG.js","sourcesContent":["\"use client\"\n\nimport { cn } from \"../lib/utils\"\n\ntype SopItem = {\n code: string\n regulation: string\n jurisdiction: string\n flag: string\n version: string\n coverage: string\n lastReview: string\n status: \"mapped\" | \"review\" | \"updated\"\n}\n\nconst ITEMS: SopItem[] = [\n {\n code: \"SOP-001\",\n regulation: \"AML/CFT Policy\",\n jurisdiction: \"AUSTRAC\",\n flag: \"\\u{1F1E6}\\u{1F1FA}\",\n version: \"v3.2\",\n coverage: \"14 controls mapped\",\n lastReview: \"Reviewed 3 days ago\",\n status: \"mapped\",\n },\n {\n code: \"SOP-014\",\n regulation: \"Travel Rule — IVMS101\",\n jurisdiction: \"MAS\",\n flag: \"\\u{1F1F8}\\u{1F1EC}\",\n version: \"v2.1\",\n coverage: \"8 controls mapped\",\n lastReview: \"Updated 12 hours ago\",\n status: \"updated\",\n },\n {\n code: \"SOP-007\",\n regulation: \"Enhanced Due Diligence\",\n jurisdiction: \"FCA\",\n flag: \"\\u{1F1EC}\\u{1F1E7}\",\n version: \"v1.8\",\n coverage: \"11 controls mapped\",\n lastReview: \"Review due in 2 days\",\n status: \"review\",\n },\n {\n code: \"SOP-023\",\n regulation: \"Sanctions Screening\",\n jurisdiction: \"OFAC\",\n flag: \"\\u{1F1FA}\\u{1F1F8}\",\n version: \"v4.0\",\n coverage: \"6 controls mapped\",\n lastReview: \"Reviewed 1 week ago\",\n status: \"mapped\",\n },\n {\n code: \"SOP-009\",\n regulation: \"MiCA Compliance\",\n jurisdiction: \"EU\",\n flag: \"\\u{1F1EA}\\u{1F1FA}\",\n version: \"v1.4\",\n coverage: \"19 controls mapped\",\n lastReview: \"Updated 2 days ago\",\n status: \"updated\",\n },\n {\n code: \"SOP-031\",\n regulation: \"VA Licensing Framework\",\n jurisdiction: \"SFC\",\n flag: \"\\u{1F1ED}\\u{1F1F0}\",\n version: \"v2.0\",\n coverage: \"9 controls mapped\",\n lastReview: \"Reviewed 5 days ago\",\n status: \"mapped\",\n },\n {\n code: \"SOP-018\",\n regulation: \"Threshold Reporting\",\n jurisdiction: \"FINTRAC\",\n flag: \"\\u{1F1E8}\\u{1F1E6}\",\n version: \"v3.1\",\n coverage: \"7 controls mapped\",\n lastReview: \"Review due tomorrow\",\n status: \"review\",\n },\n {\n code: \"SOP-042\",\n regulation: \"VASP Obligations\",\n jurisdiction: \"VARA\",\n flag: \"\\u{1F1E6}\\u{1F1EA}\",\n version: \"v1.1\",\n coverage: \"12 controls mapped\",\n lastReview: \"Reviewed 2 weeks ago\",\n status: \"mapped\",\n },\n]\n\nconst statusStyle: Record<SopItem[\"status\"], { dot: string; label: string; bg: string }> = {\n mapped: { dot: \"bg-emerald-400\", label: \"Mapped\", bg: \"bg-emerald-50 text-emerald-700\" },\n review: { dot: \"bg-amber-400\", label: \"Review\", bg: \"bg-amber-50 text-amber-700\" },\n updated: { dot: \"bg-[#00D4FF]\", label: \"Updated\", bg: \"bg-sky-50 text-sky-700\" },\n}\n\nexport default function AnimationSopMapping({ className }: { className?: string }) {\n const doubled = [...ITEMS, ...ITEMS]\n\n return (\n <div className={cn(\"relative flex items-center overflow-hidden\", className)}>\n {/* Fade edges */}\n <div className=\"pointer-events-none absolute inset-y-0 left-0 z-10 w-16 bg-gradient-to-r from-card/40 to-transparent\" />\n <div className=\"pointer-events-none absolute inset-y-0 right-0 z-10 w-16 bg-gradient-to-l from-card/40 to-transparent\" />\n\n {/* Scrolling row */}\n <div\n className=\"flex w-max animate-marquee-left gap-4 px-4\"\n style={{ animationDuration: \"55s\" }}\n >\n {doubled.map((item, i) => {\n const st = statusStyle[item.status]\n return (\n <div\n key={`${item.code}-${i}`}\n className=\"flex shrink-0 flex-col rounded-xl border border-gray-200 bg-white shadow-sm\"\n style={{ width: 260 }}\n >\n {/* Header */}\n <div className=\"flex items-center gap-2 border-gray-100 border-b px-4 py-3\">\n <span className=\"font-bold font-mono text-[11px] text-gray-400\">{item.code}</span>\n <span className=\"text-[10px] text-gray-300\">{item.version}</span>\n <span\n className={cn(\n \"ml-auto rounded-full px-2 py-0.5 font-semibold text-[10px]\",\n st.bg,\n )}\n >\n {st.label}\n </span>\n </div>\n\n {/* Body */}\n <div className=\"flex flex-col gap-2.5 px-4 py-3\">\n <div>\n <p className=\"font-semibold text-[13px] text-gray-900 leading-snug\">\n {item.regulation}\n </p>\n <div className=\"mt-1 flex items-center gap-1.5\">\n <span className=\"text-sm\">{item.flag}</span>\n <span className=\"text-[11px] text-gray-500\">{item.jurisdiction}</span>\n </div>\n </div>\n\n {/* Progress bar */}\n <div>\n <div className=\"flex items-center justify-between\">\n <span className=\"font-medium text-[10px] text-gray-500\">{item.coverage}</span>\n </div>\n <div className=\"mt-1 h-1.5 overflow-hidden rounded-full bg-gray-100\">\n <div\n className={cn(\n \"h-full rounded-full\",\n item.status === \"mapped\"\n ? \"bg-emerald-400\"\n : item.status === \"updated\"\n ? \"bg-[#00D4FF]\"\n : \"bg-amber-400\",\n )}\n style={{\n width:\n item.status === \"mapped\"\n ? \"100%\"\n : item.status === \"updated\"\n ? \"85%\"\n : \"60%\",\n }}\n />\n </div>\n </div>\n\n <p className=\"text-[10px] text-gray-400\">{item.lastReview}</p>\n </div>\n </div>\n )\n })}\n </div>\n </div>\n )\n}\n"]}
@@ -1,102 +0,0 @@
1
- "use client";
2
- import { EASE_OUT } from './chunk-TAPJEVUA.js';
3
- import { useAnimationTimer } from './chunk-RXV2XUDZ.js';
4
- import { cn } from './chunk-GZNLQE3I.js';
5
- import { Sparkles } from 'lucide-react';
6
- import { LazyMotion, domAnimation, AnimatePresence, m } from 'motion/react';
7
- import { useRef, useEffect } from 'react';
8
- import { jsx, jsxs } from 'react/jsx-runtime';
9
-
10
- var INSIGHTS = [
11
- {
12
- category: "Risk Assessment",
13
- text: "Counterparty risk assessed as {low} based on VASP registration status and historical transaction patterns."
14
- },
15
- {
16
- category: "Threshold Analysis",
17
- text: "Transfer {exceeds SGD 20,000} reporting threshold \u2014 enhanced due diligence triggered under MAS Notice PSN01."
18
- },
19
- {
20
- category: "Travel Rule",
21
- text: "Beneficiary VASP {verified} against IVMS101 directory \u2014 originator and beneficiary data complete."
22
- },
23
- {
24
- category: "Jurisdiction Mapping",
25
- text: "Corridor {SG \u2192 US} mapped \u2014 both counterparties subject to Travel Rule data requirements."
26
- },
27
- {
28
- category: "Sanctions Screening",
29
- text: "Screening {cleared} \u2014 no matches found across OFAC SDN, EU consolidated, and UN sanctions lists."
30
- }
31
- ];
32
- function renderHighlightedText(text) {
33
- const parts = text.split(/\{([^}]+)\}/g);
34
- return parts.map(
35
- (part, i) => i % 2 === 1 ? /* @__PURE__ */ jsx("span", { className: "rounded-sm bg-[#00D4FF]/10 px-1 font-medium text-[#0099BB]", children: part }, i) : /* @__PURE__ */ jsx("span", { children: part }, i)
36
- );
37
- }
38
- function AnimationAIAnalysis({ className }) {
39
- const [timerRef, tick] = useAnimationTimer(2800);
40
- const count = Math.min(tick + 1, 3);
41
- const startIdx = Math.max(0, tick + 1 - count);
42
- const visibleCards = Array.from({ length: count }, (_, i) => (startIdx + i) % INSIGHTS.length);
43
- const scrollRef = useRef(null);
44
- useEffect(() => {
45
- if (scrollRef.current) {
46
- scrollRef.current.scrollTo({
47
- top: scrollRef.current.scrollHeight,
48
- behavior: "smooth"
49
- });
50
- }
51
- }, []);
52
- return /* @__PURE__ */ jsx(LazyMotion, { features: domAnimation, children: /* @__PURE__ */ jsx("div", { ref: timerRef, className: cn("flex flex-col overflow-hidden", className), children: /* @__PURE__ */ jsx(
53
- "div",
54
- {
55
- ref: scrollRef,
56
- className: "scrollbar-none flex flex-1 flex-col gap-2.5 overflow-y-auto px-4 py-4",
57
- children: /* @__PURE__ */ jsx(AnimatePresence, { initial: false, children: visibleCards.map((insightIdx, i) => {
58
- const insight = INSIGHTS[insightIdx];
59
- const isLatest = i === visibleCards.length - 1;
60
- return /* @__PURE__ */ jsxs(
61
- m.div,
62
- {
63
- initial: { opacity: 0, y: 16 },
64
- animate: { opacity: isLatest ? 1 : 0.5, y: 0 },
65
- exit: { opacity: 0, y: -8 },
66
- transition: { duration: 0.4, ease: EASE_OUT },
67
- className: cn(
68
- "shrink-0 rounded-xl border bg-white p-3.5 transition-shadow duration-300",
69
- isLatest ? "border-gray-200 shadow-sm" : "border-gray-100"
70
- ),
71
- children: [
72
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 font-medium text-[11px] text-gray-400", children: [
73
- /* @__PURE__ */ jsx(
74
- Sparkles,
75
- {
76
- className: cn("h-3 w-3", isLatest ? "text-[#00D4FF]" : "text-gray-300")
77
- }
78
- ),
79
- insight.category
80
- ] }),
81
- /* @__PURE__ */ jsx(
82
- "p",
83
- {
84
- className: cn(
85
- "mt-1.5 text-[12px] leading-relaxed sm:text-[13px]",
86
- isLatest ? "text-gray-700" : "text-gray-400"
87
- ),
88
- children: renderHighlightedText(insight.text)
89
- }
90
- )
91
- ]
92
- },
93
- `${i}-${insightIdx}`
94
- );
95
- }) })
96
- }
97
- ) }) });
98
- }
99
-
100
- export { AnimationAIAnalysis };
101
- //# sourceMappingURL=chunk-BTFYV3TI.js.map
102
- //# sourceMappingURL=chunk-BTFYV3TI.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/animations/animation-ai-analysis.tsx"],"names":[],"mappings":"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","file":"chunk-BTFYV3TI.js","sourcesContent":["\"use client\"\n\nimport { Sparkles } 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 { EASE_OUT } from \"../lib/animation\"\nimport { cn } from \"../lib/utils\"\n\ntype Insight = {\n category: string\n text: string\n}\n\nconst INSIGHTS: Insight[] = [\n {\n category: \"Risk Assessment\",\n text: \"Counterparty risk assessed as {low} based on VASP registration status and historical transaction patterns.\",\n },\n {\n category: \"Threshold Analysis\",\n text: \"Transfer {exceeds SGD 20,000} reporting threshold — enhanced due diligence triggered under MAS Notice PSN01.\",\n },\n {\n category: \"Travel Rule\",\n text: \"Beneficiary VASP {verified} against IVMS101 directory — originator and beneficiary data complete.\",\n },\n {\n category: \"Jurisdiction Mapping\",\n text: \"Corridor {SG → US} mapped — both counterparties subject to Travel Rule data requirements.\",\n },\n {\n category: \"Sanctions Screening\",\n text: \"Screening {cleared} — no matches found across OFAC SDN, EU consolidated, and UN sanctions lists.\",\n },\n]\n\nfunction renderHighlightedText(text: string) {\n const parts = text.split(/\\{([^}]+)\\}/g)\n return parts.map((part, i) =>\n i % 2 === 1 ? (\n <span key={i} className=\"rounded-sm bg-[#00D4FF]/10 px-1 font-medium text-[#0099BB]\">\n {part}\n </span>\n ) : (\n <span key={i}>{part}</span>\n ),\n )\n}\n\nexport default function AnimationAIAnalysis({ className }: { className?: string }) {\n const [timerRef, tick] = useAnimationTimer(2800)\n const count = Math.min(tick + 1, 3)\n const startIdx = Math.max(0, tick + 1 - count)\n const visibleCards = Array.from({ length: count }, (_, i) => (startIdx + i) % INSIGHTS.length)\n const scrollRef = useRef<HTMLDivElement>(null)\n\n // Auto-scroll to bottom when new card appears\n useEffect(() => {\n if (scrollRef.current) {\n scrollRef.current.scrollTo({\n top: scrollRef.current.scrollHeight,\n behavior: \"smooth\",\n })\n }\n }, [])\n\n return (\n <LazyMotion features={domAnimation}>\n <div ref={timerRef} className={cn(\"flex flex-col overflow-hidden\", className)}>\n <div\n ref={scrollRef}\n className=\"scrollbar-none flex flex-1 flex-col gap-2.5 overflow-y-auto px-4 py-4\"\n >\n <AnimatePresence initial={false}>\n {visibleCards.map((insightIdx, i) => {\n const insight = INSIGHTS[insightIdx]\n const isLatest = i === visibleCards.length - 1\n return (\n <m.div\n key={`${i}-${insightIdx}`}\n initial={{ opacity: 0, y: 16 }}\n animate={{ opacity: isLatest ? 1 : 0.5, y: 0 }}\n exit={{ opacity: 0, y: -8 }}\n transition={{ duration: 0.4, ease: EASE_OUT }}\n className={cn(\n \"shrink-0 rounded-xl border bg-white p-3.5 transition-shadow duration-300\",\n isLatest ? \"border-gray-200 shadow-sm\" : \"border-gray-100\",\n )}\n >\n <div className=\"flex items-center gap-2 font-medium text-[11px] text-gray-400\">\n <Sparkles\n className={cn(\"h-3 w-3\", isLatest ? \"text-[#00D4FF]\" : \"text-gray-300\")}\n />\n {insight.category}\n </div>\n <p\n className={cn(\n \"mt-1.5 text-[12px] leading-relaxed sm:text-[13px]\",\n isLatest ? \"text-gray-700\" : \"text-gray-400\",\n )}\n >\n {renderHighlightedText(insight.text)}\n </p>\n </m.div>\n )\n })}\n </AnimatePresence>\n </div>\n </div>\n </LazyMotion>\n )\n}\n"]}
@@ -1,117 +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 AnimationJiraTicket({ className }) {
8
- return /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col bg-white p-4", className), children: [
9
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5 text-[10px] text-gray-400", children: [
10
- /* @__PURE__ */ jsx("span", { children: "COGENTIC" }),
11
- /* @__PURE__ */ jsx("span", { children: "/" }),
12
- /* @__PURE__ */ jsx("span", { children: "Compliance Reviews" }),
13
- /* @__PURE__ */ jsx("span", { children: "/" }),
14
- /* @__PURE__ */ jsx("span", { className: "text-gray-600", children: "COG-847" })
15
- ] }),
16
- /* @__PURE__ */ jsxs(
17
- motion.div,
18
- {
19
- initial: { opacity: 0, y: 8 },
20
- animate: { opacity: 1, y: 0 },
21
- transition: { duration: 0.5, ease: EASE_OUT, delay: 0.2 },
22
- children: [
23
- /* @__PURE__ */ jsx("h4", { className: "mt-2 font-semibold text-[14px] text-gray-900 leading-snug", children: "Review: TXN-0847 \u2014 High risk corridor" }),
24
- /* @__PURE__ */ jsxs(
25
- motion.div,
26
- {
27
- initial: { opacity: 0 },
28
- animate: { opacity: 1 },
29
- transition: { duration: 0.3, delay: 0.5 },
30
- className: "mt-2.5 flex flex-wrap items-center gap-2",
31
- children: [
32
- /* @__PURE__ */ jsx("span", { className: "rounded bg-blue-100 px-2 py-0.5 font-bold text-[10px] text-blue-700", children: "IN REVIEW" }),
33
- /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-1 text-[10px] text-gray-500", children: [
34
- /* @__PURE__ */ jsxs("svg", { width: "10", height: "10", viewBox: "0 0 10 10", fill: "none", children: [
35
- /* @__PURE__ */ jsx("path", { d: "M5 2V5L7 6.5", stroke: "currentColor", strokeWidth: "1", strokeLinecap: "round" }),
36
- /* @__PURE__ */ jsx("circle", { cx: "5", cy: "5", r: "4", stroke: "currentColor", strokeWidth: "1" })
37
- ] }),
38
- "Created 2 min ago"
39
- ] }),
40
- /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-1 text-[10px] text-gray-500", children: [
41
- /* @__PURE__ */ jsx("span", { className: "inline-flex size-4 items-center justify-center rounded-full bg-emerald-100 font-bold text-[7px] text-emerald-700", children: "JC" }),
42
- "J. Chen"
43
- ] }),
44
- /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-1 rounded bg-red-50 px-1.5 py-0.5 font-semibold text-[10px] text-red-600", children: [
45
- /* @__PURE__ */ jsx("svg", { width: "8", height: "8", viewBox: "0 0 8 8", fill: "none", children: /* @__PURE__ */ jsx(
46
- "path",
47
- {
48
- d: "M4 1V5M4 6.5V7",
49
- stroke: "currentColor",
50
- strokeWidth: "1.2",
51
- strokeLinecap: "round"
52
- }
53
- ) }),
54
- "High"
55
- ] })
56
- ]
57
- }
58
- )
59
- ]
60
- }
61
- ),
62
- /* @__PURE__ */ jsxs(
63
- motion.div,
64
- {
65
- initial: { opacity: 0, y: 6 },
66
- animate: { opacity: 1, y: 0 },
67
- transition: { duration: 0.4, ease: EASE_OUT, delay: 0.7 },
68
- className: "mt-3 rounded border border-gray-100 bg-gray-50 p-3",
69
- children: [
70
- /* @__PURE__ */ jsx("p", { className: "font-semibold text-[10px] text-gray-400 uppercase tracking-wider", children: "Cogentic compliance brief" }),
71
- /* @__PURE__ */ jsx("div", { className: "mt-2 space-y-1.5", children: [
72
- { label: "Corridor", value: "AU \u2192 SG" },
73
- { label: "Risk score", value: "72 / 100" },
74
- { label: "Trigger", value: "PEP screening match, threshold exceeded" },
75
- { label: "Recommendation", value: "Verify beneficiary identity before clearing" }
76
- ].map((row, i) => /* @__PURE__ */ jsxs(
77
- motion.div,
78
- {
79
- initial: { opacity: 0, x: -4 },
80
- animate: { opacity: 1, x: 0 },
81
- transition: { duration: 0.25, delay: 0.9 + i * 0.1 },
82
- className: "flex gap-2",
83
- children: [
84
- /* @__PURE__ */ jsx("span", { className: "w-[80px] shrink-0 font-medium text-[10px] text-gray-400", children: row.label }),
85
- /* @__PURE__ */ jsx("span", { className: "font-medium text-[10px] text-gray-700", children: row.value })
86
- ]
87
- },
88
- row.label
89
- )) })
90
- ]
91
- }
92
- ),
93
- /* @__PURE__ */ jsxs(
94
- motion.div,
95
- {
96
- initial: { opacity: 0 },
97
- animate: { opacity: 1 },
98
- transition: { duration: 0.3, delay: 1.4 },
99
- className: "mt-3",
100
- children: [
101
- /* @__PURE__ */ jsx("p", { className: "font-semibold text-[10px] text-gray-400 uppercase tracking-wider", children: "Activity" }),
102
- /* @__PURE__ */ jsxs("div", { className: "mt-1.5 flex items-start gap-2", children: [
103
- /* @__PURE__ */ jsx("div", { className: "mt-0.5 size-1.5 shrink-0 rounded-full bg-blue-400" }),
104
- /* @__PURE__ */ jsxs("p", { className: "text-[10px] text-gray-500", children: [
105
- /* @__PURE__ */ jsx("span", { className: "font-medium text-gray-700", children: "Cogentic" }),
106
- " created this issue from flagged transfer TXN-0847"
107
- ] })
108
- ] })
109
- ]
110
- }
111
- )
112
- ] });
113
- }
114
-
115
- export { AnimationJiraTicket };
116
- //# sourceMappingURL=chunk-BTZB4JRC.js.map
117
- //# sourceMappingURL=chunk-BTZB4JRC.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/animations/animation-jira-ticket.tsx"],"names":[],"mappings":"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","file":"chunk-BTZB4JRC.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 AnimationJiraTicket({ className }: { className?: string }) {\n return (\n <div className={cn(\"flex flex-col bg-white p-4\", className)}>\n {/* Breadcrumb */}\n <div className=\"flex items-center gap-1.5 text-[10px] text-gray-400\">\n <span>COGENTIC</span>\n <span>/</span>\n <span>Compliance Reviews</span>\n <span>/</span>\n <span className=\"text-gray-600\">COG-847</span>\n </div>\n\n {/* Issue header */}\n <motion.div\n initial={{ opacity: 0, y: 8 }}\n animate={{ opacity: 1, y: 0 }}\n transition={{ duration: 0.5, ease: EASE_OUT, delay: 0.2 }}\n >\n <h4 className=\"mt-2 font-semibold text-[14px] text-gray-900 leading-snug\">\n Review: TXN-0847 — High risk corridor\n </h4>\n\n {/* Status & meta row */}\n <motion.div\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n transition={{ duration: 0.3, delay: 0.5 }}\n className=\"mt-2.5 flex flex-wrap items-center gap-2\"\n >\n <span className=\"rounded bg-blue-100 px-2 py-0.5 font-bold text-[10px] text-blue-700\">\n IN REVIEW\n </span>\n <span className=\"flex items-center gap-1 text-[10px] text-gray-500\">\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\">\n <path d=\"M5 2V5L7 6.5\" stroke=\"currentColor\" strokeWidth=\"1\" strokeLinecap=\"round\" />\n <circle cx=\"5\" cy=\"5\" r=\"4\" stroke=\"currentColor\" strokeWidth=\"1\" />\n </svg>\n Created 2 min ago\n </span>\n <span className=\"flex items-center gap-1 text-[10px] text-gray-500\">\n <span className=\"inline-flex size-4 items-center justify-center rounded-full bg-emerald-100 font-bold text-[7px] text-emerald-700\">\n JC\n </span>\n J. Chen\n </span>\n <span className=\"flex items-center gap-1 rounded bg-red-50 px-1.5 py-0.5 font-semibold text-[10px] text-red-600\">\n <svg width=\"8\" height=\"8\" viewBox=\"0 0 8 8\" fill=\"none\">\n <path\n d=\"M4 1V5M4 6.5V7\"\n stroke=\"currentColor\"\n strokeWidth=\"1.2\"\n strokeLinecap=\"round\"\n />\n </svg>\n High\n </span>\n </motion.div>\n </motion.div>\n\n {/* Description — Cogentic compliance brief */}\n <motion.div\n initial={{ opacity: 0, y: 6 }}\n animate={{ opacity: 1, y: 0 }}\n transition={{ duration: 0.4, ease: EASE_OUT, delay: 0.7 }}\n className=\"mt-3 rounded border border-gray-100 bg-gray-50 p-3\"\n >\n <p className=\"font-semibold text-[10px] text-gray-400 uppercase tracking-wider\">\n Cogentic compliance brief\n </p>\n <div className=\"mt-2 space-y-1.5\">\n {[\n { label: \"Corridor\", value: \"AU \\u2192 SG\" },\n { label: \"Risk score\", value: \"72 / 100\" },\n { label: \"Trigger\", value: \"PEP screening match, threshold exceeded\" },\n { label: \"Recommendation\", value: \"Verify beneficiary identity before clearing\" },\n ].map((row, i) => (\n <motion.div\n key={row.label}\n initial={{ opacity: 0, x: -4 }}\n animate={{ opacity: 1, x: 0 }}\n transition={{ duration: 0.25, delay: 0.9 + i * 0.1 }}\n className=\"flex gap-2\"\n >\n <span className=\"w-[80px] shrink-0 font-medium text-[10px] text-gray-400\">\n {row.label}\n </span>\n <span className=\"font-medium text-[10px] text-gray-700\">{row.value}</span>\n </motion.div>\n ))}\n </div>\n </motion.div>\n\n {/* Activity section */}\n <motion.div\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n transition={{ duration: 0.3, delay: 1.4 }}\n className=\"mt-3\"\n >\n <p className=\"font-semibold text-[10px] text-gray-400 uppercase tracking-wider\">Activity</p>\n <div className=\"mt-1.5 flex items-start gap-2\">\n <div className=\"mt-0.5 size-1.5 shrink-0 rounded-full bg-blue-400\" />\n <p className=\"text-[10px] text-gray-500\">\n <span className=\"font-medium text-gray-700\">Cogentic</span> created this issue from\n flagged transfer TXN-0847\n </p>\n </div>\n </motion.div>\n </div>\n )\n}\n"]}
@@ -1,121 +0,0 @@
1
- "use client";
2
- import { EASE_OUT } from './chunk-TAPJEVUA.js';
3
- import { useAnimationTimer } from './chunk-RXV2XUDZ.js';
4
- import { cn } from './chunk-GZNLQE3I.js';
5
- import { LazyMotion, domAnimation, m } from 'motion/react';
6
- import { jsx, jsxs } from 'react/jsx-runtime';
7
-
8
- var TRANSFERS = [
9
- {
10
- txn: "TXN-0847",
11
- corridor: "AU \u2192 SG",
12
- risk: "High",
13
- assignee: { name: "Sarah Chen", initials: "SC", colour: "bg-violet-100 text-violet-700" },
14
- reason: "High risk \u2192 Senior analyst"
15
- },
16
- {
17
- txn: "TXN-0848",
18
- corridor: "DE \u2192 US",
19
- risk: "Low",
20
- assignee: {
21
- name: "Auto-approved",
22
- initials: "\u2713",
23
- colour: "bg-emerald-100 text-emerald-700"
24
- },
25
- reason: "Low risk \u2192 Auto-approval"
26
- },
27
- {
28
- txn: "TXN-0849",
29
- corridor: "JP \u2192 AE",
30
- risk: "Medium",
31
- assignee: { name: "Marcus Webb", initials: "MW", colour: "bg-blue-100 text-blue-700" },
32
- reason: "MENA specialist"
33
- },
34
- {
35
- txn: "TXN-0850",
36
- corridor: "CA \u2192 HK",
37
- risk: "High",
38
- assignee: { name: "Li Wei", initials: "LW", colour: "bg-amber-100 text-amber-700" },
39
- reason: "APAC jurisdiction"
40
- }
41
- ];
42
- var riskColour = {
43
- Low: "bg-emerald-50 text-emerald-700",
44
- Medium: "bg-amber-50 text-amber-700",
45
- High: "bg-red-50 text-red-700"
46
- };
47
- function AnimationTeamRouting({ className }) {
48
- const [timerRef, tick] = useAnimationTimer(2400);
49
- const count = Math.min(tick + 1, 4);
50
- const startIdx = Math.max(0, tick + 1 - count);
51
- const visible = Array.from({ length: count }, (_, i) => (startIdx + i) % TRANSFERS.length);
52
- return /* @__PURE__ */ jsx(LazyMotion, { features: domAnimation, children: /* @__PURE__ */ jsxs("div", { ref: timerRef, className: cn("flex flex-col p-5", className), children: [
53
- /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
54
- /* @__PURE__ */ jsxs("div", { children: [
55
- /* @__PURE__ */ jsx("p", { className: "font-semibold text-[15px] text-foreground", children: "Team Routing" }),
56
- /* @__PURE__ */ jsx("p", { className: "text-[12px] text-gray-400", children: "Automatic assignment" })
57
- ] }),
58
- /* @__PURE__ */ jsxs("div", { className: "flex -space-x-1.5", children: [
59
- ["SC", "MW", "LW"].map((init) => /* @__PURE__ */ jsx(
60
- "div",
61
- {
62
- className: "flex size-6 items-center justify-center rounded-full border-2 border-white bg-gray-100 font-bold text-[9px] text-gray-500",
63
- children: init
64
- },
65
- init
66
- )),
67
- /* @__PURE__ */ jsx("div", { className: "flex size-6 items-center justify-center rounded-full border-2 border-white bg-gray-100 font-bold text-[9px] text-gray-400", children: "+4" })
68
- ] })
69
- ] }),
70
- /* @__PURE__ */ jsx("div", { className: "mt-4 space-y-2", children: visible.map((tIdx, i) => {
71
- const t = TRANSFERS[tIdx];
72
- const isLatest = i === visible.length - 1;
73
- return /* @__PURE__ */ jsxs(
74
- m.div,
75
- {
76
- initial: { opacity: 0, x: -12 },
77
- animate: { opacity: isLatest ? 1 : 0.5, x: 0 },
78
- transition: { duration: 0.35, ease: EASE_OUT },
79
- className: cn(
80
- "flex items-center gap-3 rounded-lg border bg-white px-3 py-2.5",
81
- isLatest ? "border-gray-200 shadow-sm" : "border-gray-100"
82
- ),
83
- children: [
84
- /* @__PURE__ */ jsx(
85
- "div",
86
- {
87
- className: cn(
88
- "flex size-8 shrink-0 items-center justify-center rounded-full font-bold text-[11px]",
89
- t.assignee.colour
90
- ),
91
- children: t.assignee.initials
92
- }
93
- ),
94
- /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
95
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
96
- /* @__PURE__ */ jsx("span", { className: "font-bold font-mono text-[11px] text-gray-400", children: t.txn }),
97
- /* @__PURE__ */ jsx("span", { className: "text-[11px] text-gray-400", children: t.corridor })
98
- ] }),
99
- /* @__PURE__ */ jsx("p", { className: "truncate text-[11px] text-gray-500", children: t.reason })
100
- ] }),
101
- /* @__PURE__ */ jsx(
102
- "span",
103
- {
104
- className: cn(
105
- "shrink-0 rounded-full px-2 py-0.5 font-semibold text-[10px]",
106
- riskColour[t.risk]
107
- ),
108
- children: t.risk
109
- }
110
- )
111
- ]
112
- },
113
- `${i}-${tIdx}`
114
- );
115
- }) })
116
- ] }) });
117
- }
118
-
119
- export { AnimationTeamRouting };
120
- //# sourceMappingURL=chunk-BZSA47MS.js.map
121
- //# sourceMappingURL=chunk-BZSA47MS.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/animations/animation-team-routing.tsx"],"names":[],"mappings":"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","file":"chunk-BZSA47MS.js","sourcesContent":["\"use client\"\n\nimport { domAnimation, LazyMotion, m } from \"motion/react\"\n\nimport { useAnimationTimer } from \"../hooks/use-animation-timer\"\n\nimport { EASE_OUT } from \"../lib/animation\"\nimport { cn } from \"../lib/utils\"\n\ntype Transfer = {\n txn: string\n corridor: string\n risk: \"Low\" | \"Medium\" | \"High\"\n assignee: { name: string; initials: string; colour: string }\n reason: string\n}\n\nconst TRANSFERS: Transfer[] = [\n {\n txn: \"TXN-0847\",\n corridor: \"AU \\u2192 SG\",\n risk: \"High\",\n assignee: { name: \"Sarah Chen\", initials: \"SC\", colour: \"bg-violet-100 text-violet-700\" },\n reason: \"High risk \\u2192 Senior analyst\",\n },\n {\n txn: \"TXN-0848\",\n corridor: \"DE \\u2192 US\",\n risk: \"Low\",\n assignee: {\n name: \"Auto-approved\",\n initials: \"\\u2713\",\n colour: \"bg-emerald-100 text-emerald-700\",\n },\n reason: \"Low risk \\u2192 Auto-approval\",\n },\n {\n txn: \"TXN-0849\",\n corridor: \"JP \\u2192 AE\",\n risk: \"Medium\",\n assignee: { name: \"Marcus Webb\", initials: \"MW\", colour: \"bg-blue-100 text-blue-700\" },\n reason: \"MENA specialist\",\n },\n {\n txn: \"TXN-0850\",\n corridor: \"CA \\u2192 HK\",\n risk: \"High\",\n assignee: { name: \"Li Wei\", initials: \"LW\", colour: \"bg-amber-100 text-amber-700\" },\n reason: \"APAC jurisdiction\",\n },\n]\n\nconst riskColour: Record<string, string> = {\n Low: \"bg-emerald-50 text-emerald-700\",\n Medium: \"bg-amber-50 text-amber-700\",\n High: \"bg-red-50 text-red-700\",\n}\n\nexport default function AnimationTeamRouting({ className }: { className?: string }) {\n const [timerRef, tick] = useAnimationTimer(2400)\n const count = Math.min(tick + 1, 4)\n const startIdx = Math.max(0, tick + 1 - count)\n const visible = Array.from({ length: count }, (_, i) => (startIdx + i) % TRANSFERS.length)\n\n return (\n <LazyMotion features={domAnimation}>\n <div ref={timerRef} 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-foreground\">Team Routing</p>\n <p className=\"text-[12px] text-gray-400\">Automatic assignment</p>\n </div>\n <div className=\"flex -space-x-1.5\">\n {[\"SC\", \"MW\", \"LW\"].map((init) => (\n <div\n key={init}\n className=\"flex size-6 items-center justify-center rounded-full border-2 border-white bg-gray-100 font-bold text-[9px] text-gray-500\"\n >\n {init}\n </div>\n ))}\n <div className=\"flex size-6 items-center justify-center rounded-full border-2 border-white bg-gray-100 font-bold text-[9px] text-gray-400\">\n +4\n </div>\n </div>\n </div>\n\n {/* Routing entries */}\n <div className=\"mt-4 space-y-2\">\n {visible.map((tIdx, i) => {\n const t = TRANSFERS[tIdx]\n const isLatest = i === visible.length - 1\n return (\n <m.div\n key={`${i}-${tIdx}`}\n initial={{ opacity: 0, x: -12 }}\n animate={{ opacity: isLatest ? 1 : 0.5, x: 0 }}\n transition={{ duration: 0.35, ease: EASE_OUT }}\n className={cn(\n \"flex items-center gap-3 rounded-lg border bg-white px-3 py-2.5\",\n isLatest ? \"border-gray-200 shadow-sm\" : \"border-gray-100\",\n )}\n >\n {/* Avatar */}\n <div\n className={cn(\n \"flex size-8 shrink-0 items-center justify-center rounded-full font-bold text-[11px]\",\n t.assignee.colour,\n )}\n >\n {t.assignee.initials}\n </div>\n\n {/* Info */}\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex items-center gap-2\">\n <span className=\"font-bold font-mono text-[11px] text-gray-400\">{t.txn}</span>\n <span className=\"text-[11px] text-gray-400\">{t.corridor}</span>\n </div>\n <p className=\"truncate text-[11px] text-gray-500\">{t.reason}</p>\n </div>\n\n {/* Risk badge */}\n <span\n className={cn(\n \"shrink-0 rounded-full px-2 py-0.5 font-semibold text-[10px]\",\n riskColour[t.risk],\n )}\n >\n {t.risk}\n </span>\n </m.div>\n )\n })}\n </div>\n </div>\n </LazyMotion>\n )\n}\n"]}