trade-safety 0.1.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/README.md +59 -0
- package/dist/components/DetailedResult/CautionsSection.d.ts +7 -0
- package/dist/components/DetailedResult/CautionsSection.d.ts.map +1 -0
- package/dist/components/DetailedResult/CautionsSection.js +14 -0
- package/dist/components/DetailedResult/CautionsSection.js.map +1 -0
- package/dist/components/DetailedResult/CompanionCtaSection.d.ts +2 -0
- package/dist/components/DetailedResult/CompanionCtaSection.d.ts.map +1 -0
- package/dist/components/DetailedResult/CompanionCtaSection.js +12 -0
- package/dist/components/DetailedResult/CompanionCtaSection.js.map +1 -0
- package/dist/components/DetailedResult/ExpertAdviceSection.d.ts +6 -0
- package/dist/components/DetailedResult/ExpertAdviceSection.d.ts.map +1 -0
- package/dist/components/DetailedResult/ExpertAdviceSection.js +11 -0
- package/dist/components/DetailedResult/ExpertAdviceSection.js.map +1 -0
- package/dist/components/DetailedResult/PriceAnalysisSection.d.ts +7 -0
- package/dist/components/DetailedResult/PriceAnalysisSection.d.ts.map +1 -0
- package/dist/components/DetailedResult/PriceAnalysisSection.js +15 -0
- package/dist/components/DetailedResult/PriceAnalysisSection.js.map +1 -0
- package/dist/components/DetailedResult/RecommendationSection.d.ts +7 -0
- package/dist/components/DetailedResult/RecommendationSection.d.ts.map +1 -0
- package/dist/components/DetailedResult/RecommendationSection.js +10 -0
- package/dist/components/DetailedResult/RecommendationSection.js.map +1 -0
- package/dist/components/DetailedResult/RiskScoreHero.d.ts +6 -0
- package/dist/components/DetailedResult/RiskScoreHero.d.ts.map +1 -0
- package/dist/components/DetailedResult/RiskScoreHero.js +30 -0
- package/dist/components/DetailedResult/RiskScoreHero.js.map +1 -0
- package/dist/components/DetailedResult/RiskSignalsSection.d.ts +7 -0
- package/dist/components/DetailedResult/RiskSignalsSection.d.ts.map +1 -0
- package/dist/components/DetailedResult/RiskSignalsSection.js +14 -0
- package/dist/components/DetailedResult/RiskSignalsSection.js.map +1 -0
- package/dist/components/DetailedResult/SafeIndicatorsSection.d.ts +7 -0
- package/dist/components/DetailedResult/SafeIndicatorsSection.d.ts.map +1 -0
- package/dist/components/DetailedResult/SafeIndicatorsSection.js +14 -0
- package/dist/components/DetailedResult/SafeIndicatorsSection.js.map +1 -0
- package/dist/components/DetailedResult/SafetyChecklistSection.d.ts +6 -0
- package/dist/components/DetailedResult/SafetyChecklistSection.d.ts.map +1 -0
- package/dist/components/DetailedResult/SafetyChecklistSection.js +13 -0
- package/dist/components/DetailedResult/SafetyChecklistSection.js.map +1 -0
- package/dist/components/DetailedResult/TranslationSection.d.ts +7 -0
- package/dist/components/DetailedResult/TranslationSection.d.ts.map +1 -0
- package/dist/components/DetailedResult/TranslationSection.js +12 -0
- package/dist/components/DetailedResult/TranslationSection.js.map +1 -0
- package/dist/components/DetailedResult/index.d.ts +10 -0
- package/dist/components/DetailedResult/index.d.ts.map +1 -0
- package/dist/components/DetailedResult/index.js +33 -0
- package/dist/components/DetailedResult/index.js.map +1 -0
- package/dist/components/QuickResultTeaser.d.ts +8 -0
- package/dist/components/QuickResultTeaser.d.ts.map +1 -0
- package/dist/components/QuickResultTeaser.js +11 -0
- package/dist/components/QuickResultTeaser.js.map +1 -0
- package/dist/components/RiskSignalCard.d.ts +8 -0
- package/dist/components/RiskSignalCard.d.ts.map +1 -0
- package/dist/components/RiskSignalCard.js +26 -0
- package/dist/components/RiskSignalCard.js.map +1 -0
- package/dist/i18n/locales/en/translation.json +95 -0
- package/dist/i18n/locales/es/translation.json +95 -0
- package/dist/i18n/locales/id/translation.json +95 -0
- package/dist/i18n/locales/ja/translation.json +95 -0
- package/dist/i18n/locales/ko/translation.json +95 -0
- package/dist/i18n/locales/zh/translation.json +95 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/dist/repositories/TradeSafetyRepository.d.ts +570 -0
- package/dist/repositories/TradeSafetyRepository.d.ts.map +1 -0
- package/dist/repositories/TradeSafetyRepository.js +87 -0
- package/dist/repositories/TradeSafetyRepository.js.map +1 -0
- package/dist/repositories/index.d.ts +6 -0
- package/dist/repositories/index.d.ts.map +1 -0
- package/dist/repositories/index.js +6 -0
- package/dist/repositories/index.js.map +1 -0
- package/dist/types.d.ts +67 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +10 -0
- package/dist/types.js.map +1 -0
- package/package.json +84 -0
package/README.md
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# Trade Safety Frontend
|
|
2
|
+
|
|
3
|
+
K-pop 굿즈 거래 안전성 분석 React 컴포넌트
|
|
4
|
+
|
|
5
|
+
## 주요 컴포넌트
|
|
6
|
+
|
|
7
|
+
- **DetailedResult**: 상세 분석 결과 (위험도, 신호, 추천)
|
|
8
|
+
- **QuickResultTeaser**: Freemium 티저 (비로그인 사용자용)
|
|
9
|
+
- **RiskSignalCard**: 위험 신호 카드
|
|
10
|
+
- **TradeSafetyRepository**: API 클라이언트
|
|
11
|
+
|
|
12
|
+
## 설치
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
npm install trade-safety @aioia/core
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## 사용법
|
|
19
|
+
|
|
20
|
+
### 컴포넌트
|
|
21
|
+
|
|
22
|
+
```tsx
|
|
23
|
+
import { DetailedResult } from "trade-safety";
|
|
24
|
+
|
|
25
|
+
<DetailedResult analysis={analysis} expertAdvice={expertAdvice} />
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### Repository
|
|
29
|
+
|
|
30
|
+
```tsx
|
|
31
|
+
import { TradeSafetyRepository } from "trade-safety";
|
|
32
|
+
|
|
33
|
+
const repository = new TradeSafetyRepository(apiService);
|
|
34
|
+
const response = await repository.create({ input_text: "..." });
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### i18n 통합
|
|
38
|
+
|
|
39
|
+
```tsx
|
|
40
|
+
import { enTranslations, koTranslations } from "trade-safety";
|
|
41
|
+
|
|
42
|
+
i18n.init({
|
|
43
|
+
resources: {
|
|
44
|
+
en: { translation: { page: { tradeSafety: enTranslations } } },
|
|
45
|
+
ko: { translation: { page: { tradeSafety: koTranslations } } },
|
|
46
|
+
},
|
|
47
|
+
});
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Peer Dependencies
|
|
51
|
+
|
|
52
|
+
- React 18+
|
|
53
|
+
- Next.js 13 또는 14
|
|
54
|
+
- Tailwind CSS with DaisyUI
|
|
55
|
+
- @aioia/core
|
|
56
|
+
|
|
57
|
+
## 라이선스
|
|
58
|
+
|
|
59
|
+
Apache 2.0
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { RiskSignal } from "../../types";
|
|
2
|
+
interface CautionsSectionProps {
|
|
3
|
+
cautions: RiskSignal[];
|
|
4
|
+
}
|
|
5
|
+
export declare function CautionsSection({ cautions }: CautionsSectionProps): import("react/jsx-runtime").JSX.Element | null;
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=CautionsSection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CautionsSection.d.ts","sourceRoot":"","sources":["../../../src/components/DetailedResult/CautionsSection.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,UAAU,oBAAoB;IAC5B,QAAQ,EAAE,UAAU,EAAE,CAAC;CACxB;AAED,wBAAgB,eAAe,CAAC,EAAE,QAAQ,EAAE,EAAE,oBAAoB,kDA2BjE"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { ExclamationTriangleIcon } from "@heroicons/react/24/solid";
|
|
4
|
+
import { motion } from "framer-motion";
|
|
5
|
+
import { useTranslation } from "react-i18next";
|
|
6
|
+
import { RiskSignalCard } from "../RiskSignalCard";
|
|
7
|
+
export function CautionsSection(_a) {
|
|
8
|
+
var cautions = _a.cautions;
|
|
9
|
+
var t = useTranslation().t;
|
|
10
|
+
if (cautions.length === 0)
|
|
11
|
+
return null;
|
|
12
|
+
return (_jsxs("section", { children: [_jsxs("h3", { className: "mb-6 flex items-center gap-3 text-3xl font-bold", children: [_jsx(ExclamationTriangleIcon, { className: "size-10 text-warning" }), t("page.tradeSafety.result.cautions")] }), _jsx("div", { className: "space-y-4", children: cautions.map(function (caution, idx) { return (_jsx(motion.div, { initial: { x: -50, opacity: 0 }, animate: { x: 0, opacity: 1 }, transition: { delay: idx * 0.1 }, whileHover: { scale: 1.02, x: 10 }, children: _jsx(RiskSignalCard, { signal: caution, variant: "warning" }) }, idx)); }) })] }));
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=CautionsSection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CautionsSection.js","sourceRoot":"","sources":["../../../src/components/DetailedResult/CautionsSection.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAMnD,MAAM,UAAU,eAAe,CAAC,EAAkC;QAAhC,QAAQ,cAAA;IAChC,IAAA,CAAC,GAAK,cAAc,EAAE,EAArB,CAAsB;IAE/B,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEvC,OAAO,CACL,8BACE,cAAI,SAAS,EAAC,iDAAiD,aAC7D,KAAC,uBAAuB,IAAC,SAAS,EAAC,sBAAsB,GAAG,EAC3D,CAAC,CAAC,kCAAkC,CAAC,IACnC,EAEL,cAAK,SAAS,EAAC,WAAW,YACvB,QAAQ,CAAC,GAAG,CAAC,UAAC,OAAO,EAAE,GAAG,IAAK,OAAA,CAC9B,KAAC,MAAM,CAAC,GAAG,IAET,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAC/B,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAC7B,UAAU,EAAE,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,EAAE,EAChC,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,YAElC,KAAC,cAAc,IAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAC,SAAS,GAAG,IANhD,GAAG,CAOG,CACd,EAV+B,CAU/B,CAAC,GACE,IACE,CACX,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CompanionCtaSection.d.ts","sourceRoot":"","sources":["../../../src/components/DetailedResult/CompanionCtaSection.tsx"],"names":[],"mappings":"AAOA,wBAAgB,mBAAmB,4CA+BlC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { ChatBubbleOvalLeftEllipsisIcon } from "@heroicons/react/24/solid";
|
|
4
|
+
import { motion } from "framer-motion";
|
|
5
|
+
import Link from "next/link";
|
|
6
|
+
import { useTranslation } from "react-i18next";
|
|
7
|
+
export function CompanionCtaSection() {
|
|
8
|
+
var _a = useTranslation(), t = _a.t, i18n = _a.i18n;
|
|
9
|
+
var lang = i18n.language;
|
|
10
|
+
return (_jsx("section", { className: "hero min-h-[30vh] rounded-3xl bg-primary text-primary-content", children: _jsx("div", { className: "hero-content text-center", children: _jsxs("div", { children: [_jsx(ChatBubbleOvalLeftEllipsisIcon, { className: "mx-auto mb-6 size-20" }), _jsx("h3", { className: "mb-4 text-4xl font-bold", children: t("page.tradeSafety.result.companionCta.title") }), _jsx("p", { className: "mb-8 max-w-2xl text-xl", children: t("page.tradeSafety.result.companionCta.description") }), _jsx(Link, { href: "/".concat(lang, "/companions"), children: _jsx(motion.button, { whileHover: { scale: 1.1 }, whileTap: { scale: 0.95 }, className: "btn btn-lg bg-base-100 text-primary hover:bg-base-200", children: t("page.tradeSafety.result.companionCta.button") }) })] }) }) }));
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=CompanionCtaSection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CompanionCtaSection.js","sourceRoot":"","sources":["../../../src/components/DetailedResult/CompanionCtaSection.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,UAAU,mBAAmB;IAC3B,IAAA,KAAc,cAAc,EAAE,EAA5B,CAAC,OAAA,EAAE,IAAI,UAAqB,CAAC;IACrC,IAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;IAE3B,OAAO,CACL,kBAAS,SAAS,EAAC,+DAA+D,YAChF,cAAK,SAAS,EAAC,0BAA0B,YACvC,0BACE,KAAC,8BAA8B,IAAC,SAAS,EAAC,sBAAsB,GAAG,EAEnE,aAAI,SAAS,EAAC,yBAAyB,YACpC,CAAC,CAAC,4CAA4C,CAAC,GAC7C,EAEL,YAAG,SAAS,EAAC,wBAAwB,YAClC,CAAC,CAAC,kDAAkD,CAAC,GACpD,EAEJ,KAAC,IAAI,IAAC,IAAI,EAAE,WAAI,IAAI,gBAAa,YAC/B,KAAC,MAAM,CAAC,MAAM,IACZ,UAAU,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAC1B,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EACzB,SAAS,EAAC,uDAAuD,YAEhE,CAAC,CAAC,6CAA6C,CAAC,GACnC,GACX,IACH,GACF,GACE,CACX,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExpertAdviceSection.d.ts","sourceRoot":"","sources":["../../../src/components/DetailedResult/ExpertAdviceSection.tsx"],"names":[],"mappings":"AAMA,UAAU,wBAAwB;IAChC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,mBAAmB,CAAC,EAAE,MAAM,EAAE,EAAE,wBAAwB,2CA+BvE"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { UserIcon } from "@heroicons/react/24/solid";
|
|
4
|
+
import { motion } from "framer-motion";
|
|
5
|
+
import { useTranslation } from "react-i18next";
|
|
6
|
+
export function ExpertAdviceSection(_a) {
|
|
7
|
+
var advice = _a.advice;
|
|
8
|
+
var t = useTranslation().t;
|
|
9
|
+
return (_jsx(motion.section, { whileHover: { scale: 1.02 }, className: "card bg-secondary text-secondary-content shadow-xl", children: _jsxs("div", { className: "card-body", children: [_jsxs("div", { className: "mb-6 flex items-center gap-4", children: [_jsx("div", { className: "avatar placeholder", children: _jsx("div", { className: "w-16 rounded-full bg-primary text-primary-content", children: _jsx(UserIcon, { className: "size-8" }) }) }), _jsxs("div", { children: [_jsx("h3", { className: "text-2xl font-bold", children: t("page.tradeSafety.result.expertAdvice") }), _jsx("p", { className: "opacity-80", children: t("page.tradeSafety.result.expertName") })] })] }), _jsx("div", { className: "prose max-w-none", children: _jsx("p", { className: "whitespace-pre-wrap text-lg", children: advice }) })] }) }));
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=ExpertAdviceSection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExpertAdviceSection.js","sourceRoot":"","sources":["../../../src/components/DetailedResult/ExpertAdviceSection.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAM/C,MAAM,UAAU,mBAAmB,CAAC,EAAoC;QAAlC,MAAM,YAAA;IAClC,IAAA,CAAC,GAAK,cAAc,EAAE,EAArB,CAAsB;IAE/B,OAAO,CACL,KAAC,MAAM,CAAC,OAAO,IACb,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAC3B,SAAS,EAAC,oDAAoD,YAE9D,eAAK,SAAS,EAAC,WAAW,aACxB,eAAK,SAAS,EAAC,8BAA8B,aAC3C,cAAK,SAAS,EAAC,oBAAoB,YACjC,cAAK,SAAS,EAAC,mDAAmD,YAChE,KAAC,QAAQ,IAAC,SAAS,EAAC,QAAQ,GAAG,GAC3B,GACF,EACN,0BACE,aAAI,SAAS,EAAC,oBAAoB,YAC/B,CAAC,CAAC,sCAAsC,CAAC,GACvC,EACL,YAAG,SAAS,EAAC,YAAY,YACtB,CAAC,CAAC,oCAAoC,CAAC,GACtC,IACA,IACF,EAEN,cAAK,SAAS,EAAC,kBAAkB,YAC/B,YAAG,SAAS,EAAC,6BAA6B,YAAE,MAAM,GAAK,GACnD,IACF,GACS,CAClB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { PriceAnalysis } from "../../types";
|
|
2
|
+
interface PriceAnalysisSectionProps {
|
|
3
|
+
data?: PriceAnalysis;
|
|
4
|
+
}
|
|
5
|
+
export declare function PriceAnalysisSection({ data }: PriceAnalysisSectionProps): import("react/jsx-runtime").JSX.Element | null;
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=PriceAnalysisSection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PriceAnalysisSection.d.ts","sourceRoot":"","sources":["../../../src/components/DetailedResult/PriceAnalysisSection.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,UAAU,yBAAyB;IACjC,IAAI,CAAC,EAAE,aAAa,CAAC;CACtB;AAED,wBAAgB,oBAAoB,CAAC,EAAE,IAAI,EAAE,EAAE,yBAAyB,kDAmEvE"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { CurrencyDollarIcon, ExclamationTriangleIcon, } from "@heroicons/react/24/solid";
|
|
4
|
+
import { useTranslation } from "react-i18next";
|
|
5
|
+
export function PriceAnalysisSection(_a) {
|
|
6
|
+
var data = _a.data;
|
|
7
|
+
var _b = useTranslation(), t = _b.t, i18n = _b.i18n;
|
|
8
|
+
if (!data)
|
|
9
|
+
return null;
|
|
10
|
+
return (_jsxs("section", { children: [_jsxs("h3", { className: "mb-6 flex items-center gap-3 text-3xl font-bold", children: [_jsx(CurrencyDollarIcon, { className: "size-10 text-secondary" }), t("page.tradeSafety.result.priceAnalysis")] }), _jsx("div", { className: "card bg-base-200 shadow-xl", children: _jsxs("div", { className: "card-body", children: [_jsxs("div", { className: "grid grid-cols-1 gap-6 md:grid-cols-2", children: [data.market_price_range && (_jsxs("div", { children: [_jsx("h4", { className: "mb-2 text-lg font-semibold", children: t("page.tradeSafety.result.marketPrice") }), _jsx("p", { className: "text-2xl font-bold", children: data.market_price_range })] })), data.offered_price && (_jsxs("div", { children: [_jsx("h4", { className: "mb-2 text-lg font-semibold", children: t("page.tradeSafety.result.offeredPrice") }), _jsx("p", { className: "text-2xl font-bold text-primary", children: new Intl.NumberFormat(i18n.language, {
|
|
11
|
+
style: "currency",
|
|
12
|
+
currency: data.currency || "USD",
|
|
13
|
+
}).format(data.offered_price) })] }))] }), _jsxs("div", { className: "mt-6 rounded-lg bg-base-100 p-4", children: [_jsx("h4", { className: "mb-2 text-lg font-semibold", children: t("page.tradeSafety.result.priceAssessment") }), _jsx("p", { className: "text-neutral-content", children: data.price_assessment })] }), data.warnings.length > 0 && (_jsxs("div", { className: "mt-4", children: [_jsxs("h4", { className: "mb-2 flex items-center gap-2 text-lg font-semibold text-warning", children: [_jsx(ExclamationTriangleIcon, { className: "size-6" }), t("page.tradeSafety.result.priceWarnings")] }), _jsx("ul", { className: "list-inside list-disc space-y-1", children: data.warnings.map(function (warning, index) { return (_jsx("li", { className: "text-neutral-content", children: warning }, index)); }) })] }))] }) })] }));
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=PriceAnalysisSection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PriceAnalysisSection.js","sourceRoot":"","sources":["../../../src/components/DetailedResult/PriceAnalysisSection.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EACL,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAQ/C,MAAM,UAAU,oBAAoB,CAAC,EAAmC;QAAjC,IAAI,UAAA;IACnC,IAAA,KAAc,cAAc,EAAE,EAA5B,CAAC,OAAA,EAAE,IAAI,UAAqB,CAAC;IAErC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,OAAO,CACL,8BACE,cAAI,SAAS,EAAC,iDAAiD,aAC7D,KAAC,kBAAkB,IAAC,SAAS,EAAC,wBAAwB,GAAG,EACxD,CAAC,CAAC,uCAAuC,CAAC,IACxC,EAEL,cAAK,SAAS,EAAC,4BAA4B,YACzC,eAAK,SAAS,EAAC,WAAW,aACxB,eAAK,SAAS,EAAC,uCAAuC,aACnD,IAAI,CAAC,kBAAkB,IAAI,CAC1B,0BACE,aAAI,SAAS,EAAC,4BAA4B,YACvC,CAAC,CAAC,qCAAqC,CAAC,GACtC,EACL,YAAG,SAAS,EAAC,oBAAoB,YAAE,IAAI,CAAC,kBAAkB,GAAK,IAC3D,CACP,EAEA,IAAI,CAAC,aAAa,IAAI,CACrB,0BACE,aAAI,SAAS,EAAC,4BAA4B,YACvC,CAAC,CAAC,sCAAsC,CAAC,GACvC,EACL,YAAG,SAAS,EAAC,iCAAiC,YAC3C,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE;gDACpC,KAAK,EAAE,UAAU;gDACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,KAAK;6CACjC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,GAC3B,IACA,CACP,IACG,EAGN,eAAK,SAAS,EAAC,iCAAiC,aAC9C,aAAI,SAAS,EAAC,4BAA4B,YACvC,CAAC,CAAC,yCAAyC,CAAC,GAC1C,EACL,YAAG,SAAS,EAAC,sBAAsB,YAAE,IAAI,CAAC,gBAAgB,GAAK,IAC3D,EAGL,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAC3B,eAAK,SAAS,EAAC,MAAM,aACnB,cAAI,SAAS,EAAC,iEAAiE,aAC7E,KAAC,uBAAuB,IAAC,SAAS,EAAC,QAAQ,GAAG,EAC7C,CAAC,CAAC,uCAAuC,CAAC,IACxC,EACL,aAAI,SAAS,EAAC,iCAAiC,YAC5C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAC,OAAO,EAAE,KAAK,IAAK,OAAA,CACrC,aAAgB,SAAS,EAAC,sBAAsB,YAC7C,OAAO,IADD,KAAK,CAET,CACN,EAJsC,CAItC,CAAC,GACC,IACD,CACP,IACG,GACF,IACE,CACX,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
interface RecommendationSectionProps {
|
|
2
|
+
recommendation: string;
|
|
3
|
+
emotionalSupport: string;
|
|
4
|
+
}
|
|
5
|
+
export declare function RecommendationSection({ recommendation, emotionalSupport, }: RecommendationSectionProps): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=RecommendationSection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RecommendationSection.d.ts","sourceRoot":"","sources":["../../../src/components/DetailedResult/RecommendationSection.tsx"],"names":[],"mappings":"AAKA,UAAU,0BAA0B;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,qBAAqB,CAAC,EACpC,cAAc,EACd,gBAAgB,GACjB,EAAE,0BAA0B,2CA6B5B"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { HeartIcon, LightBulbIcon } from "@heroicons/react/24/solid";
|
|
4
|
+
import { useTranslation } from "react-i18next";
|
|
5
|
+
export function RecommendationSection(_a) {
|
|
6
|
+
var recommendation = _a.recommendation, emotionalSupport = _a.emotionalSupport;
|
|
7
|
+
var t = useTranslation().t;
|
|
8
|
+
return (_jsxs("section", { children: [_jsxs("h3", { className: "mb-6 flex items-center gap-3 text-3xl font-bold", children: [_jsx(LightBulbIcon, { className: "size-10 text-warning" }), t("page.tradeSafety.result.recommendation")] }), _jsx("div", { className: "card bg-base-200 shadow-xl", children: _jsxs("div", { className: "card-body", children: [_jsx("div", { className: "prose max-w-none", children: _jsx("p", { className: "whitespace-pre-wrap text-lg text-neutral-content", children: recommendation }) }), _jsx("div", { className: "divider" }), _jsx("div", { className: "rounded-lg bg-base-100 p-4", children: _jsxs("p", { className: "flex items-center gap-2 text-lg font-medium", children: [_jsx(HeartIcon, { className: "size-6 text-info" }), " ", emotionalSupport] }) })] }) })] }));
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=RecommendationSection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RecommendationSection.js","sourceRoot":"","sources":["../../../src/components/DetailedResult/RecommendationSection.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAO/C,MAAM,UAAU,qBAAqB,CAAC,EAGT;QAF3B,cAAc,oBAAA,EACd,gBAAgB,sBAAA;IAER,IAAA,CAAC,GAAK,cAAc,EAAE,EAArB,CAAsB;IAE/B,OAAO,CACL,8BACE,cAAI,SAAS,EAAC,iDAAiD,aAC7D,KAAC,aAAa,IAAC,SAAS,EAAC,sBAAsB,GAAG,EACjD,CAAC,CAAC,wCAAwC,CAAC,IACzC,EAEL,cAAK,SAAS,EAAC,4BAA4B,YACzC,eAAK,SAAS,EAAC,WAAW,aACxB,cAAK,SAAS,EAAC,kBAAkB,YAC/B,YAAG,SAAS,EAAC,kDAAkD,YAC5D,cAAc,GACb,GACA,EAEN,cAAK,SAAS,EAAC,SAAS,GAAO,EAE/B,cAAK,SAAS,EAAC,4BAA4B,YACzC,aAAG,SAAS,EAAC,6CAA6C,aACxD,KAAC,SAAS,IAAC,SAAS,EAAC,kBAAkB,GAAG,OAAE,gBAAgB,IAC1D,GACA,IACF,GACF,IACE,CACX,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RiskScoreHero.d.ts","sourceRoot":"","sources":["../../../src/components/DetailedResult/RiskScoreHero.tsx"],"names":[],"mappings":"AASA,UAAU,kBAAkB;IAC1B,KAAK,EAAE,MAAM,CAAC;CACf;AAkBD,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,EAAE,kBAAkB,2CA8C1D"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { CheckBadgeIcon, ExclamationTriangleIcon, ShieldExclamationIcon, } from "@heroicons/react/24/solid";
|
|
4
|
+
import { useTranslation } from "react-i18next";
|
|
5
|
+
function getRiskLevel(score) {
|
|
6
|
+
if (score >= 70) {
|
|
7
|
+
return { level: "high", color: "error", Icon: ShieldExclamationIcon };
|
|
8
|
+
}
|
|
9
|
+
if (score >= 40) {
|
|
10
|
+
return { level: "medium", color: "warning", Icon: ExclamationTriangleIcon };
|
|
11
|
+
}
|
|
12
|
+
return { level: "low", color: "success", Icon: CheckBadgeIcon };
|
|
13
|
+
}
|
|
14
|
+
export function RiskScoreHero(_a) {
|
|
15
|
+
var score = _a.score;
|
|
16
|
+
var t = useTranslation().t;
|
|
17
|
+
var risk = getRiskLevel(score);
|
|
18
|
+
var Icon = risk.Icon;
|
|
19
|
+
var colorClasses = {
|
|
20
|
+
error: "text-error",
|
|
21
|
+
warning: "text-warning",
|
|
22
|
+
success: "text-success",
|
|
23
|
+
};
|
|
24
|
+
return (_jsx("div", { className: "hero min-h-[40vh] rounded-3xl bg-base-200", children: _jsx("div", { className: "hero-content text-center", children: _jsxs("div", { children: [_jsx("div", { className: "mb-4", children: _jsx(Icon, { className: "size-32 ".concat(colorClasses[risk.color]) }) }), _jsx("h2", { className: "mb-4 text-5xl font-bold", children: t("page.tradeSafety.result.riskLevel.".concat(risk.level, ".title")) }), _jsx("div", { className: "mx-auto w-64", children: _jsx("div", { className: "radial-progress ".concat(colorClasses[risk.color]), style: {
|
|
25
|
+
"--value": score,
|
|
26
|
+
"--size": "12rem",
|
|
27
|
+
"--thickness": "1rem",
|
|
28
|
+
}, role: "progressbar", children: _jsx("span", { className: "text-5xl font-bold", children: score }) }) }), _jsx("p", { className: "mt-6 max-w-lg text-xl text-neutral-content", children: t("page.tradeSafety.result.riskLevel.".concat(risk.level, ".message")) })] }) }) }));
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=RiskScoreHero.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RiskScoreHero.js","sourceRoot":"","sources":["../../../src/components/DetailedResult/RiskScoreHero.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAY/C,SAAS,YAAY,CAAC,KAAa;IACjC,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;QAChB,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC;IACxE,CAAC;IACD,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;QAChB,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC;IAC9E,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,EAA6B;QAA3B,KAAK,WAAA;IAC3B,IAAA,CAAC,GAAK,cAAc,EAAE,EAArB,CAAsB;IAC/B,IAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACzB,IAAA,IAAI,GAAK,IAAI,KAAT,CAAU;IAEtB,IAAM,YAAY,GAA2B;QAC3C,KAAK,EAAE,YAAY;QACnB,OAAO,EAAE,cAAc;QACvB,OAAO,EAAE,cAAc;KACxB,CAAC;IAEF,OAAO,CACL,cAAK,SAAS,EAAC,2CAA2C,YACxD,cAAK,SAAS,EAAC,0BAA0B,YACvC,0BACE,cAAK,SAAS,EAAC,MAAM,YACnB,KAAC,IAAI,IAAC,SAAS,EAAE,kBAAW,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAE,GAAI,GACtD,EACN,aAAI,SAAS,EAAC,yBAAyB,YACpC,CAAC,CAAC,4CAAqC,IAAI,CAAC,KAAK,WAAQ,CAAC,GACxD,EAGL,cAAK,SAAS,EAAC,cAAc,YAC3B,cACE,SAAS,EAAE,0BAAmB,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAE,EACxD,KAAK,EACH;gCACE,SAAS,EAAE,KAAK;gCAChB,QAAQ,EAAE,OAAO;gCACjB,aAAa,EAAE,MAAM;6BACC,EAE1B,IAAI,EAAC,aAAa,YAElB,eAAM,SAAS,EAAC,oBAAoB,YAAE,KAAK,GAAQ,GAC/C,GACF,EAEN,YAAG,SAAS,EAAC,4CAA4C,YACtD,CAAC,CAAC,4CAAqC,IAAI,CAAC,KAAK,aAAU,CAAC,GAC3D,IACA,GACF,GACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { RiskSignal } from "../../types";
|
|
2
|
+
interface RiskSignalsSectionProps {
|
|
3
|
+
signals: RiskSignal[];
|
|
4
|
+
}
|
|
5
|
+
export declare function RiskSignalsSection({ signals }: RiskSignalsSectionProps): import("react/jsx-runtime").JSX.Element | null;
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=RiskSignalsSection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RiskSignalsSection.d.ts","sourceRoot":"","sources":["../../../src/components/DetailedResult/RiskSignalsSection.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,UAAU,uBAAuB;IAC/B,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB;AAED,wBAAgB,kBAAkB,CAAC,EAAE,OAAO,EAAE,EAAE,uBAAuB,kDA2BtE"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { ShieldExclamationIcon } from "@heroicons/react/24/solid";
|
|
4
|
+
import { motion } from "framer-motion";
|
|
5
|
+
import { useTranslation } from "react-i18next";
|
|
6
|
+
import { RiskSignalCard } from "../RiskSignalCard";
|
|
7
|
+
export function RiskSignalsSection(_a) {
|
|
8
|
+
var signals = _a.signals;
|
|
9
|
+
var t = useTranslation().t;
|
|
10
|
+
if (signals.length === 0)
|
|
11
|
+
return null;
|
|
12
|
+
return (_jsxs("section", { children: [_jsxs("h3", { className: "mb-6 flex items-center gap-3 text-3xl font-bold", children: [_jsx(ShieldExclamationIcon, { className: "size-10 text-error" }), t("page.tradeSafety.result.riskSignals")] }), _jsx("div", { className: "space-y-4", children: signals.map(function (signal, idx) { return (_jsx(motion.div, { initial: { x: -50, opacity: 0 }, animate: { x: 0, opacity: 1 }, transition: { delay: idx * 0.1 }, whileHover: { scale: 1.02, x: 10 }, children: _jsx(RiskSignalCard, { signal: signal, variant: "error" }) }, idx)); }) })] }));
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=RiskSignalsSection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RiskSignalsSection.js","sourceRoot":"","sources":["../../../src/components/DetailedResult/RiskSignalsSection.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAMnD,MAAM,UAAU,kBAAkB,CAAC,EAAoC;QAAlC,OAAO,aAAA;IAClC,IAAA,CAAC,GAAK,cAAc,EAAE,EAArB,CAAsB;IAE/B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEtC,OAAO,CACL,8BACE,cAAI,SAAS,EAAC,iDAAiD,aAC7D,KAAC,qBAAqB,IAAC,SAAS,EAAC,oBAAoB,GAAG,EACvD,CAAC,CAAC,qCAAqC,CAAC,IACtC,EAEL,cAAK,SAAS,EAAC,WAAW,YACvB,OAAO,CAAC,GAAG,CAAC,UAAC,MAAM,EAAE,GAAG,IAAK,OAAA,CAC5B,KAAC,MAAM,CAAC,GAAG,IAET,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAC/B,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAC7B,UAAU,EAAE,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,EAAE,EAChC,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,YAElC,KAAC,cAAc,IAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAC,OAAO,GAAG,IAN7C,GAAG,CAOG,CACd,EAV6B,CAU7B,CAAC,GACE,IACE,CACX,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { RiskSignal } from "../../types";
|
|
2
|
+
interface SafeIndicatorsSectionProps {
|
|
3
|
+
indicators: RiskSignal[];
|
|
4
|
+
}
|
|
5
|
+
export declare function SafeIndicatorsSection({ indicators, }: SafeIndicatorsSectionProps): import("react/jsx-runtime").JSX.Element | null;
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=SafeIndicatorsSection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SafeIndicatorsSection.d.ts","sourceRoot":"","sources":["../../../src/components/DetailedResult/SafeIndicatorsSection.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,UAAU,0BAA0B;IAClC,UAAU,EAAE,UAAU,EAAE,CAAC;CAC1B;AAED,wBAAgB,qBAAqB,CAAC,EACpC,UAAU,GACX,EAAE,0BAA0B,kDA2B5B"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { CheckCircleIcon } from "@heroicons/react/24/solid";
|
|
4
|
+
import { motion } from "framer-motion";
|
|
5
|
+
import { useTranslation } from "react-i18next";
|
|
6
|
+
import { RiskSignalCard } from "../RiskSignalCard";
|
|
7
|
+
export function SafeIndicatorsSection(_a) {
|
|
8
|
+
var indicators = _a.indicators;
|
|
9
|
+
var t = useTranslation().t;
|
|
10
|
+
if (indicators.length === 0)
|
|
11
|
+
return null;
|
|
12
|
+
return (_jsxs("section", { children: [_jsxs("h3", { className: "mb-6 flex items-center gap-3 text-3xl font-bold", children: [_jsx(CheckCircleIcon, { className: "size-10 text-success" }), t("page.tradeSafety.result.safeIndicators")] }), _jsx("div", { className: "space-y-4", children: indicators.map(function (indicator, idx) { return (_jsx(motion.div, { initial: { x: -50, opacity: 0 }, animate: { x: 0, opacity: 1 }, transition: { delay: idx * 0.1 }, whileHover: { scale: 1.02, x: 10 }, children: _jsx(RiskSignalCard, { signal: indicator, variant: "success" }) }, idx)); }) })] }));
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=SafeIndicatorsSection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SafeIndicatorsSection.js","sourceRoot":"","sources":["../../../src/components/DetailedResult/SafeIndicatorsSection.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAMnD,MAAM,UAAU,qBAAqB,CAAC,EAET;QAD3B,UAAU,gBAAA;IAEF,IAAA,CAAC,GAAK,cAAc,EAAE,EAArB,CAAsB;IAE/B,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEzC,OAAO,CACL,8BACE,cAAI,SAAS,EAAC,iDAAiD,aAC7D,KAAC,eAAe,IAAC,SAAS,EAAC,sBAAsB,GAAG,EACnD,CAAC,CAAC,wCAAwC,CAAC,IACzC,EAEL,cAAK,SAAS,EAAC,WAAW,YACvB,UAAU,CAAC,GAAG,CAAC,UAAC,SAAS,EAAE,GAAG,IAAK,OAAA,CAClC,KAAC,MAAM,CAAC,GAAG,IAET,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAC/B,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAC7B,UAAU,EAAE,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,EAAE,EAChC,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,YAElC,KAAC,cAAc,IAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAC,SAAS,GAAG,IANlD,GAAG,CAOG,CACd,EAVmC,CAUnC,CAAC,GACE,IACE,CACX,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SafetyChecklistSection.d.ts","sourceRoot":"","sources":["../../../src/components/DetailedResult/SafetyChecklistSection.tsx"],"names":[],"mappings":"AAMA,UAAU,2BAA2B;IACnC,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,wBAAgB,sBAAsB,CAAC,EAAE,KAAK,EAAE,EAAE,2BAA2B,kDAuC5E"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { ClipboardDocumentCheckIcon } from "@heroicons/react/24/solid";
|
|
4
|
+
import { motion } from "framer-motion";
|
|
5
|
+
import { useTranslation } from "react-i18next";
|
|
6
|
+
export function SafetyChecklistSection(_a) {
|
|
7
|
+
var items = _a.items;
|
|
8
|
+
var t = useTranslation().t;
|
|
9
|
+
if (items.length === 0)
|
|
10
|
+
return null;
|
|
11
|
+
return (_jsxs("section", { children: [_jsxs("h3", { className: "mb-6 flex items-center gap-3 text-3xl font-bold", children: [_jsx(ClipboardDocumentCheckIcon, { className: "size-10 text-primary" }), t("page.tradeSafety.result.safetyChecklist")] }), _jsx("div", { className: "card border-2 border-primary/30 bg-base-200", children: _jsxs("div", { className: "card-body", children: [_jsx("p", { className: "mb-6 text-lg text-neutral-content", children: t("page.tradeSafety.result.checklistDescription") }), _jsx("div", { className: "space-y-3", children: items.map(function (item, idx) { return (_jsxs(motion.label, { initial: { x: -20, opacity: 0 }, animate: { x: 0, opacity: 1 }, transition: { delay: idx * 0.08 }, className: "flex cursor-pointer items-start gap-3 rounded-lg p-3 hover:bg-base-100/30", children: [_jsx("input", { type: "checkbox", className: "checkbox-primary checkbox mt-1" }), _jsx("span", { className: "text-lg", children: item })] }, idx)); }) })] }) })] }));
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=SafetyChecklistSection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SafetyChecklistSection.js","sourceRoot":"","sources":["../../../src/components/DetailedResult/SafetyChecklistSection.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAM/C,MAAM,UAAU,sBAAsB,CAAC,EAAsC;QAApC,KAAK,WAAA;IACpC,IAAA,CAAC,GAAK,cAAc,EAAE,EAArB,CAAsB;IAE/B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEpC,OAAO,CACL,8BACE,cAAI,SAAS,EAAC,iDAAiD,aAC7D,KAAC,0BAA0B,IAAC,SAAS,EAAC,sBAAsB,GAAG,EAC9D,CAAC,CAAC,yCAAyC,CAAC,IAC1C,EAEL,cAAK,SAAS,EAAC,6CAA6C,YAC1D,eAAK,SAAS,EAAC,WAAW,aACxB,YAAG,SAAS,EAAC,mCAAmC,YAC7C,CAAC,CAAC,8CAA8C,CAAC,GAChD,EAEJ,cAAK,SAAS,EAAC,WAAW,YACvB,KAAK,CAAC,GAAG,CAAC,UAAC,IAAI,EAAE,GAAG,IAAK,OAAA,CACxB,MAAC,MAAM,CAAC,KAAK,IAEX,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAC/B,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAC7B,UAAU,EAAE,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI,EAAE,EACjC,SAAS,EAAC,2EAA2E,aAErF,gBACE,IAAI,EAAC,UAAU,EACf,SAAS,EAAC,gCAAgC,GAC1C,EACF,eAAM,SAAS,EAAC,SAAS,YAAE,IAAI,GAAQ,KAVlC,GAAG,CAWK,CAChB,EAdyB,CAczB,CAAC,GACE,IACF,GACF,IACE,CACX,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
interface TranslationSectionProps {
|
|
2
|
+
translation?: string | null;
|
|
3
|
+
nuance?: string | null;
|
|
4
|
+
}
|
|
5
|
+
export declare function TranslationSection({ translation, nuance, }: TranslationSectionProps): import("react/jsx-runtime").JSX.Element | null;
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=TranslationSection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TranslationSection.d.ts","sourceRoot":"","sources":["../../../src/components/DetailedResult/TranslationSection.tsx"],"names":[],"mappings":"AAKA,UAAU,uBAAuB;IAC/B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,wBAAgB,kBAAkB,CAAC,EACjC,WAAW,EACX,MAAM,GACP,EAAE,uBAAuB,kDAuCzB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { LanguageIcon } from "@heroicons/react/24/solid";
|
|
4
|
+
import { useTranslation } from "react-i18next";
|
|
5
|
+
export function TranslationSection(_a) {
|
|
6
|
+
var translation = _a.translation, nuance = _a.nuance;
|
|
7
|
+
var t = useTranslation().t;
|
|
8
|
+
if (!translation && !nuance)
|
|
9
|
+
return null;
|
|
10
|
+
return (_jsxs("section", { children: [_jsxs("h3", { className: "mb-6 flex items-center gap-3 text-3xl font-bold", children: [_jsx(LanguageIcon, { className: "size-10 text-primary" }), t("page.tradeSafety.result.translation")] }), _jsx("div", { className: "card bg-base-200 shadow-xl", children: _jsxs("div", { className: "card-body", children: [translation && (_jsxs("div", { className: "mb-4", children: [_jsx("h4", { className: "mb-2 text-lg font-semibold", children: t("page.tradeSafety.result.translationTitle") }), _jsx("p", { className: "whitespace-pre-wrap text-neutral-content", children: translation })] })), nuance && (_jsxs("div", { children: [_jsx("h4", { className: "mb-2 text-lg font-semibold", children: t("page.tradeSafety.result.nuanceTitle") }), _jsx("p", { className: "whitespace-pre-wrap text-neutral-content", children: nuance })] }))] }) })] }));
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=TranslationSection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TranslationSection.js","sourceRoot":"","sources":["../../../src/components/DetailedResult/TranslationSection.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAO/C,MAAM,UAAU,kBAAkB,CAAC,EAGT;QAFxB,WAAW,iBAAA,EACX,MAAM,YAAA;IAEE,IAAA,CAAC,GAAK,cAAc,EAAE,EAArB,CAAsB;IAE/B,IAAI,CAAC,WAAW,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEzC,OAAO,CACL,8BACE,cAAI,SAAS,EAAC,iDAAiD,aAC7D,KAAC,YAAY,IAAC,SAAS,EAAC,sBAAsB,GAAG,EAChD,CAAC,CAAC,qCAAqC,CAAC,IACtC,EAEL,cAAK,SAAS,EAAC,4BAA4B,YACzC,eAAK,SAAS,EAAC,WAAW,aACvB,WAAW,IAAI,CACd,eAAK,SAAS,EAAC,MAAM,aACnB,aAAI,SAAS,EAAC,4BAA4B,YACvC,CAAC,CAAC,0CAA0C,CAAC,GAC3C,EACL,YAAG,SAAS,EAAC,0CAA0C,YACpD,WAAW,GACV,IACA,CACP,EAEA,MAAM,IAAI,CACT,0BACE,aAAI,SAAS,EAAC,4BAA4B,YACvC,CAAC,CAAC,qCAAqC,CAAC,GACtC,EACL,YAAG,SAAS,EAAC,0CAA0C,YACpD,MAAM,GACL,IACA,CACP,IACG,GACF,IACE,CACX,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { TradeSafetyAnalysis } from "../../types";
|
|
2
|
+
interface DetailedResultProps {
|
|
3
|
+
analysis: TradeSafetyAnalysis;
|
|
4
|
+
expertAdvice?: string | null;
|
|
5
|
+
/** Set to true to show AI companion CTA (for external integrations) */
|
|
6
|
+
showCompanionCta?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare function DetailedResult({ analysis, expertAdvice, showCompanionCta, }: DetailedResultProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/DetailedResult/index.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAalD,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAmBD,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,YAAY,EACZ,gBAAwB,GACzB,EAAE,mBAAmB,2CAiFrB"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { motion } from "framer-motion";
|
|
4
|
+
import { CautionsSection } from "./CautionsSection";
|
|
5
|
+
import { CompanionCtaSection } from "./CompanionCtaSection";
|
|
6
|
+
import { ExpertAdviceSection } from "./ExpertAdviceSection";
|
|
7
|
+
import { PriceAnalysisSection } from "./PriceAnalysisSection";
|
|
8
|
+
import { RecommendationSection } from "./RecommendationSection";
|
|
9
|
+
import { RiskScoreHero } from "./RiskScoreHero";
|
|
10
|
+
import { RiskSignalsSection } from "./RiskSignalsSection";
|
|
11
|
+
import { SafeIndicatorsSection } from "./SafeIndicatorsSection";
|
|
12
|
+
import { SafetyChecklistSection } from "./SafetyChecklistSection";
|
|
13
|
+
import { TranslationSection } from "./TranslationSection";
|
|
14
|
+
var fadeInUp = {
|
|
15
|
+
initial: { y: 40, opacity: 0 },
|
|
16
|
+
animate: {
|
|
17
|
+
y: 0,
|
|
18
|
+
opacity: 1,
|
|
19
|
+
transition: { duration: 0.6 },
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
var staggerContainer = {
|
|
23
|
+
animate: {
|
|
24
|
+
transition: {
|
|
25
|
+
staggerChildren: 0.15,
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
export function DetailedResult(_a) {
|
|
30
|
+
var analysis = _a.analysis, expertAdvice = _a.expertAdvice, _b = _a.showCompanionCta, showCompanionCta = _b === void 0 ? false : _b;
|
|
31
|
+
return (_jsxs(motion.div, { variants: staggerContainer, initial: "initial", animate: "animate", className: "mx-auto max-w-5xl space-y-12", children: [_jsx(motion.div, { variants: fadeInUp, children: _jsx(RiskScoreHero, { score: analysis.risk_score }) }), (analysis.translation || analysis.nuance_explanation) && (_jsx(motion.div, { variants: fadeInUp, children: _jsx(TranslationSection, { translation: analysis.translation, nuance: analysis.nuance_explanation }) })), analysis.risk_signals.length > 0 && (_jsx(motion.div, { variants: fadeInUp, children: _jsx(RiskSignalsSection, { signals: analysis.risk_signals }) })), analysis.cautions.length > 0 && (_jsx(motion.div, { variants: fadeInUp, children: _jsx(CautionsSection, { cautions: analysis.cautions }) })), analysis.safe_indicators.length > 0 && (_jsx(motion.div, { variants: fadeInUp, children: _jsx(SafeIndicatorsSection, { indicators: analysis.safe_indicators }) })), analysis.price_analysis && (_jsx(motion.div, { variants: fadeInUp, children: _jsx(PriceAnalysisSection, { data: analysis.price_analysis }) })), analysis.safety_checklist.length > 0 && (_jsx(motion.div, { variants: fadeInUp, children: _jsx(SafetyChecklistSection, { items: analysis.safety_checklist }) })), expertAdvice && (_jsx(motion.div, { variants: fadeInUp, children: _jsx(ExpertAdviceSection, { advice: expertAdvice }) })), _jsx(motion.div, { variants: fadeInUp, children: _jsx(RecommendationSection, { recommendation: analysis.recommendation, emotionalSupport: analysis.emotional_support }) }), showCompanionCta && (_jsx(motion.div, { variants: fadeInUp, children: _jsx(CompanionCtaSection, {}) }))] }));
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/DetailedResult/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { QuickSummary } from "../types";
|
|
2
|
+
interface QuickResultTeaserProps {
|
|
3
|
+
summary: QuickSummary;
|
|
4
|
+
checkId: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function QuickResultTeaser({ summary, checkId, }: QuickResultTeaserProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=QuickResultTeaser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QuickResultTeaser.d.ts","sourceRoot":"","sources":["../../src/components/QuickResultTeaser.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,UAAU,sBAAsB;IAC9B,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,iBAAiB,CAAC,EAChC,OAAO,EACP,OAAO,GACR,EAAE,sBAAsB,2CA6DxB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import Link from "next/link";
|
|
4
|
+
import { useTranslation } from "react-i18next";
|
|
5
|
+
export function QuickResultTeaser(_a) {
|
|
6
|
+
var summary = _a.summary, checkId = _a.checkId;
|
|
7
|
+
var _b = useTranslation(), t = _b.t, i18n = _b.i18n;
|
|
8
|
+
var lang = i18n.language;
|
|
9
|
+
return (_jsxs("div", { className: "mx-auto max-w-2xl", children: [_jsx("h1", { className: "mb-8 text-center text-3xl font-bold", children: t("page.tradeSafety.result.title") }), _jsxs("div", { className: "mb-8 grid grid-cols-1 gap-4 md:grid-cols-3", children: [_jsx("div", { className: "card bg-error/10", children: _jsxs("div", { className: "card-body items-center text-center", children: [_jsx("h3", { className: "text-4xl font-bold text-error", children: summary.risk_signals_count }), _jsx("p", { className: "text-sm", children: t("page.tradeSafety.result.riskSignals") })] }) }), _jsx("div", { className: "card bg-warning/10", children: _jsxs("div", { className: "card-body items-center text-center", children: [_jsx("h3", { className: "text-4xl font-bold text-warning", children: summary.cautions_count }), _jsx("p", { className: "text-sm", children: t("page.tradeSafety.result.cautions") })] }) }), _jsx("div", { className: "card bg-success/10", children: _jsxs("div", { className: "card-body items-center text-center", children: [_jsx("h3", { className: "text-4xl font-bold text-success", children: summary.safe_indicators_count }), _jsx("p", { className: "text-sm", children: t("page.tradeSafety.result.safeIndicators") })] }) })] }), _jsx("div", { className: "card bg-base-200 shadow-xl", children: _jsxs("div", { className: "card-body items-center text-center", children: [_jsx("h2", { className: "card-title text-2xl", children: t("page.tradeSafety.result.signupRequired") }), _jsx("p", { className: "mb-4 text-neutral-content", children: t("page.tradeSafety.result.signupMessage") }), _jsx(Link, { href: "/".concat(lang, "/login?callbackUrl=").concat(encodeURIComponent("/".concat(lang, "/trade-safety/result/").concat(checkId))), className: "btn btn-primary", children: t("login") })] }) })] }));
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=QuickResultTeaser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QuickResultTeaser.js","sourceRoot":"","sources":["../../src/components/QuickResultTeaser.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAS/C,MAAM,UAAU,iBAAiB,CAAC,EAGT;QAFvB,OAAO,aAAA,EACP,OAAO,aAAA;IAED,IAAA,KAAc,cAAc,EAAE,EAA5B,CAAC,OAAA,EAAE,IAAI,UAAqB,CAAC;IACrC,IAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;IAE3B,OAAO,CACL,eAAK,SAAS,EAAC,mBAAmB,aAChC,aAAI,SAAS,EAAC,qCAAqC,YAChD,CAAC,CAAC,+BAA+B,CAAC,GAChC,EAGL,eAAK,SAAS,EAAC,4CAA4C,aACzD,cAAK,SAAS,EAAC,kBAAkB,YAC/B,eAAK,SAAS,EAAC,oCAAoC,aACjD,aAAI,SAAS,EAAC,+BAA+B,YAC1C,OAAO,CAAC,kBAAkB,GACxB,EACL,YAAG,SAAS,EAAC,SAAS,YACnB,CAAC,CAAC,qCAAqC,CAAC,GACvC,IACA,GACF,EACN,cAAK,SAAS,EAAC,oBAAoB,YACjC,eAAK,SAAS,EAAC,oCAAoC,aACjD,aAAI,SAAS,EAAC,iCAAiC,YAC5C,OAAO,CAAC,cAAc,GACpB,EACL,YAAG,SAAS,EAAC,SAAS,YAAE,CAAC,CAAC,kCAAkC,CAAC,GAAK,IAC9D,GACF,EACN,cAAK,SAAS,EAAC,oBAAoB,YACjC,eAAK,SAAS,EAAC,oCAAoC,aACjD,aAAI,SAAS,EAAC,iCAAiC,YAC5C,OAAO,CAAC,qBAAqB,GAC3B,EACL,YAAG,SAAS,EAAC,SAAS,YACnB,CAAC,CAAC,wCAAwC,CAAC,GAC1C,IACA,GACF,IACF,EAGN,cAAK,SAAS,EAAC,4BAA4B,YACzC,eAAK,SAAS,EAAC,oCAAoC,aACjD,aAAI,SAAS,EAAC,qBAAqB,YAChC,CAAC,CAAC,wCAAwC,CAAC,GACzC,EACL,YAAG,SAAS,EAAC,2BAA2B,YACrC,CAAC,CAAC,uCAAuC,CAAC,GACzC,EACJ,KAAC,IAAI,IACH,IAAI,EAAE,WAAI,IAAI,gCAAsB,kBAAkB,CAAC,WAAI,IAAI,kCAAwB,OAAO,CAAE,CAAC,CAAE,EACnG,SAAS,EAAC,iBAAiB,YAE1B,CAAC,CAAC,OAAO,CAAC,GACN,IACH,GACF,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { RiskSignal } from "../types";
|
|
2
|
+
interface RiskSignalCardProps {
|
|
3
|
+
signal: RiskSignal;
|
|
4
|
+
variant?: "error" | "warning" | "success";
|
|
5
|
+
}
|
|
6
|
+
export declare function RiskSignalCard({ signal, variant, }: RiskSignalCardProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=RiskSignalCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RiskSignalCard.d.ts","sourceRoot":"","sources":["../../src/components/RiskSignalCard.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,UAAU,mBAAmB;IAC3B,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;CAC3C;AAoBD,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,OAAiB,GAClB,EAAE,mBAAmB,2CA0BrB"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { ExclamationCircleIcon, ExclamationTriangleIcon, InformationCircleIcon, } from "@heroicons/react/24/solid";
|
|
4
|
+
import { useTranslation } from "react-i18next";
|
|
5
|
+
var variantStyles = {
|
|
6
|
+
error: "bg-error/10 border-error/30",
|
|
7
|
+
warning: "bg-warning/10 border-warning/30",
|
|
8
|
+
success: "bg-success/10 border-success/30",
|
|
9
|
+
};
|
|
10
|
+
var iconColor = {
|
|
11
|
+
error: "text-error",
|
|
12
|
+
warning: "text-warning",
|
|
13
|
+
success: "text-success",
|
|
14
|
+
};
|
|
15
|
+
var severityIcon = {
|
|
16
|
+
high: ExclamationCircleIcon,
|
|
17
|
+
medium: ExclamationTriangleIcon,
|
|
18
|
+
low: InformationCircleIcon,
|
|
19
|
+
};
|
|
20
|
+
export function RiskSignalCard(_a) {
|
|
21
|
+
var signal = _a.signal, _b = _a.variant, variant = _b === void 0 ? "error" : _b;
|
|
22
|
+
var t = useTranslation().t;
|
|
23
|
+
var Icon = severityIcon[signal.severity];
|
|
24
|
+
return (_jsx("div", { className: "card ".concat(variantStyles[variant], " border-2 backdrop-blur-sm"), children: _jsx("div", { className: "card-body", children: _jsxs("div", { className: "flex items-start gap-4", children: [_jsx(Icon, { className: "size-8 ".concat(iconColor[variant], " mt-1 shrink-0") }), _jsxs("div", { className: "flex-1", children: [_jsx("h4", { className: "card-title text-xl", children: signal.title }), _jsx("p", { className: "mt-2 text-neutral-content", children: signal.description }), _jsxs("div", { className: "mt-4 rounded-lg bg-base-100/50 p-4", children: [_jsxs("p", { className: "mb-2 text-sm font-semibold", children: ["\uD83D\uDCA1 ", t("page.tradeSafety.result.whatToDo")] }), _jsx("p", { className: "text-sm", children: signal.what_to_do })] })] })] }) }) }));
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=RiskSignalCard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RiskSignalCard.js","sourceRoot":"","sources":["../../src/components/RiskSignalCard.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAS/C,IAAM,aAAa,GAAG;IACpB,KAAK,EAAE,6BAA6B;IACpC,OAAO,EAAE,iCAAiC;IAC1C,OAAO,EAAE,iCAAiC;CAC3C,CAAC;AAEF,IAAM,SAAS,GAAG;IAChB,KAAK,EAAE,YAAY;IACnB,OAAO,EAAE,cAAc;IACvB,OAAO,EAAE,cAAc;CACxB,CAAC;AAEF,IAAM,YAAY,GAAG;IACnB,IAAI,EAAE,qBAAqB;IAC3B,MAAM,EAAE,uBAAuB;IAC/B,GAAG,EAAE,qBAAqB;CAC3B,CAAC;AAEF,MAAM,UAAU,cAAc,CAAC,EAGT;QAFpB,MAAM,YAAA,EACN,eAAiB,EAAjB,OAAO,mBAAG,OAAO,KAAA;IAET,IAAA,CAAC,GAAK,cAAc,EAAE,EAArB,CAAsB;IAC/B,IAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAE3C,OAAO,CACL,cAAK,SAAS,EAAE,eAAQ,aAAa,CAAC,OAAO,CAAC,+BAA4B,YACxE,cAAK,SAAS,EAAC,WAAW,YACxB,eAAK,SAAS,EAAC,wBAAwB,aACrC,KAAC,IAAI,IAAC,SAAS,EAAE,iBAAU,SAAS,CAAC,OAAO,CAAC,mBAAgB,GAAI,EAEjE,eAAK,SAAS,EAAC,QAAQ,aACrB,aAAI,SAAS,EAAC,oBAAoB,YAAE,MAAM,CAAC,KAAK,GAAM,EACtD,YAAG,SAAS,EAAC,2BAA2B,YAAE,MAAM,CAAC,WAAW,GAAK,EAGjE,eAAK,SAAS,EAAC,oCAAoC,aACjD,aAAG,SAAS,EAAC,4BAA4B,8BACnC,CAAC,CAAC,kCAAkC,CAAC,IACvC,EACJ,YAAG,SAAS,EAAC,SAAS,YAAE,MAAM,CAAC,UAAU,GAAK,IAC1C,IACF,IACF,GACF,GACF,CACP,CAAC;AACJ,CAAC"}
|