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.
Files changed (76) hide show
  1. package/README.md +59 -0
  2. package/dist/components/DetailedResult/CautionsSection.d.ts +7 -0
  3. package/dist/components/DetailedResult/CautionsSection.d.ts.map +1 -0
  4. package/dist/components/DetailedResult/CautionsSection.js +14 -0
  5. package/dist/components/DetailedResult/CautionsSection.js.map +1 -0
  6. package/dist/components/DetailedResult/CompanionCtaSection.d.ts +2 -0
  7. package/dist/components/DetailedResult/CompanionCtaSection.d.ts.map +1 -0
  8. package/dist/components/DetailedResult/CompanionCtaSection.js +12 -0
  9. package/dist/components/DetailedResult/CompanionCtaSection.js.map +1 -0
  10. package/dist/components/DetailedResult/ExpertAdviceSection.d.ts +6 -0
  11. package/dist/components/DetailedResult/ExpertAdviceSection.d.ts.map +1 -0
  12. package/dist/components/DetailedResult/ExpertAdviceSection.js +11 -0
  13. package/dist/components/DetailedResult/ExpertAdviceSection.js.map +1 -0
  14. package/dist/components/DetailedResult/PriceAnalysisSection.d.ts +7 -0
  15. package/dist/components/DetailedResult/PriceAnalysisSection.d.ts.map +1 -0
  16. package/dist/components/DetailedResult/PriceAnalysisSection.js +15 -0
  17. package/dist/components/DetailedResult/PriceAnalysisSection.js.map +1 -0
  18. package/dist/components/DetailedResult/RecommendationSection.d.ts +7 -0
  19. package/dist/components/DetailedResult/RecommendationSection.d.ts.map +1 -0
  20. package/dist/components/DetailedResult/RecommendationSection.js +10 -0
  21. package/dist/components/DetailedResult/RecommendationSection.js.map +1 -0
  22. package/dist/components/DetailedResult/RiskScoreHero.d.ts +6 -0
  23. package/dist/components/DetailedResult/RiskScoreHero.d.ts.map +1 -0
  24. package/dist/components/DetailedResult/RiskScoreHero.js +30 -0
  25. package/dist/components/DetailedResult/RiskScoreHero.js.map +1 -0
  26. package/dist/components/DetailedResult/RiskSignalsSection.d.ts +7 -0
  27. package/dist/components/DetailedResult/RiskSignalsSection.d.ts.map +1 -0
  28. package/dist/components/DetailedResult/RiskSignalsSection.js +14 -0
  29. package/dist/components/DetailedResult/RiskSignalsSection.js.map +1 -0
  30. package/dist/components/DetailedResult/SafeIndicatorsSection.d.ts +7 -0
  31. package/dist/components/DetailedResult/SafeIndicatorsSection.d.ts.map +1 -0
  32. package/dist/components/DetailedResult/SafeIndicatorsSection.js +14 -0
  33. package/dist/components/DetailedResult/SafeIndicatorsSection.js.map +1 -0
  34. package/dist/components/DetailedResult/SafetyChecklistSection.d.ts +6 -0
  35. package/dist/components/DetailedResult/SafetyChecklistSection.d.ts.map +1 -0
  36. package/dist/components/DetailedResult/SafetyChecklistSection.js +13 -0
  37. package/dist/components/DetailedResult/SafetyChecklistSection.js.map +1 -0
  38. package/dist/components/DetailedResult/TranslationSection.d.ts +7 -0
  39. package/dist/components/DetailedResult/TranslationSection.d.ts.map +1 -0
  40. package/dist/components/DetailedResult/TranslationSection.js +12 -0
  41. package/dist/components/DetailedResult/TranslationSection.js.map +1 -0
  42. package/dist/components/DetailedResult/index.d.ts +10 -0
  43. package/dist/components/DetailedResult/index.d.ts.map +1 -0
  44. package/dist/components/DetailedResult/index.js +33 -0
  45. package/dist/components/DetailedResult/index.js.map +1 -0
  46. package/dist/components/QuickResultTeaser.d.ts +8 -0
  47. package/dist/components/QuickResultTeaser.d.ts.map +1 -0
  48. package/dist/components/QuickResultTeaser.js +11 -0
  49. package/dist/components/QuickResultTeaser.js.map +1 -0
  50. package/dist/components/RiskSignalCard.d.ts +8 -0
  51. package/dist/components/RiskSignalCard.d.ts.map +1 -0
  52. package/dist/components/RiskSignalCard.js +26 -0
  53. package/dist/components/RiskSignalCard.js.map +1 -0
  54. package/dist/i18n/locales/en/translation.json +95 -0
  55. package/dist/i18n/locales/es/translation.json +95 -0
  56. package/dist/i18n/locales/id/translation.json +95 -0
  57. package/dist/i18n/locales/ja/translation.json +95 -0
  58. package/dist/i18n/locales/ko/translation.json +95 -0
  59. package/dist/i18n/locales/zh/translation.json +95 -0
  60. package/dist/index.d.ts +18 -0
  61. package/dist/index.d.ts.map +1 -0
  62. package/dist/index.js +21 -0
  63. package/dist/index.js.map +1 -0
  64. package/dist/repositories/TradeSafetyRepository.d.ts +570 -0
  65. package/dist/repositories/TradeSafetyRepository.d.ts.map +1 -0
  66. package/dist/repositories/TradeSafetyRepository.js +87 -0
  67. package/dist/repositories/TradeSafetyRepository.js.map +1 -0
  68. package/dist/repositories/index.d.ts +6 -0
  69. package/dist/repositories/index.d.ts.map +1 -0
  70. package/dist/repositories/index.js +6 -0
  71. package/dist/repositories/index.js.map +1 -0
  72. package/dist/types.d.ts +67 -0
  73. package/dist/types.d.ts.map +1 -0
  74. package/dist/types.js +10 -0
  75. package/dist/types.js.map +1 -0
  76. 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,2 @@
1
+ export declare function CompanionCtaSection(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=CompanionCtaSection.d.ts.map
@@ -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,6 @@
1
+ interface ExpertAdviceSectionProps {
2
+ advice: string;
3
+ }
4
+ export declare function ExpertAdviceSection({ advice }: ExpertAdviceSectionProps): import("react/jsx-runtime").JSX.Element;
5
+ export {};
6
+ //# sourceMappingURL=ExpertAdviceSection.d.ts.map
@@ -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,6 @@
1
+ interface RiskScoreHeroProps {
2
+ score: number;
3
+ }
4
+ export declare function RiskScoreHero({ score }: RiskScoreHeroProps): import("react/jsx-runtime").JSX.Element;
5
+ export {};
6
+ //# sourceMappingURL=RiskScoreHero.d.ts.map
@@ -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,6 @@
1
+ interface SafetyChecklistSectionProps {
2
+ items: string[];
3
+ }
4
+ export declare function SafetyChecklistSection({ items }: SafetyChecklistSectionProps): import("react/jsx-runtime").JSX.Element | null;
5
+ export {};
6
+ //# sourceMappingURL=SafetyChecklistSection.d.ts.map
@@ -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"}