trade-safety 0.1.0 → 0.1.2

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 (72) hide show
  1. package/dist/components/DetailedResult/CautionsSection.d.ts +2 -2
  2. package/dist/components/DetailedResult/CautionsSection.d.ts.map +1 -1
  3. package/dist/components/DetailedResult/CompanionCtaSection.d.ts +1 -1
  4. package/dist/components/DetailedResult/CompanionCtaSection.d.ts.map +1 -1
  5. package/dist/components/DetailedResult/ExpertAdviceSection.d.ts +1 -1
  6. package/dist/components/DetailedResult/ExpertAdviceSection.d.ts.map +1 -1
  7. package/dist/components/DetailedResult/PriceAnalysisSection.d.ts +2 -2
  8. package/dist/components/DetailedResult/PriceAnalysisSection.d.ts.map +1 -1
  9. package/dist/components/DetailedResult/RecommendationSection.d.ts +1 -1
  10. package/dist/components/DetailedResult/RecommendationSection.d.ts.map +1 -1
  11. package/dist/components/DetailedResult/RiskScoreHero.d.ts +1 -1
  12. package/dist/components/DetailedResult/RiskScoreHero.d.ts.map +1 -1
  13. package/dist/components/DetailedResult/RiskSignalsSection.d.ts +2 -2
  14. package/dist/components/DetailedResult/RiskSignalsSection.d.ts.map +1 -1
  15. package/dist/components/DetailedResult/SafeIndicatorsSection.d.ts +2 -2
  16. package/dist/components/DetailedResult/SafeIndicatorsSection.d.ts.map +1 -1
  17. package/dist/components/DetailedResult/SafetyChecklistSection.d.ts +1 -1
  18. package/dist/components/DetailedResult/SafetyChecklistSection.d.ts.map +1 -1
  19. package/dist/components/DetailedResult/TranslationSection.d.ts +1 -1
  20. package/dist/components/DetailedResult/TranslationSection.d.ts.map +1 -1
  21. package/dist/components/DetailedResult/index.d.ts +2 -2
  22. package/dist/components/DetailedResult/index.d.ts.map +1 -1
  23. package/dist/components/QuickResultTeaser.d.ts +2 -2
  24. package/dist/components/QuickResultTeaser.d.ts.map +1 -1
  25. package/dist/components/RiskSignalCard.d.ts +2 -2
  26. package/dist/components/RiskSignalCard.d.ts.map +1 -1
  27. package/dist/index.d.ts +12 -12
  28. package/dist/index.js +44 -21
  29. package/dist/index.js.map +1 -1
  30. package/dist/index.mjs +786 -0
  31. package/dist/index.mjs.map +1 -0
  32. package/dist/repositories/TradeSafetyRepository.d.ts +2 -2
  33. package/dist/repositories/index.d.ts +1 -1
  34. package/package.json +20 -6
  35. package/dist/components/DetailedResult/CautionsSection.js +0 -14
  36. package/dist/components/DetailedResult/CautionsSection.js.map +0 -1
  37. package/dist/components/DetailedResult/CompanionCtaSection.js +0 -12
  38. package/dist/components/DetailedResult/CompanionCtaSection.js.map +0 -1
  39. package/dist/components/DetailedResult/ExpertAdviceSection.js +0 -11
  40. package/dist/components/DetailedResult/ExpertAdviceSection.js.map +0 -1
  41. package/dist/components/DetailedResult/PriceAnalysisSection.js +0 -15
  42. package/dist/components/DetailedResult/PriceAnalysisSection.js.map +0 -1
  43. package/dist/components/DetailedResult/RecommendationSection.js +0 -10
  44. package/dist/components/DetailedResult/RecommendationSection.js.map +0 -1
  45. package/dist/components/DetailedResult/RiskScoreHero.js +0 -30
  46. package/dist/components/DetailedResult/RiskScoreHero.js.map +0 -1
  47. package/dist/components/DetailedResult/RiskSignalsSection.js +0 -14
  48. package/dist/components/DetailedResult/RiskSignalsSection.js.map +0 -1
  49. package/dist/components/DetailedResult/SafeIndicatorsSection.js +0 -14
  50. package/dist/components/DetailedResult/SafeIndicatorsSection.js.map +0 -1
  51. package/dist/components/DetailedResult/SafetyChecklistSection.js +0 -13
  52. package/dist/components/DetailedResult/SafetyChecklistSection.js.map +0 -1
  53. package/dist/components/DetailedResult/TranslationSection.js +0 -12
  54. package/dist/components/DetailedResult/TranslationSection.js.map +0 -1
  55. package/dist/components/DetailedResult/index.js +0 -33
  56. package/dist/components/DetailedResult/index.js.map +0 -1
  57. package/dist/components/QuickResultTeaser.js +0 -11
  58. package/dist/components/QuickResultTeaser.js.map +0 -1
  59. package/dist/components/RiskSignalCard.js +0 -26
  60. package/dist/components/RiskSignalCard.js.map +0 -1
  61. package/dist/i18n/locales/en/translation.json +0 -95
  62. package/dist/i18n/locales/es/translation.json +0 -95
  63. package/dist/i18n/locales/id/translation.json +0 -95
  64. package/dist/i18n/locales/ja/translation.json +0 -95
  65. package/dist/i18n/locales/ko/translation.json +0 -95
  66. package/dist/i18n/locales/zh/translation.json +0 -95
  67. package/dist/repositories/TradeSafetyRepository.js +0 -87
  68. package/dist/repositories/TradeSafetyRepository.js.map +0 -1
  69. package/dist/repositories/index.js +0 -6
  70. package/dist/repositories/index.js.map +0 -1
  71. package/dist/types.js +0 -10
  72. package/dist/types.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../node_modules/@heroicons/react/24/solid/esm/ChatBubbleOvalLeftEllipsisIcon.js","../node_modules/@heroicons/react/24/solid/esm/CheckBadgeIcon.js","../node_modules/@heroicons/react/24/solid/esm/CheckCircleIcon.js","../node_modules/@heroicons/react/24/solid/esm/ClipboardDocumentCheckIcon.js","../node_modules/@heroicons/react/24/solid/esm/CurrencyDollarIcon.js","../node_modules/@heroicons/react/24/solid/esm/ExclamationCircleIcon.js","../node_modules/@heroicons/react/24/solid/esm/ExclamationTriangleIcon.js","../node_modules/@heroicons/react/24/solid/esm/HeartIcon.js","../node_modules/@heroicons/react/24/solid/esm/InformationCircleIcon.js","../node_modules/@heroicons/react/24/solid/esm/LanguageIcon.js","../node_modules/@heroicons/react/24/solid/esm/LightBulbIcon.js","../node_modules/@heroicons/react/24/solid/esm/ShieldExclamationIcon.js","../node_modules/@heroicons/react/24/solid/esm/UserIcon.js","../src/components/RiskSignalCard.tsx","../src/components/DetailedResult/CautionsSection.tsx","../src/components/DetailedResult/CompanionCtaSection.tsx","../src/components/DetailedResult/ExpertAdviceSection.tsx","../src/components/DetailedResult/PriceAnalysisSection.tsx","../src/components/DetailedResult/RecommendationSection.tsx","../src/components/DetailedResult/RiskScoreHero.tsx","../src/components/DetailedResult/RiskSignalsSection.tsx","../src/components/DetailedResult/SafeIndicatorsSection.tsx","../src/components/DetailedResult/SafetyChecklistSection.tsx","../src/components/DetailedResult/TranslationSection.tsx","../src/components/DetailedResult/index.tsx","../src/components/QuickResultTeaser.tsx","../src/repositories/TradeSafetyRepository.ts","../src/types.ts"],"sourcesContent":["import * as React from \"react\";\nfunction ChatBubbleOvalLeftEllipsisIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M4.804 21.644A6.707 6.707 0 0 0 6 21.75a6.721 6.721 0 0 0 3.583-1.029c.774.182 1.584.279 2.417.279 5.322 0 9.75-3.97 9.75-9 0-5.03-4.428-9-9.75-9s-9.75 3.97-9.75 9c0 2.409 1.025 4.587 2.674 6.192.232.226.277.428.254.543a3.73 3.73 0 0 1-.814 1.686.75.75 0 0 0 .44 1.223ZM8.25 10.875a1.125 1.125 0 1 0 0 2.25 1.125 1.125 0 0 0 0-2.25ZM10.875 12a1.125 1.125 0 1 1 2.25 0 1.125 1.125 0 0 1-2.25 0Zm4.875-1.125a1.125 1.125 0 1 0 0 2.25 1.125 1.125 0 0 0 0-2.25Z\",\n clipRule: \"evenodd\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(ChatBubbleOvalLeftEllipsisIcon);\nexport default ForwardRef;","import * as React from \"react\";\nfunction CheckBadgeIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M8.603 3.799A4.49 4.49 0 0 1 12 2.25c1.357 0 2.573.6 3.397 1.549a4.49 4.49 0 0 1 3.498 1.307 4.491 4.491 0 0 1 1.307 3.497A4.49 4.49 0 0 1 21.75 12a4.49 4.49 0 0 1-1.549 3.397 4.491 4.491 0 0 1-1.307 3.497 4.491 4.491 0 0 1-3.497 1.307A4.49 4.49 0 0 1 12 21.75a4.49 4.49 0 0 1-3.397-1.549 4.49 4.49 0 0 1-3.498-1.306 4.491 4.491 0 0 1-1.307-3.498A4.49 4.49 0 0 1 2.25 12c0-1.357.6-2.573 1.549-3.397a4.49 4.49 0 0 1 1.307-3.497 4.49 4.49 0 0 1 3.497-1.307Zm7.007 6.387a.75.75 0 1 0-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 0 0-1.06 1.06l2.25 2.25a.75.75 0 0 0 1.14-.094l3.75-5.25Z\",\n clipRule: \"evenodd\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(CheckBadgeIcon);\nexport default ForwardRef;","import * as React from \"react\";\nfunction CheckCircleIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12Zm13.36-1.814a.75.75 0 1 0-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 0 0-1.06 1.06l2.25 2.25a.75.75 0 0 0 1.14-.094l3.75-5.25Z\",\n clipRule: \"evenodd\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(CheckCircleIcon);\nexport default ForwardRef;","import * as React from \"react\";\nfunction ClipboardDocumentCheckIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M7.502 6h7.128A3.375 3.375 0 0 1 18 9.375v9.375a3 3 0 0 0 3-3V6.108c0-1.505-1.125-2.811-2.664-2.94a48.972 48.972 0 0 0-.673-.05A3 3 0 0 0 15 1.5h-1.5a3 3 0 0 0-2.663 1.618c-.225.015-.45.032-.673.05C8.662 3.295 7.554 4.542 7.502 6ZM13.5 3A1.5 1.5 0 0 0 12 4.5h4.5A1.5 1.5 0 0 0 15 3h-1.5Z\",\n clipRule: \"evenodd\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M3 9.375C3 8.339 3.84 7.5 4.875 7.5h9.75c1.036 0 1.875.84 1.875 1.875v11.25c0 1.035-.84 1.875-1.875 1.875h-9.75A1.875 1.875 0 0 1 3 20.625V9.375Zm9.586 4.594a.75.75 0 0 0-1.172-.938l-2.476 3.096-.908-.907a.75.75 0 0 0-1.06 1.06l1.5 1.5a.75.75 0 0 0 1.116-.062l3-3.75Z\",\n clipRule: \"evenodd\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(ClipboardDocumentCheckIcon);\nexport default ForwardRef;","import * as React from \"react\";\nfunction CurrencyDollarIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.464 8.746c.227-.18.497-.311.786-.394v2.795a2.252 2.252 0 0 1-.786-.393c-.394-.313-.546-.681-.546-1.004 0-.323.152-.691.546-1.004ZM12.75 15.662v-2.824c.347.085.664.228.921.421.427.32.579.686.579.991 0 .305-.152.671-.579.991a2.534 2.534 0 0 1-.921.42Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M12 2.25c-5.385 0-9.75 4.365-9.75 9.75s4.365 9.75 9.75 9.75 9.75-4.365 9.75-9.75S17.385 2.25 12 2.25ZM12.75 6a.75.75 0 0 0-1.5 0v.816a3.836 3.836 0 0 0-1.72.756c-.712.566-1.112 1.35-1.112 2.178 0 .829.4 1.612 1.113 2.178.502.4 1.102.647 1.719.756v2.978a2.536 2.536 0 0 1-.921-.421l-.879-.66a.75.75 0 0 0-.9 1.2l.879.66c.533.4 1.169.645 1.821.75V18a.75.75 0 0 0 1.5 0v-.81a4.124 4.124 0 0 0 1.821-.749c.745-.559 1.179-1.344 1.179-2.191 0-.847-.434-1.632-1.179-2.191a4.122 4.122 0 0 0-1.821-.75V8.354c.29.082.559.213.786.393l.415.33a.75.75 0 0 0 .933-1.175l-.415-.33a3.836 3.836 0 0 0-1.719-.755V6Z\",\n clipRule: \"evenodd\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(CurrencyDollarIcon);\nexport default ForwardRef;","import * as React from \"react\";\nfunction ExclamationCircleIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12ZM12 8.25a.75.75 0 0 1 .75.75v3.75a.75.75 0 0 1-1.5 0V9a.75.75 0 0 1 .75-.75Zm0 8.25a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Z\",\n clipRule: \"evenodd\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(ExclamationCircleIcon);\nexport default ForwardRef;","import * as React from \"react\";\nfunction ExclamationTriangleIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003ZM12 8.25a.75.75 0 0 1 .75.75v3.75a.75.75 0 0 1-1.5 0V9a.75.75 0 0 1 .75-.75Zm0 8.25a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Z\",\n clipRule: \"evenodd\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(ExclamationTriangleIcon);\nexport default ForwardRef;","import * as React from \"react\";\nfunction HeartIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m11.645 20.91-.007-.003-.022-.012a15.247 15.247 0 0 1-.383-.218 25.18 25.18 0 0 1-4.244-3.17C4.688 15.36 2.25 12.174 2.25 8.25 2.25 5.322 4.714 3 7.688 3A5.5 5.5 0 0 1 12 5.052 5.5 5.5 0 0 1 16.313 3c2.973 0 5.437 2.322 5.437 5.25 0 3.925-2.438 7.111-4.739 9.256a25.175 25.175 0 0 1-4.244 3.17 15.247 15.247 0 0 1-.383.219l-.022.012-.007.004-.003.001a.752.752 0 0 1-.704 0l-.003-.001Z\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(HeartIcon);\nexport default ForwardRef;","import * as React from \"react\";\nfunction InformationCircleIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12Zm8.706-1.442c1.146-.573 2.437.463 2.126 1.706l-.709 2.836.042-.02a.75.75 0 0 1 .67 1.34l-.04.022c-1.147.573-2.438-.463-2.127-1.706l.71-2.836-.042.02a.75.75 0 1 1-.671-1.34l.041-.022ZM12 9a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Z\",\n clipRule: \"evenodd\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(InformationCircleIcon);\nexport default ForwardRef;","import * as React from \"react\";\nfunction LanguageIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M9 2.25a.75.75 0 0 1 .75.75v1.506a49.384 49.384 0 0 1 5.343.371.75.75 0 1 1-.186 1.489c-.66-.083-1.323-.151-1.99-.206a18.67 18.67 0 0 1-2.97 6.323c.318.384.65.753 1 1.107a.75.75 0 0 1-1.07 1.052A18.902 18.902 0 0 1 9 13.687a18.823 18.823 0 0 1-5.656 4.482.75.75 0 0 1-.688-1.333 17.323 17.323 0 0 0 5.396-4.353A18.72 18.72 0 0 1 5.89 8.598a.75.75 0 0 1 1.388-.568A17.21 17.21 0 0 0 9 11.224a17.168 17.168 0 0 0 2.391-5.165 48.04 48.04 0 0 0-8.298.307.75.75 0 0 1-.186-1.489 49.159 49.159 0 0 1 5.343-.371V3A.75.75 0 0 1 9 2.25ZM15.75 9a.75.75 0 0 1 .68.433l5.25 11.25a.75.75 0 1 1-1.36.634l-1.198-2.567h-6.744l-1.198 2.567a.75.75 0 0 1-1.36-.634l5.25-11.25A.75.75 0 0 1 15.75 9Zm-2.672 8.25h5.344l-2.672-5.726-2.672 5.726Z\",\n clipRule: \"evenodd\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(LanguageIcon);\nexport default ForwardRef;","import * as React from \"react\";\nfunction LightBulbIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 .75a8.25 8.25 0 0 0-4.135 15.39c.686.398 1.115 1.008 1.134 1.623a.75.75 0 0 0 .577.706c.352.083.71.148 1.074.195.323.041.6-.218.6-.544v-4.661a6.714 6.714 0 0 1-.937-.171.75.75 0 1 1 .374-1.453 5.261 5.261 0 0 0 2.626 0 .75.75 0 1 1 .374 1.452 6.712 6.712 0 0 1-.937.172v4.66c0 .327.277.586.6.545.364-.047.722-.112 1.074-.195a.75.75 0 0 0 .577-.706c.02-.615.448-1.225 1.134-1.623A8.25 8.25 0 0 0 12 .75Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M9.013 19.9a.75.75 0 0 1 .877-.597 11.319 11.319 0 0 0 4.22 0 .75.75 0 1 1 .28 1.473 12.819 12.819 0 0 1-4.78 0 .75.75 0 0 1-.597-.876ZM9.754 22.344a.75.75 0 0 1 .824-.668 13.682 13.682 0 0 0 2.844 0 .75.75 0 1 1 .156 1.492 15.156 15.156 0 0 1-3.156 0 .75.75 0 0 1-.668-.824Z\",\n clipRule: \"evenodd\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(LightBulbIcon);\nexport default ForwardRef;","import * as React from \"react\";\nfunction ShieldExclamationIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M11.484 2.17a.75.75 0 0 1 1.032 0 11.209 11.209 0 0 0 7.877 3.08.75.75 0 0 1 .722.515 12.74 12.74 0 0 1 .635 3.985c0 5.942-4.064 10.933-9.563 12.348a.749.749 0 0 1-.374 0C6.314 20.683 2.25 15.692 2.25 9.75c0-1.39.223-2.73.635-3.985a.75.75 0 0 1 .722-.516l.143.001c2.996 0 5.718-1.17 7.734-3.08ZM12 8.25a.75.75 0 0 1 .75.75v3.75a.75.75 0 0 1-1.5 0V9a.75.75 0 0 1 .75-.75ZM12 15a.75.75 0 0 0-.75.75v.008c0 .414.336.75.75.75h.008a.75.75 0 0 0 .75-.75v-.008a.75.75 0 0 0-.75-.75H12Z\",\n clipRule: \"evenodd\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(ShieldExclamationIcon);\nexport default ForwardRef;","import * as React from \"react\";\nfunction UserIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n \"data-slot\": \"icon\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M7.5 6a4.5 4.5 0 1 1 9 0 4.5 4.5 0 0 1-9 0ZM3.751 20.105a8.25 8.25 0 0 1 16.498 0 .75.75 0 0 1-.437.695A18.683 18.683 0 0 1 12 22.5c-2.786 0-5.433-.608-7.812-1.7a.75.75 0 0 1-.437-.695Z\",\n clipRule: \"evenodd\"\n }));\n}\nconst ForwardRef = /*#__PURE__*/ React.forwardRef(UserIcon);\nexport default ForwardRef;","\"use client\";\n\nimport {\n ExclamationCircleIcon,\n ExclamationTriangleIcon,\n InformationCircleIcon,\n} from \"@heroicons/react/24/solid\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { RiskSignal } from \"../types\";\n\ninterface RiskSignalCardProps {\n signal: RiskSignal;\n variant?: \"error\" | \"warning\" | \"success\";\n}\n\nconst variantStyles = {\n error: \"bg-error/10 border-error/30\",\n warning: \"bg-warning/10 border-warning/30\",\n success: \"bg-success/10 border-success/30\",\n};\n\nconst iconColor = {\n error: \"text-error\",\n warning: \"text-warning\",\n success: \"text-success\",\n};\n\nconst severityIcon = {\n high: ExclamationCircleIcon,\n medium: ExclamationTriangleIcon,\n low: InformationCircleIcon,\n};\n\nexport function RiskSignalCard({\n signal,\n variant = \"error\",\n}: RiskSignalCardProps) {\n const { t } = useTranslation();\n const Icon = severityIcon[signal.severity];\n\n return (\n <div className={`card ${variantStyles[variant]} border-2 backdrop-blur-sm`}>\n <div className=\"card-body\">\n <div className=\"flex items-start gap-4\">\n <Icon className={`size-8 ${iconColor[variant]} mt-1 shrink-0`} />\n\n <div className=\"flex-1\">\n <h4 className=\"card-title text-xl\">{signal.title}</h4>\n <p className=\"mt-2 text-neutral-content\">{signal.description}</p>\n\n {/* What to do */}\n <div className=\"mt-4 rounded-lg bg-base-100/50 p-4\">\n <p className=\"mb-2 text-sm font-semibold\">\n 💡 {t(\"page.tradeSafety.result.whatToDo\")}\n </p>\n <p className=\"text-sm\">{signal.what_to_do}</p>\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n}\n","\"use client\";\n\nimport { ExclamationTriangleIcon } from \"@heroicons/react/24/solid\";\nimport { motion } from \"framer-motion\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { RiskSignal } from \"../../types\";\nimport { RiskSignalCard } from \"../RiskSignalCard\";\n\ninterface CautionsSectionProps {\n cautions: RiskSignal[];\n}\n\nexport function CautionsSection({ cautions }: CautionsSectionProps) {\n const { t } = useTranslation();\n\n if (cautions.length === 0) return null;\n\n return (\n <section>\n <h3 className=\"mb-6 flex items-center gap-3 text-3xl font-bold\">\n <ExclamationTriangleIcon className=\"size-10 text-warning\" />\n {t(\"page.tradeSafety.result.cautions\")}\n </h3>\n\n <div className=\"space-y-4\">\n {cautions.map((caution, idx) => (\n <motion.div\n key={idx}\n initial={{ x: -50, opacity: 0 }}\n animate={{ x: 0, opacity: 1 }}\n transition={{ delay: idx * 0.1 }}\n whileHover={{ scale: 1.02, x: 10 }}\n >\n <RiskSignalCard signal={caution} variant=\"warning\" />\n </motion.div>\n ))}\n </div>\n </section>\n );\n}\n","\"use client\";\n\nimport { ChatBubbleOvalLeftEllipsisIcon } from \"@heroicons/react/24/solid\";\nimport { motion } from \"framer-motion\";\nimport Link from \"next/link\";\nimport { useTranslation } from \"react-i18next\";\n\nexport function CompanionCtaSection() {\n const { t, i18n } = useTranslation();\n const lang = i18n.language;\n\n return (\n <section className=\"hero min-h-[30vh] rounded-3xl bg-primary text-primary-content\">\n <div className=\"hero-content text-center\">\n <div>\n <ChatBubbleOvalLeftEllipsisIcon className=\"mx-auto mb-6 size-20\" />\n\n <h3 className=\"mb-4 text-4xl font-bold\">\n {t(\"page.tradeSafety.result.companionCta.title\")}\n </h3>\n\n <p className=\"mb-8 max-w-2xl text-xl\">\n {t(\"page.tradeSafety.result.companionCta.description\")}\n </p>\n\n <Link href={`/${lang}/companions`}>\n <motion.button\n whileHover={{ scale: 1.1 }}\n whileTap={{ scale: 0.95 }}\n className=\"btn btn-lg bg-base-100 text-primary hover:bg-base-200\"\n >\n {t(\"page.tradeSafety.result.companionCta.button\")}\n </motion.button>\n </Link>\n </div>\n </div>\n </section>\n );\n}\n","\"use client\";\n\nimport { UserIcon } from \"@heroicons/react/24/solid\";\nimport { motion } from \"framer-motion\";\nimport { useTranslation } from \"react-i18next\";\n\ninterface ExpertAdviceSectionProps {\n advice: string;\n}\n\nexport function ExpertAdviceSection({ advice }: ExpertAdviceSectionProps) {\n const { t } = useTranslation();\n\n return (\n <motion.section\n whileHover={{ scale: 1.02 }}\n className=\"card bg-secondary text-secondary-content shadow-xl\"\n >\n <div className=\"card-body\">\n <div className=\"mb-6 flex items-center gap-4\">\n <div className=\"avatar placeholder\">\n <div className=\"w-16 rounded-full bg-primary text-primary-content\">\n <UserIcon className=\"size-8\" />\n </div>\n </div>\n <div>\n <h3 className=\"text-2xl font-bold\">\n {t(\"page.tradeSafety.result.expertAdvice\")}\n </h3>\n <p className=\"opacity-80\">\n {t(\"page.tradeSafety.result.expertName\")}\n </p>\n </div>\n </div>\n\n <div className=\"prose max-w-none\">\n <p className=\"whitespace-pre-wrap text-lg\">{advice}</p>\n </div>\n </div>\n </motion.section>\n );\n}\n","\"use client\";\n\nimport {\n CurrencyDollarIcon,\n ExclamationTriangleIcon,\n} from \"@heroicons/react/24/solid\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { PriceAnalysis } from \"../../types\";\n\ninterface PriceAnalysisSectionProps {\n data?: PriceAnalysis;\n}\n\nexport function PriceAnalysisSection({ data }: PriceAnalysisSectionProps) {\n const { t, i18n } = useTranslation();\n\n if (!data) return null;\n\n return (\n <section>\n <h3 className=\"mb-6 flex items-center gap-3 text-3xl font-bold\">\n <CurrencyDollarIcon className=\"size-10 text-secondary\" />\n {t(\"page.tradeSafety.result.priceAnalysis\")}\n </h3>\n\n <div className=\"card bg-base-200 shadow-xl\">\n <div className=\"card-body\">\n <div className=\"grid grid-cols-1 gap-6 md:grid-cols-2\">\n {data.market_price_range && (\n <div>\n <h4 className=\"mb-2 text-lg font-semibold\">\n {t(\"page.tradeSafety.result.marketPrice\")}\n </h4>\n <p className=\"text-2xl font-bold\">{data.market_price_range}</p>\n </div>\n )}\n\n {data.offered_price && (\n <div>\n <h4 className=\"mb-2 text-lg font-semibold\">\n {t(\"page.tradeSafety.result.offeredPrice\")}\n </h4>\n <p className=\"text-2xl font-bold text-primary\">\n {new Intl.NumberFormat(i18n.language, {\n style: \"currency\",\n currency: data.currency || \"USD\",\n }).format(data.offered_price)}\n </p>\n </div>\n )}\n </div>\n\n {/* Price Assessment */}\n <div className=\"mt-6 rounded-lg bg-base-100 p-4\">\n <h4 className=\"mb-2 text-lg font-semibold\">\n {t(\"page.tradeSafety.result.priceAssessment\")}\n </h4>\n <p className=\"text-neutral-content\">{data.price_assessment}</p>\n </div>\n\n {/* Warnings */}\n {data.warnings.length > 0 && (\n <div className=\"mt-4\">\n <h4 className=\"mb-2 flex items-center gap-2 text-lg font-semibold text-warning\">\n <ExclamationTriangleIcon className=\"size-6\" />\n {t(\"page.tradeSafety.result.priceWarnings\")}\n </h4>\n <ul className=\"list-inside list-disc space-y-1\">\n {data.warnings.map((warning, index) => (\n <li key={index} className=\"text-neutral-content\">\n {warning}\n </li>\n ))}\n </ul>\n </div>\n )}\n </div>\n </div>\n </section>\n );\n}\n","\"use client\";\n\nimport { HeartIcon, LightBulbIcon } from \"@heroicons/react/24/solid\";\nimport { useTranslation } from \"react-i18next\";\n\ninterface RecommendationSectionProps {\n recommendation: string;\n emotionalSupport: string;\n}\n\nexport function RecommendationSection({\n recommendation,\n emotionalSupport,\n}: RecommendationSectionProps) {\n const { t } = useTranslation();\n\n return (\n <section>\n <h3 className=\"mb-6 flex items-center gap-3 text-3xl font-bold\">\n <LightBulbIcon className=\"size-10 text-warning\" />\n {t(\"page.tradeSafety.result.recommendation\")}\n </h3>\n\n <div className=\"card bg-base-200 shadow-xl\">\n <div className=\"card-body\">\n <div className=\"prose max-w-none\">\n <p className=\"whitespace-pre-wrap text-lg text-neutral-content\">\n {recommendation}\n </p>\n </div>\n\n <div className=\"divider\"></div>\n\n <div className=\"rounded-lg bg-base-100 p-4\">\n <p className=\"flex items-center gap-2 text-lg font-medium\">\n <HeartIcon className=\"size-6 text-info\" /> {emotionalSupport}\n </p>\n </div>\n </div>\n </div>\n </section>\n );\n}\n","\"use client\";\n\nimport {\n CheckBadgeIcon,\n ExclamationTriangleIcon,\n ShieldExclamationIcon,\n} from \"@heroicons/react/24/solid\";\nimport { useTranslation } from \"react-i18next\";\n\ninterface RiskScoreHeroProps {\n score: number;\n}\n\ninterface RiskLevel {\n level: \"high\" | \"medium\" | \"low\";\n color: string;\n Icon: React.ComponentType<{ className?: string }>;\n}\n\nfunction getRiskLevel(score: number): RiskLevel {\n if (score >= 70) {\n return { level: \"high\", color: \"error\", Icon: ShieldExclamationIcon };\n }\n if (score >= 40) {\n return { level: \"medium\", color: \"warning\", Icon: ExclamationTriangleIcon };\n }\n return { level: \"low\", color: \"success\", Icon: CheckBadgeIcon };\n}\n\nexport function RiskScoreHero({ score }: RiskScoreHeroProps) {\n const { t } = useTranslation();\n const risk = getRiskLevel(score);\n const { Icon } = risk;\n\n const colorClasses: Record<string, string> = {\n error: \"text-error\",\n warning: \"text-warning\",\n success: \"text-success\",\n };\n\n return (\n <div className=\"hero min-h-[40vh] rounded-3xl bg-base-200\">\n <div className=\"hero-content text-center\">\n <div>\n <div className=\"mb-4\">\n <Icon className={`size-32 ${colorClasses[risk.color]}`} />\n </div>\n <h2 className=\"mb-4 text-5xl font-bold\">\n {t(`page.tradeSafety.result.riskLevel.${risk.level}.title`)}\n </h2>\n\n {/* 위험도 게이지 */}\n <div className=\"mx-auto w-64\">\n <div\n className={`radial-progress ${colorClasses[risk.color]}`}\n style={\n {\n \"--value\": score,\n \"--size\": \"12rem\",\n \"--thickness\": \"1rem\",\n } as React.CSSProperties\n }\n role=\"progressbar\"\n >\n <span className=\"text-5xl font-bold\">{score}</span>\n </div>\n </div>\n\n <p className=\"mt-6 max-w-lg text-xl text-neutral-content\">\n {t(`page.tradeSafety.result.riskLevel.${risk.level}.message`)}\n </p>\n </div>\n </div>\n </div>\n );\n}\n","\"use client\";\n\nimport { ShieldExclamationIcon } from \"@heroicons/react/24/solid\";\nimport { motion } from \"framer-motion\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { RiskSignal } from \"../../types\";\nimport { RiskSignalCard } from \"../RiskSignalCard\";\n\ninterface RiskSignalsSectionProps {\n signals: RiskSignal[];\n}\n\nexport function RiskSignalsSection({ signals }: RiskSignalsSectionProps) {\n const { t } = useTranslation();\n\n if (signals.length === 0) return null;\n\n return (\n <section>\n <h3 className=\"mb-6 flex items-center gap-3 text-3xl font-bold\">\n <ShieldExclamationIcon className=\"size-10 text-error\" />\n {t(\"page.tradeSafety.result.riskSignals\")}\n </h3>\n\n <div className=\"space-y-4\">\n {signals.map((signal, idx) => (\n <motion.div\n key={idx}\n initial={{ x: -50, opacity: 0 }}\n animate={{ x: 0, opacity: 1 }}\n transition={{ delay: idx * 0.1 }}\n whileHover={{ scale: 1.02, x: 10 }}\n >\n <RiskSignalCard signal={signal} variant=\"error\" />\n </motion.div>\n ))}\n </div>\n </section>\n );\n}\n","\"use client\";\n\nimport { CheckCircleIcon } from \"@heroicons/react/24/solid\";\nimport { motion } from \"framer-motion\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { RiskSignal } from \"../../types\";\nimport { RiskSignalCard } from \"../RiskSignalCard\";\n\ninterface SafeIndicatorsSectionProps {\n indicators: RiskSignal[];\n}\n\nexport function SafeIndicatorsSection({\n indicators,\n}: SafeIndicatorsSectionProps) {\n const { t } = useTranslation();\n\n if (indicators.length === 0) return null;\n\n return (\n <section>\n <h3 className=\"mb-6 flex items-center gap-3 text-3xl font-bold\">\n <CheckCircleIcon className=\"size-10 text-success\" />\n {t(\"page.tradeSafety.result.safeIndicators\")}\n </h3>\n\n <div className=\"space-y-4\">\n {indicators.map((indicator, idx) => (\n <motion.div\n key={idx}\n initial={{ x: -50, opacity: 0 }}\n animate={{ x: 0, opacity: 1 }}\n transition={{ delay: idx * 0.1 }}\n whileHover={{ scale: 1.02, x: 10 }}\n >\n <RiskSignalCard signal={indicator} variant=\"success\" />\n </motion.div>\n ))}\n </div>\n </section>\n );\n}\n","\"use client\";\n\nimport { ClipboardDocumentCheckIcon } from \"@heroicons/react/24/solid\";\nimport { motion } from \"framer-motion\";\nimport { useTranslation } from \"react-i18next\";\n\ninterface SafetyChecklistSectionProps {\n items: string[];\n}\n\nexport function SafetyChecklistSection({ items }: SafetyChecklistSectionProps) {\n const { t } = useTranslation();\n\n if (items.length === 0) return null;\n\n return (\n <section>\n <h3 className=\"mb-6 flex items-center gap-3 text-3xl font-bold\">\n <ClipboardDocumentCheckIcon className=\"size-10 text-primary\" />\n {t(\"page.tradeSafety.result.safetyChecklist\")}\n </h3>\n\n <div className=\"card border-2 border-primary/30 bg-base-200\">\n <div className=\"card-body\">\n <p className=\"mb-6 text-lg text-neutral-content\">\n {t(\"page.tradeSafety.result.checklistDescription\")}\n </p>\n\n <div className=\"space-y-3\">\n {items.map((item, idx) => (\n <motion.label\n key={idx}\n initial={{ x: -20, opacity: 0 }}\n animate={{ x: 0, opacity: 1 }}\n transition={{ delay: idx * 0.08 }}\n className=\"flex cursor-pointer items-start gap-3 rounded-lg p-3 hover:bg-base-100/30\"\n >\n <input\n type=\"checkbox\"\n className=\"checkbox-primary checkbox mt-1\"\n />\n <span className=\"text-lg\">{item}</span>\n </motion.label>\n ))}\n </div>\n </div>\n </div>\n </section>\n );\n}\n","\"use client\";\n\nimport { LanguageIcon } from \"@heroicons/react/24/solid\";\nimport { useTranslation } from \"react-i18next\";\n\ninterface TranslationSectionProps {\n translation?: string | null;\n nuance?: string | null;\n}\n\nexport function TranslationSection({\n translation,\n nuance,\n}: TranslationSectionProps) {\n const { t } = useTranslation();\n\n if (!translation && !nuance) return null;\n\n return (\n <section>\n <h3 className=\"mb-6 flex items-center gap-3 text-3xl font-bold\">\n <LanguageIcon className=\"size-10 text-primary\" />\n {t(\"page.tradeSafety.result.translation\")}\n </h3>\n\n <div className=\"card bg-base-200 shadow-xl\">\n <div className=\"card-body\">\n {translation && (\n <div className=\"mb-4\">\n <h4 className=\"mb-2 text-lg font-semibold\">\n {t(\"page.tradeSafety.result.translationTitle\")}\n </h4>\n <p className=\"whitespace-pre-wrap text-neutral-content\">\n {translation}\n </p>\n </div>\n )}\n\n {nuance && (\n <div>\n <h4 className=\"mb-2 text-lg font-semibold\">\n {t(\"page.tradeSafety.result.nuanceTitle\")}\n </h4>\n <p className=\"whitespace-pre-wrap text-neutral-content\">\n {nuance}\n </p>\n </div>\n )}\n </div>\n </div>\n </section>\n );\n}\n","\"use client\";\n\nimport { motion, Variants } from \"framer-motion\";\n\nimport { TradeSafetyAnalysis } from \"../../types\";\n\nimport { CautionsSection } from \"./CautionsSection\";\nimport { CompanionCtaSection } from \"./CompanionCtaSection\";\nimport { ExpertAdviceSection } from \"./ExpertAdviceSection\";\nimport { PriceAnalysisSection } from \"./PriceAnalysisSection\";\nimport { RecommendationSection } from \"./RecommendationSection\";\nimport { RiskScoreHero } from \"./RiskScoreHero\";\nimport { RiskSignalsSection } from \"./RiskSignalsSection\";\nimport { SafeIndicatorsSection } from \"./SafeIndicatorsSection\";\nimport { SafetyChecklistSection } from \"./SafetyChecklistSection\";\nimport { TranslationSection } from \"./TranslationSection\";\n\ninterface DetailedResultProps {\n analysis: TradeSafetyAnalysis;\n expertAdvice?: string | null;\n /** Set to true to show AI companion CTA (for external integrations) */\n showCompanionCta?: boolean;\n}\n\nconst fadeInUp: Variants = {\n initial: { y: 40, opacity: 0 },\n animate: {\n y: 0,\n opacity: 1,\n transition: { duration: 0.6 },\n },\n};\n\nconst staggerContainer: Variants = {\n animate: {\n transition: {\n staggerChildren: 0.15,\n },\n },\n};\n\nexport function DetailedResult({\n analysis,\n expertAdvice,\n showCompanionCta = false,\n}: DetailedResultProps) {\n return (\n <motion.div\n variants={staggerContainer}\n initial=\"initial\"\n animate=\"animate\"\n className=\"mx-auto max-w-5xl space-y-12\"\n >\n {/* Hero: 종합 위험도 */}\n <motion.div variants={fadeInUp}>\n <RiskScoreHero score={analysis.risk_score} />\n </motion.div>\n\n {/* 번역 + 뉘앙스 */}\n {(analysis.translation || analysis.nuance_explanation) && (\n <motion.div variants={fadeInUp}>\n <TranslationSection\n translation={analysis.translation}\n nuance={analysis.nuance_explanation}\n />\n </motion.div>\n )}\n\n {/* 위험 신호 */}\n {analysis.risk_signals.length > 0 && (\n <motion.div variants={fadeInUp}>\n <RiskSignalsSection signals={analysis.risk_signals} />\n </motion.div>\n )}\n\n {/* 주의사항 */}\n {analysis.cautions.length > 0 && (\n <motion.div variants={fadeInUp}>\n <CautionsSection cautions={analysis.cautions} />\n </motion.div>\n )}\n\n {/* 안전 요소 */}\n {analysis.safe_indicators.length > 0 && (\n <motion.div variants={fadeInUp}>\n <SafeIndicatorsSection indicators={analysis.safe_indicators} />\n </motion.div>\n )}\n\n {/* 가격 분석 */}\n {analysis.price_analysis && (\n <motion.div variants={fadeInUp}>\n <PriceAnalysisSection data={analysis.price_analysis} />\n </motion.div>\n )}\n\n {/* 체크리스트 */}\n {analysis.safety_checklist.length > 0 && (\n <motion.div variants={fadeInUp}>\n <SafetyChecklistSection items={analysis.safety_checklist} />\n </motion.div>\n )}\n\n {/* 전문가 조언 (있을 경우) */}\n {expertAdvice && (\n <motion.div variants={fadeInUp}>\n <ExpertAdviceSection advice={expertAdvice} />\n </motion.div>\n )}\n\n {/* 종합 추천 */}\n <motion.div variants={fadeInUp}>\n <RecommendationSection\n recommendation={analysis.recommendation}\n emotionalSupport={analysis.emotional_support}\n />\n </motion.div>\n\n {/* AI 동반자 CTA - 외부 통합 시에만 표시 */}\n {showCompanionCta && (\n <motion.div variants={fadeInUp}>\n <CompanionCtaSection />\n </motion.div>\n )}\n </motion.div>\n );\n}\n","\"use client\";\n\nimport Link from \"next/link\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { QuickSummary } from \"../types\";\n\ninterface QuickResultTeaserProps {\n summary: QuickSummary;\n checkId: string;\n}\n\nexport function QuickResultTeaser({\n summary,\n checkId,\n}: QuickResultTeaserProps) {\n const { t, i18n } = useTranslation();\n const lang = i18n.language;\n\n return (\n <div className=\"mx-auto max-w-2xl\">\n <h1 className=\"mb-8 text-center text-3xl font-bold\">\n {t(\"page.tradeSafety.result.title\")}\n </h1>\n\n {/* Quick Summary Cards */}\n <div className=\"mb-8 grid grid-cols-1 gap-4 md:grid-cols-3\">\n <div className=\"card bg-error/10\">\n <div className=\"card-body items-center text-center\">\n <h3 className=\"text-4xl font-bold text-error\">\n {summary.risk_signals_count}\n </h3>\n <p className=\"text-sm\">\n {t(\"page.tradeSafety.result.riskSignals\")}\n </p>\n </div>\n </div>\n <div className=\"card bg-warning/10\">\n <div className=\"card-body items-center text-center\">\n <h3 className=\"text-4xl font-bold text-warning\">\n {summary.cautions_count}\n </h3>\n <p className=\"text-sm\">{t(\"page.tradeSafety.result.cautions\")}</p>\n </div>\n </div>\n <div className=\"card bg-success/10\">\n <div className=\"card-body items-center text-center\">\n <h3 className=\"text-4xl font-bold text-success\">\n {summary.safe_indicators_count}\n </h3>\n <p className=\"text-sm\">\n {t(\"page.tradeSafety.result.safeIndicators\")}\n </p>\n </div>\n </div>\n </div>\n\n {/* Signup Prompt */}\n <div className=\"card bg-base-200 shadow-xl\">\n <div className=\"card-body items-center text-center\">\n <h2 className=\"card-title text-2xl\">\n {t(\"page.tradeSafety.result.signupRequired\")}\n </h2>\n <p className=\"mb-4 text-neutral-content\">\n {t(\"page.tradeSafety.result.signupMessage\")}\n </p>\n <Link\n href={`/${lang}/login?callbackUrl=${encodeURIComponent(`/${lang}/trade-safety/result/${checkId}`)}`}\n className=\"btn btn-primary\"\n >\n {t(\"login\")}\n </Link>\n </div>\n </div>\n </div>\n );\n}\n","import { BaseCrudRepository } from \"@aioia/core\";\nimport { z } from \"zod\";\n\n// Zod schema for nested objects\nconst riskSignalSchema = z.object({\n category: z.enum([\"payment\", \"seller\", \"platform\", \"price\", \"content\"]),\n severity: z.enum([\"high\", \"medium\", \"low\"]),\n title: z.string(),\n description: z.string(),\n what_to_do: z.string(),\n});\n\nconst priceAnalysisSchema = z\n .object({\n market_price_range: z.string().nullish(),\n offered_price: z.number().nullish(),\n currency: z.string().nullish(),\n price_assessment: z.string(),\n warnings: z.array(z.string()),\n })\n .nullish();\n\nconst tradeSafetyAnalysisSchema = z.object({\n translation: z.string().nullish(),\n nuance_explanation: z.string().nullish(),\n risk_signals: z.array(riskSignalSchema),\n cautions: z.array(riskSignalSchema),\n safe_indicators: z.array(riskSignalSchema),\n price_analysis: priceAnalysisSchema,\n safety_checklist: z.array(z.string()),\n risk_score: z.number(),\n recommendation: z.string(),\n emotional_support: z.string(),\n});\n\nconst quickSummarySchema = z.object({\n risk_signals_count: z.number(),\n cautions_count: z.number(),\n safe_indicators_count: z.number(),\n});\n\nconst tradeSafetyCheckResponseSchema = z.object({\n id: z.string(),\n user_id: z.string().nullish(),\n input_text: z.string(),\n llm_analysis: tradeSafetyAnalysisSchema,\n risk_score: z.number(),\n expert_advice: z.string().nullish(),\n expert_reviewed: z.boolean(),\n expert_reviewed_at: z.string().nullish(),\n expert_reviewed_by: z.string().nullish(),\n created_at: z.string(),\n updated_at: z.string(),\n});\n\n// Full response for authenticated users\nexport type TradeSafetyCheckFullResponse = z.infer<\n typeof tradeSafetyCheckResponseSchema\n>;\n\n// Quick response for non-authenticated users\nexport interface QuickCheckRepositoryResponse {\n id: string;\n quick_summary: {\n risk_signals_count: number;\n cautions_count: number;\n safe_indicators_count: number;\n };\n signup_required: true;\n}\n\n// Union type for repository responses\nexport type TradeSafetyCheckRepositoryResponse =\n | TradeSafetyCheckFullResponse\n | QuickCheckRepositoryResponse;\n\n// Union schema for repository responses\nconst tradeSafetyCheckRepositoryResponseSchema = z.union([\n tradeSafetyCheckResponseSchema,\n z.object({\n id: z.string(),\n quick_summary: quickSummarySchema,\n signup_required: z.literal(true),\n }),\n]);\n\nexport class TradeSafetyRepository extends BaseCrudRepository<TradeSafetyCheckRepositoryResponse> {\n readonly resource = \"trade-safety\";\n\n protected getDataSchema() {\n return tradeSafetyCheckRepositoryResponseSchema;\n }\n}\n","export type RiskSeverity = \"high\" | \"medium\" | \"low\";\nexport type RiskCategory =\n | \"payment\"\n | \"seller\"\n | \"platform\"\n | \"price\"\n | \"content\";\n\n/**\n * Risk score thresholds for Trade Safety checks\n * Used consistently across Public and Admin interfaces\n */\nexport const RISK_SCORE_THRESHOLDS = {\n high: 70, // >= 70: High risk (red)\n medium: 40, // >= 40: Medium risk (yellow)\n // < 40: Low risk (green)\n} as const;\n\nexport interface TradeSafetyCheckRequest {\n input_text: string;\n}\n\nexport interface RiskSignal {\n category: RiskCategory;\n severity: RiskSeverity;\n title: string;\n description: string;\n what_to_do: string;\n}\n\nexport interface PriceAnalysis {\n market_price_range?: string | null;\n offered_price?: number | null;\n currency?: string | null;\n price_assessment: string;\n warnings: string[];\n}\n\nexport interface TradeSafetyAnalysis {\n translation?: string | null;\n nuance_explanation?: string | null;\n risk_signals: RiskSignal[];\n cautions: RiskSignal[];\n safe_indicators: RiskSignal[];\n price_analysis?: PriceAnalysis | null;\n safety_checklist: string[];\n risk_score: number;\n recommendation: string;\n emotional_support: string;\n}\n\nexport interface QuickSummary {\n risk_signals_count: number;\n cautions_count: number;\n safe_indicators_count: number;\n}\n\nexport interface TradeSafetyCheckResponse {\n id: string;\n user_id?: string | null;\n input_text: string;\n llm_analysis: TradeSafetyAnalysis;\n risk_score: number;\n expert_advice?: string | null;\n expert_reviewed: boolean;\n expert_reviewed_at?: string | null;\n expert_reviewed_by?: string | null;\n created_at: string;\n updated_at: string;\n}\n\nexport interface QuickCheckResponse {\n id: string;\n quick_summary: QuickSummary;\n signup_required: true;\n}\n\nexport interface TradeSafetyEditFormData {\n expert_advice?: string | null;\n expert_reviewed: boolean;\n}\n"],"names":["ChatBubbleOvalLeftEllipsisIcon","title","titleId","props","svgRef","React","ForwardRef","CheckBadgeIcon","CheckCircleIcon","ClipboardDocumentCheckIcon","CurrencyDollarIcon","ExclamationCircleIcon","ExclamationTriangleIcon","HeartIcon","InformationCircleIcon","LanguageIcon","LightBulbIcon","ShieldExclamationIcon","UserIcon","variantStyles","iconColor","severityIcon","RiskSignalCard","signal","variant","t","useTranslation","Icon","jsx","jsxs","CautionsSection","cautions","caution","idx","motion","CompanionCtaSection","i18n","lang","Link","ExpertAdviceSection","advice","PriceAnalysisSection","data","warning","index","RecommendationSection","recommendation","emotionalSupport","getRiskLevel","score","RiskScoreHero","risk","colorClasses","RiskSignalsSection","signals","SafeIndicatorsSection","indicators","indicator","SafetyChecklistSection","items","item","TranslationSection","translation","nuance","fadeInUp","staggerContainer","DetailedResult","analysis","expertAdvice","showCompanionCta","QuickResultTeaser","summary","checkId","riskSignalSchema","z","priceAnalysisSchema","tradeSafetyAnalysisSchema","quickSummarySchema","tradeSafetyCheckResponseSchema","tradeSafetyCheckRepositoryResponseSchema","TradeSafetyRepository","BaseCrudRepository","RISK_SCORE_THRESHOLDS"],"mappings":";;;;;;;AACA,SAASA,EAA+B;AAAA,EACtC,OAAAC;AAAA,EACA,SAAAC;AAAA,EACA,GAAGC;AACL,GAAGC,GAAQ;AACT,SAAoB,gBAAAC,EAAM,cAAc,OAAO,OAAO,OAAO;AAAA,IAC3D,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,eAAe;AAAA,IACf,aAAa;AAAA,IACb,KAAKD;AAAA,IACL,mBAAmBF;AAAA,EACvB,GAAKC,CAAK,GAAGF,IAAqB,gBAAAI,EAAM,cAAc,SAAS;AAAA,IAC3D,IAAIH;AAAA,EACR,GAAKD,CAAK,IAAI,MAAmB,gBAAAI,EAAM,cAAc,QAAQ;AAAA,IACzD,UAAU;AAAA,IACV,GAAG;AAAA,IACH,UAAU;AAAA,EACd,CAAG,CAAC;AACJ;AACA,MAAMC,IAA2B,gBAAAD,EAAM,WAAWL,CAA8B;ACrBhF,SAASO,EAAe;AAAA,EACtB,OAAAN;AAAA,EACA,SAAAC;AAAA,EACA,GAAGC;AACL,GAAGC,GAAQ;AACT,SAAoB,gBAAAC,EAAM,cAAc,OAAO,OAAO,OAAO;AAAA,IAC3D,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,eAAe;AAAA,IACf,aAAa;AAAA,IACb,KAAKD;AAAA,IACL,mBAAmBF;AAAA,EACvB,GAAKC,CAAK,GAAGF,IAAqB,gBAAAI,EAAM,cAAc,SAAS;AAAA,IAC3D,IAAIH;AAAA,EACR,GAAKD,CAAK,IAAI,MAAmB,gBAAAI,EAAM,cAAc,QAAQ;AAAA,IACzD,UAAU;AAAA,IACV,GAAG;AAAA,IACH,UAAU;AAAA,EACd,CAAG,CAAC;AACJ;AACA,MAAMC,IAA2B,gBAAAD,EAAM,WAAWE,CAAc;ACrBhE,SAASC,EAAgB;AAAA,EACvB,OAAAP;AAAA,EACA,SAAAC;AAAA,EACA,GAAGC;AACL,GAAGC,GAAQ;AACT,SAAoB,gBAAAC,EAAM,cAAc,OAAO,OAAO,OAAO;AAAA,IAC3D,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,eAAe;AAAA,IACf,aAAa;AAAA,IACb,KAAKD;AAAA,IACL,mBAAmBF;AAAA,EACvB,GAAKC,CAAK,GAAGF,IAAqB,gBAAAI,EAAM,cAAc,SAAS;AAAA,IAC3D,IAAIH;AAAA,EACR,GAAKD,CAAK,IAAI,MAAmB,gBAAAI,EAAM,cAAc,QAAQ;AAAA,IACzD,UAAU;AAAA,IACV,GAAG;AAAA,IACH,UAAU;AAAA,EACd,CAAG,CAAC;AACJ;AACA,MAAMC,IAA2B,gBAAAD,EAAM,WAAWG,CAAe;ACrBjE,SAASC,EAA2B;AAAA,EAClC,OAAAR;AAAA,EACA,SAAAC;AAAA,EACA,GAAGC;AACL,GAAGC,GAAQ;AACT,SAAoB,gBAAAC,EAAM,cAAc,OAAO,OAAO,OAAO;AAAA,IAC3D,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,eAAe;AAAA,IACf,aAAa;AAAA,IACb,KAAKD;AAAA,IACL,mBAAmBF;AAAA,EACvB,GAAKC,CAAK,GAAGF,IAAqB,gBAAAI,EAAM,cAAc,SAAS;AAAA,IAC3D,IAAIH;AAAA,EACR,GAAKD,CAAK,IAAI,MAAmB,gBAAAI,EAAM,cAAc,QAAQ;AAAA,IACzD,UAAU;AAAA,IACV,GAAG;AAAA,IACH,UAAU;AAAA,EACd,CAAG,GAAgB,gBAAAA,EAAM,cAAc,QAAQ;AAAA,IAC3C,UAAU;AAAA,IACV,GAAG;AAAA,IACH,UAAU;AAAA,EACd,CAAG,CAAC;AACJ;AACA,MAAMC,IAA2B,gBAAAD,EAAM,WAAWI,CAA0B;ACzB5E,SAASC,EAAmB;AAAA,EAC1B,OAAAT;AAAA,EACA,SAAAC;AAAA,EACA,GAAGC;AACL,GAAGC,GAAQ;AACT,SAAoB,gBAAAC,EAAM,cAAc,OAAO,OAAO,OAAO;AAAA,IAC3D,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,eAAe;AAAA,IACf,aAAa;AAAA,IACb,KAAKD;AAAA,IACL,mBAAmBF;AAAA,EACvB,GAAKC,CAAK,GAAGF,IAAqB,gBAAAI,EAAM,cAAc,SAAS;AAAA,IAC3D,IAAIH;AAAA,EACR,GAAKD,CAAK,IAAI,MAAmB,gBAAAI,EAAM,cAAc,QAAQ;AAAA,IACzD,GAAG;AAAA,EACP,CAAG,GAAgB,gBAAAA,EAAM,cAAc,QAAQ;AAAA,IAC3C,UAAU;AAAA,IACV,GAAG;AAAA,IACH,UAAU;AAAA,EACd,CAAG,CAAC;AACJ;AACA,MAAMC,IAA2B,gBAAAD,EAAM,WAAWK,CAAkB;ACvBpE,SAASC,EAAsB;AAAA,EAC7B,OAAAV;AAAA,EACA,SAAAC;AAAA,EACA,GAAGC;AACL,GAAGC,GAAQ;AACT,SAAoB,gBAAAC,EAAM,cAAc,OAAO,OAAO,OAAO;AAAA,IAC3D,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,eAAe;AAAA,IACf,aAAa;AAAA,IACb,KAAKD;AAAA,IACL,mBAAmBF;AAAA,EACvB,GAAKC,CAAK,GAAGF,IAAqB,gBAAAI,EAAM,cAAc,SAAS;AAAA,IAC3D,IAAIH;AAAA,EACR,GAAKD,CAAK,IAAI,MAAmB,gBAAAI,EAAM,cAAc,QAAQ;AAAA,IACzD,UAAU;AAAA,IACV,GAAG;AAAA,IACH,UAAU;AAAA,EACd,CAAG,CAAC;AACJ;AACA,MAAMC,IAA2B,gBAAAD,EAAM,WAAWM,CAAqB;ACrBvE,SAASC,EAAwB;AAAA,EAC/B,OAAAX;AAAA,EACA,SAAAC;AAAA,EACA,GAAGC;AACL,GAAGC,GAAQ;AACT,SAAoB,gBAAAC,EAAM,cAAc,OAAO,OAAO,OAAO;AAAA,IAC3D,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,eAAe;AAAA,IACf,aAAa;AAAA,IACb,KAAKD;AAAA,IACL,mBAAmBF;AAAA,EACvB,GAAKC,CAAK,GAAGF,IAAqB,gBAAAI,EAAM,cAAc,SAAS;AAAA,IAC3D,IAAIH;AAAA,EACR,GAAKD,CAAK,IAAI,MAAmB,gBAAAI,EAAM,cAAc,QAAQ;AAAA,IACzD,UAAU;AAAA,IACV,GAAG;AAAA,IACH,UAAU;AAAA,EACd,CAAG,CAAC;AACJ;AACA,MAAMC,IAA2B,gBAAAD,EAAM,WAAWO,CAAuB;ACrBzE,SAASC,EAAU;AAAA,EACjB,OAAAZ;AAAA,EACA,SAAAC;AAAA,EACA,GAAGC;AACL,GAAGC,GAAQ;AACT,SAAoB,gBAAAC,EAAM,cAAc,OAAO,OAAO,OAAO;AAAA,IAC3D,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,eAAe;AAAA,IACf,aAAa;AAAA,IACb,KAAKD;AAAA,IACL,mBAAmBF;AAAA,EACvB,GAAKC,CAAK,GAAGF,IAAqB,gBAAAI,EAAM,cAAc,SAAS;AAAA,IAC3D,IAAIH;AAAA,EACR,GAAKD,CAAK,IAAI,MAAmB,gBAAAI,EAAM,cAAc,QAAQ;AAAA,IACzD,GAAG;AAAA,EACP,CAAG,CAAC;AACJ;AACA,MAAMC,IAA2B,gBAAAD,EAAM,WAAWQ,CAAS;ACnB3D,SAASC,EAAsB;AAAA,EAC7B,OAAAb;AAAA,EACA,SAAAC;AAAA,EACA,GAAGC;AACL,GAAGC,GAAQ;AACT,SAAoB,gBAAAC,EAAM,cAAc,OAAO,OAAO,OAAO;AAAA,IAC3D,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,eAAe;AAAA,IACf,aAAa;AAAA,IACb,KAAKD;AAAA,IACL,mBAAmBF;AAAA,EACvB,GAAKC,CAAK,GAAGF,IAAqB,gBAAAI,EAAM,cAAc,SAAS;AAAA,IAC3D,IAAIH;AAAA,EACR,GAAKD,CAAK,IAAI,MAAmB,gBAAAI,EAAM,cAAc,QAAQ;AAAA,IACzD,UAAU;AAAA,IACV,GAAG;AAAA,IACH,UAAU;AAAA,EACd,CAAG,CAAC;AACJ;AACA,MAAMC,IAA2B,gBAAAD,EAAM,WAAWS,CAAqB;ACrBvE,SAASC,EAAa;AAAA,EACpB,OAAAd;AAAA,EACA,SAAAC;AAAA,EACA,GAAGC;AACL,GAAGC,GAAQ;AACT,SAAoB,gBAAAC,EAAM,cAAc,OAAO,OAAO,OAAO;AAAA,IAC3D,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,eAAe;AAAA,IACf,aAAa;AAAA,IACb,KAAKD;AAAA,IACL,mBAAmBF;AAAA,EACvB,GAAKC,CAAK,GAAGF,IAAqB,gBAAAI,EAAM,cAAc,SAAS;AAAA,IAC3D,IAAIH;AAAA,EACR,GAAKD,CAAK,IAAI,MAAmB,gBAAAI,EAAM,cAAc,QAAQ;AAAA,IACzD,UAAU;AAAA,IACV,GAAG;AAAA,IACH,UAAU;AAAA,EACd,CAAG,CAAC;AACJ;AACA,MAAMC,IAA2B,gBAAAD,EAAM,WAAWU,CAAY;ACrB9D,SAASC,EAAc;AAAA,EACrB,OAAAf;AAAA,EACA,SAAAC;AAAA,EACA,GAAGC;AACL,GAAGC,GAAQ;AACT,SAAoB,gBAAAC,EAAM,cAAc,OAAO,OAAO,OAAO;AAAA,IAC3D,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,eAAe;AAAA,IACf,aAAa;AAAA,IACb,KAAKD;AAAA,IACL,mBAAmBF;AAAA,EACvB,GAAKC,CAAK,GAAGF,IAAqB,gBAAAI,EAAM,cAAc,SAAS;AAAA,IAC3D,IAAIH;AAAA,EACR,GAAKD,CAAK,IAAI,MAAmB,gBAAAI,EAAM,cAAc,QAAQ;AAAA,IACzD,GAAG;AAAA,EACP,CAAG,GAAgB,gBAAAA,EAAM,cAAc,QAAQ;AAAA,IAC3C,UAAU;AAAA,IACV,GAAG;AAAA,IACH,UAAU;AAAA,EACd,CAAG,CAAC;AACJ;AACA,MAAMC,IAA2B,gBAAAD,EAAM,WAAWW,CAAa;ACvB/D,SAASC,EAAsB;AAAA,EAC7B,OAAAhB;AAAA,EACA,SAAAC;AAAA,EACA,GAAGC;AACL,GAAGC,GAAQ;AACT,SAAoB,gBAAAC,EAAM,cAAc,OAAO,OAAO,OAAO;AAAA,IAC3D,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,eAAe;AAAA,IACf,aAAa;AAAA,IACb,KAAKD;AAAA,IACL,mBAAmBF;AAAA,EACvB,GAAKC,CAAK,GAAGF,IAAqB,gBAAAI,EAAM,cAAc,SAAS;AAAA,IAC3D,IAAIH;AAAA,EACR,GAAKD,CAAK,IAAI,MAAmB,gBAAAI,EAAM,cAAc,QAAQ;AAAA,IACzD,UAAU;AAAA,IACV,GAAG;AAAA,IACH,UAAU;AAAA,EACd,CAAG,CAAC;AACJ;AACA,MAAMC,IAA2B,gBAAAD,EAAM,WAAWY,CAAqB;ACrBvE,SAASC,EAAS;AAAA,EAChB,OAAAjB;AAAA,EACA,SAAAC;AAAA,EACA,GAAGC;AACL,GAAGC,GAAQ;AACT,SAAoB,gBAAAC,EAAM,cAAc,OAAO,OAAO,OAAO;AAAA,IAC3D,OAAO;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,eAAe;AAAA,IACf,aAAa;AAAA,IACb,KAAKD;AAAA,IACL,mBAAmBF;AAAA,EACvB,GAAKC,CAAK,GAAGF,IAAqB,gBAAAI,EAAM,cAAc,SAAS;AAAA,IAC3D,IAAIH;AAAA,EACR,GAAKD,CAAK,IAAI,MAAmB,gBAAAI,EAAM,cAAc,QAAQ;AAAA,IACzD,UAAU;AAAA,IACV,GAAG;AAAA,IACH,UAAU;AAAA,EACd,CAAG,CAAC;AACJ;AACA,MAAMC,IAA2B,gBAAAD,EAAM,WAAWa,CAAQ,GCNpDC,IAAgB;AAAA,EACpB,OAAO;AAAA,EACP,SAAS;AAAA,EACT,SAAS;AACX,GAEMC,IAAY;AAAA,EAChB,OAAO;AAAA,EACP,SAAS;AAAA,EACT,SAAS;AACX,GAEMC,IAAe;AAAA,EACnB,MAAMV;AAAAA,EACN,QAAQC;AAAAA,EACR,KAAKE;AACP;AAEO,SAASQ,EAAe;AAAA,EAC7B,QAAAC;AAAA,EACA,SAAAC,IAAU;AACZ,GAAwB;AACtB,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAA,GACRC,IAAON,EAAaE,EAAO,QAAQ;AAEzC,SACE,gBAAAK,EAAC,OAAA,EAAI,WAAW,QAAQT,EAAcK,CAAO,CAAC,8BAC5C,UAAA,gBAAAI,EAAC,SAAI,WAAU,aACb,UAAA,gBAAAC,EAAC,OAAA,EAAI,WAAU,0BACb,UAAA;AAAA,IAAA,gBAAAD,EAACD,KAAK,WAAW,UAAUP,EAAUI,CAAO,CAAC,kBAAkB;AAAA,IAE/D,gBAAAK,EAAC,OAAA,EAAI,WAAU,UACb,UAAA;AAAA,MAAA,gBAAAD,EAAC,MAAA,EAAG,WAAU,sBAAsB,UAAAL,EAAO,OAAM;AAAA,MACjD,gBAAAK,EAAC,KAAA,EAAE,WAAU,6BAA6B,YAAO,aAAY;AAAA,MAG7D,gBAAAC,EAAC,OAAA,EAAI,WAAU,sCACb,UAAA;AAAA,QAAA,gBAAAA,EAAC,KAAA,EAAE,WAAU,8BAA6B,UAAA;AAAA,UAAA;AAAA,UACpCJ,EAAE,kCAAkC;AAAA,QAAA,GAC1C;AAAA,QACA,gBAAAG,EAAC,KAAA,EAAE,WAAU,WAAW,YAAO,WAAA,CAAW;AAAA,MAAA,EAAA,CAC5C;AAAA,IAAA,EAAA,CACF;AAAA,EAAA,EAAA,CACF,GACF,GACF;AAEJ;AClDO,SAASE,EAAgB,EAAE,UAAAC,KAAkC;AAClE,QAAM,EAAE,EAAA,IAAML,EAAA;AAEd,SAAIK,EAAS,WAAW,IAAU,yBAG/B,WAAA,EACC,UAAA;AAAA,IAAA,gBAAAF,EAAC,MAAA,EAAG,WAAU,mDACZ,UAAA;AAAA,MAAA,gBAAAD,EAAChB,GAAA,EAAwB,WAAU,uBAAA,CAAuB;AAAA,MACzD,EAAE,kCAAkC;AAAA,IAAA,GACvC;AAAA,IAEA,gBAAAgB,EAAC,SAAI,WAAU,aACZ,YAAS,IAAI,CAACI,GAASC,MACtB,gBAAAL;AAAA,MAACM,EAAO;AAAA,MAAP;AAAA,QAEC,SAAS,EAAE,GAAG,KAAK,SAAS,EAAA;AAAA,QAC5B,SAAS,EAAE,GAAG,GAAG,SAAS,EAAA;AAAA,QAC1B,YAAY,EAAE,OAAOD,IAAM,IAAA;AAAA,QAC3B,YAAY,EAAE,OAAO,MAAM,GAAG,GAAA;AAAA,QAE9B,UAAA,gBAAAL,EAACN,GAAA,EAAe,QAAQU,GAAS,SAAQ,UAAA,CAAU;AAAA,MAAA;AAAA,MAN9CC;AAAA,IAAA,CAQR,EAAA,CACH;AAAA,EAAA,GACF;AAEJ;ACjCO,SAASE,IAAsB;AACpC,QAAM,EAAE,GAAAV,GAAG,MAAAW,EAAA,IAASV,EAAA,GACdW,IAAOD,EAAK;AAElB,SACE,gBAAAR,EAAC,aAAQ,WAAU,iEACjB,4BAAC,OAAA,EAAI,WAAU,4BACb,UAAA,gBAAAC,EAAC,OAAA,EACC,UAAA;AAAA,IAAA,gBAAAD,EAAC5B,GAAA,EAA+B,WAAU,uBAAA,CAAuB;AAAA,sBAEhE,MAAA,EAAG,WAAU,2BACX,UAAAyB,EAAE,4CAA4C,GACjD;AAAA,sBAEC,KAAA,EAAE,WAAU,0BACV,UAAAA,EAAE,kDAAkD,GACvD;AAAA,IAEA,gBAAAG,EAACU,GAAA,EAAK,MAAM,IAAID,CAAI,eAClB,UAAA,gBAAAT;AAAA,MAACM,EAAO;AAAA,MAAP;AAAA,QACC,YAAY,EAAE,OAAO,IAAA;AAAA,QACrB,UAAU,EAAE,OAAO,KAAA;AAAA,QACnB,WAAU;AAAA,QAET,YAAE,6CAA6C;AAAA,MAAA;AAAA,IAAA,EAClD,CACF;AAAA,EAAA,EAAA,CACF,GACF,GACF;AAEJ;AC5BO,SAASK,EAAoB,EAAE,QAAAC,KAAoC;AACxE,QAAM,EAAE,EAAA,IAAMd,EAAA;AAEd,SACE,gBAAAE;AAAA,IAACM,EAAO;AAAA,IAAP;AAAA,MACC,YAAY,EAAE,OAAO,KAAA;AAAA,MACrB,WAAU;AAAA,MAEV,UAAA,gBAAAL,EAAC,OAAA,EAAI,WAAU,aACb,UAAA;AAAA,QAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,gCACb,UAAA;AAAA,UAAA,gBAAAD,EAAC,OAAA,EAAI,WAAU,sBACb,UAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,qDACb,UAAA,gBAAAA,EAACV,GAAA,EAAS,WAAU,SAAA,CAAS,EAAA,CAC/B,GACF;AAAA,4BACC,OAAA,EACC,UAAA;AAAA,YAAA,gBAAAU,EAAC,MAAA,EAAG,WAAU,sBACX,UAAA,EAAE,sCAAsC,GAC3C;AAAA,8BACC,KAAA,EAAE,WAAU,cACV,UAAA,EAAE,oCAAoC,EAAA,CACzC;AAAA,UAAA,EAAA,CACF;AAAA,QAAA,GACF;AAAA,QAEA,gBAAAA,EAAC,SAAI,WAAU,oBACb,4BAAC,KAAA,EAAE,WAAU,+BAA+B,UAAAY,EAAA,CAAO,EAAA,CACrD;AAAA,MAAA,EAAA,CACF;AAAA,IAAA;AAAA,EAAA;AAGN;AC3BO,SAASC,EAAqB,EAAE,MAAAC,KAAmC;AACxE,QAAM,EAAE,GAAG,MAAAN,EAAA,IAASV,EAAA;AAEpB,SAAKgB,sBAGF,WAAA,EACC,UAAA;AAAA,IAAA,gBAAAb,EAAC,MAAA,EAAG,WAAU,mDACZ,UAAA;AAAA,MAAA,gBAAAD,EAAClB,GAAA,EAAmB,WAAU,yBAAA,CAAyB;AAAA,MACtD,EAAE,uCAAuC;AAAA,IAAA,GAC5C;AAAA,sBAEC,OAAA,EAAI,WAAU,8BACb,UAAA,gBAAAmB,EAAC,OAAA,EAAI,WAAU,aACb,UAAA;AAAA,MAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,yCACZ,UAAA;AAAA,QAAAa,EAAK,wCACH,OAAA,EACC,UAAA;AAAA,UAAA,gBAAAd,EAAC,MAAA,EAAG,WAAU,8BACX,UAAA,EAAE,qCAAqC,GAC1C;AAAA,UACA,gBAAAA,EAAC,KAAA,EAAE,WAAU,sBAAsB,YAAK,mBAAA,CAAmB;AAAA,QAAA,GAC7D;AAAA,QAGDc,EAAK,iBACJ,gBAAAb,EAAC,OAAA,EACC,UAAA;AAAA,UAAA,gBAAAD,EAAC,MAAA,EAAG,WAAU,8BACX,UAAA,EAAE,sCAAsC,GAC3C;AAAA,UACA,gBAAAA,EAAC,OAAE,WAAU,mCACV,cAAI,KAAK,aAAaQ,EAAK,UAAU;AAAA,YACpC,OAAO;AAAA,YACP,UAAUM,EAAK,YAAY;AAAA,UAAA,CAC5B,EAAE,OAAOA,EAAK,aAAa,EAAA,CAC9B;AAAA,QAAA,EAAA,CACF;AAAA,MAAA,GAEJ;AAAA,MAGA,gBAAAb,EAAC,OAAA,EAAI,WAAU,mCACb,UAAA;AAAA,QAAA,gBAAAD,EAAC,MAAA,EAAG,WAAU,8BACX,UAAA,EAAE,yCAAyC,GAC9C;AAAA,QACA,gBAAAA,EAAC,KAAA,EAAE,WAAU,wBAAwB,YAAK,iBAAA,CAAiB;AAAA,MAAA,GAC7D;AAAA,MAGCc,EAAK,SAAS,SAAS,KACtB,gBAAAb,EAAC,OAAA,EAAI,WAAU,QACb,UAAA;AAAA,QAAA,gBAAAA,EAAC,MAAA,EAAG,WAAU,mEACZ,UAAA;AAAA,UAAA,gBAAAD,EAAChB,GAAA,EAAwB,WAAU,SAAA,CAAS;AAAA,UAC3C,EAAE,uCAAuC;AAAA,QAAA,GAC5C;AAAA,0BACC,MAAA,EAAG,WAAU,mCACX,UAAA8B,EAAK,SAAS,IAAI,CAACC,GAASC,wBAC1B,MAAA,EAAe,WAAU,wBACvB,UAAAD,EAAA,GADMC,CAET,CACD,EAAA,CACH;AAAA,MAAA,EAAA,CACF;AAAA,IAAA,EAAA,CAEJ,EAAA,CACF;AAAA,EAAA,GACF,IA9DgB;AAgEpB;ACvEO,SAASC,EAAsB;AAAA,EACpC,gBAAAC;AAAA,EACA,kBAAAC;AACF,GAA+B;AAC7B,QAAM,EAAE,GAAAtB,EAAA,IAAMC,EAAA;AAEd,2BACG,WAAA,EACC,UAAA;AAAA,IAAA,gBAAAG,EAAC,MAAA,EAAG,WAAU,mDACZ,UAAA;AAAA,MAAA,gBAAAD,EAACZ,GAAA,EAAc,WAAU,uBAAA,CAAuB;AAAA,MAC/CS,EAAE,wCAAwC;AAAA,IAAA,GAC7C;AAAA,sBAEC,OAAA,EAAI,WAAU,8BACb,UAAA,gBAAAI,EAAC,OAAA,EAAI,WAAU,aACb,UAAA;AAAA,MAAA,gBAAAD,EAAC,OAAA,EAAI,WAAU,oBACb,UAAA,gBAAAA,EAAC,OAAE,WAAU,oDACV,aACH,EAAA,CACF;AAAA,MAEA,gBAAAA,EAAC,OAAA,EAAI,WAAU,UAAA,CAAU;AAAA,wBAExB,OAAA,EAAI,WAAU,8BACb,UAAA,gBAAAC,EAAC,KAAA,EAAE,WAAU,+CACX,UAAA;AAAA,QAAA,gBAAAD,EAACf,GAAA,EAAU,WAAU,mBAAA,CAAmB;AAAA,QAAE;AAAA,QAAEkC;AAAA,MAAA,EAAA,CAC9C,EAAA,CACF;AAAA,IAAA,EAAA,CACF,EAAA,CACF;AAAA,EAAA,GACF;AAEJ;ACvBA,SAASC,EAAaC,GAA0B;AAC9C,SAAIA,KAAS,KACJ,EAAE,OAAO,QAAQ,OAAO,SAAS,MAAMhC,EAAA,IAE5CgC,KAAS,KACJ,EAAE,OAAO,UAAU,OAAO,WAAW,MAAMrC,EAAA,IAE7C,EAAE,OAAO,OAAO,OAAO,WAAW,MAAML,EAAA;AACjD;AAEO,SAAS2C,EAAc,EAAE,OAAAD,KAA6B;AAC3D,QAAM,EAAE,EAAA,IAAMvB,EAAA,GACRyB,IAAOH,EAAaC,CAAK,GACzB,EAAE,MAAAtB,MAASwB,GAEXC,IAAuC;AAAA,IAC3C,OAAO;AAAA,IACP,SAAS;AAAA,IACT,SAAS;AAAA,EAAA;AAGX,SACE,gBAAAxB,EAAC,SAAI,WAAU,6CACb,4BAAC,OAAA,EAAI,WAAU,4BACb,UAAA,gBAAAC,EAAC,OAAA,EACC,UAAA;AAAA,IAAA,gBAAAD,EAAC,OAAA,EAAI,WAAU,QACb,UAAA,gBAAAA,EAACD,GAAA,EAAK,WAAW,WAAWyB,EAAaD,EAAK,KAAK,CAAC,GAAA,CAAI,GAC1D;AAAA,IACA,gBAAAvB,EAAC,QAAG,WAAU,2BACX,YAAE,qCAAqCuB,EAAK,KAAK,QAAQ,EAAA,CAC5D;AAAA,IAGA,gBAAAvB,EAAC,OAAA,EAAI,WAAU,gBACb,UAAA,gBAAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAW,mBAAmBwB,EAAaD,EAAK,KAAK,CAAC;AAAA,QACtD,OACE;AAAA,UACE,WAAWF;AAAA,UACX,UAAU;AAAA,UACV,eAAe;AAAA,QAAA;AAAA,QAGnB,MAAK;AAAA,QAEL,UAAA,gBAAArB,EAAC,QAAA,EAAK,WAAU,sBAAsB,UAAAqB,EAAA,CAAM;AAAA,MAAA;AAAA,IAAA,GAEhD;AAAA,IAEA,gBAAArB,EAAC,OAAE,WAAU,8CACV,YAAE,qCAAqCuB,EAAK,KAAK,UAAU,EAAA,CAC9D;AAAA,EAAA,EAAA,CACF,GACF,GACF;AAEJ;AC9DO,SAASE,EAAmB,EAAE,SAAAC,KAAoC;AACvE,QAAM,EAAE,EAAA,IAAM5B,EAAA;AAEd,SAAI4B,EAAQ,WAAW,IAAU,yBAG9B,WAAA,EACC,UAAA;AAAA,IAAA,gBAAAzB,EAAC,MAAA,EAAG,WAAU,mDACZ,UAAA;AAAA,MAAA,gBAAAD,EAACX,GAAA,EAAsB,WAAU,qBAAA,CAAqB;AAAA,MACrD,EAAE,qCAAqC;AAAA,IAAA,GAC1C;AAAA,IAEA,gBAAAW,EAAC,SAAI,WAAU,aACZ,YAAQ,IAAI,CAACL,GAAQU,MACpB,gBAAAL;AAAA,MAACM,EAAO;AAAA,MAAP;AAAA,QAEC,SAAS,EAAE,GAAG,KAAK,SAAS,EAAA;AAAA,QAC5B,SAAS,EAAE,GAAG,GAAG,SAAS,EAAA;AAAA,QAC1B,YAAY,EAAE,OAAOD,IAAM,IAAA;AAAA,QAC3B,YAAY,EAAE,OAAO,MAAM,GAAG,GAAA;AAAA,QAE9B,UAAA,gBAAAL,EAACN,GAAA,EAAe,QAAAC,GAAgB,SAAQ,QAAA,CAAQ;AAAA,MAAA;AAAA,MAN3CU;AAAA,IAAA,CAQR,EAAA,CACH;AAAA,EAAA,GACF;AAEJ;AC3BO,SAASsB,EAAsB;AAAA,EACpC,YAAAC;AACF,GAA+B;AAC7B,QAAM,EAAE,EAAA,IAAM9B,EAAA;AAEd,SAAI8B,EAAW,WAAW,IAAU,yBAGjC,WAAA,EACC,UAAA;AAAA,IAAA,gBAAA3B,EAAC,MAAA,EAAG,WAAU,mDACZ,UAAA;AAAA,MAAA,gBAAAD,EAACpB,GAAA,EAAgB,WAAU,uBAAA,CAAuB;AAAA,MACjD,EAAE,wCAAwC;AAAA,IAAA,GAC7C;AAAA,IAEA,gBAAAoB,EAAC,SAAI,WAAU,aACZ,YAAW,IAAI,CAAC6B,GAAWxB,MAC1B,gBAAAL;AAAA,MAACM,EAAO;AAAA,MAAP;AAAA,QAEC,SAAS,EAAE,GAAG,KAAK,SAAS,EAAA;AAAA,QAC5B,SAAS,EAAE,GAAG,GAAG,SAAS,EAAA;AAAA,QAC1B,YAAY,EAAE,OAAOD,IAAM,IAAA;AAAA,QAC3B,YAAY,EAAE,OAAO,MAAM,GAAG,GAAA;AAAA,QAE9B,UAAA,gBAAAL,EAACN,GAAA,EAAe,QAAQmC,GAAW,SAAQ,UAAA,CAAU;AAAA,MAAA;AAAA,MANhDxB;AAAA,IAAA,CAQR,EAAA,CACH;AAAA,EAAA,GACF;AAEJ;AChCO,SAASyB,GAAuB,EAAE,OAAAC,KAAsC;AAC7E,QAAM,EAAE,EAAA,IAAMjC,EAAA;AAEd,SAAIiC,EAAM,WAAW,IAAU,yBAG5B,WAAA,EACC,UAAA;AAAA,IAAA,gBAAA9B,EAAC,MAAA,EAAG,WAAU,mDACZ,UAAA;AAAA,MAAA,gBAAAD,EAACnB,GAAA,EAA2B,WAAU,uBAAA,CAAuB;AAAA,MAC5D,EAAE,yCAAyC;AAAA,IAAA,GAC9C;AAAA,sBAEC,OAAA,EAAI,WAAU,+CACb,UAAA,gBAAAoB,EAAC,OAAA,EAAI,WAAU,aACb,UAAA;AAAA,MAAA,gBAAAD,EAAC,KAAA,EAAE,WAAU,qCACV,UAAA,EAAE,8CAA8C,GACnD;AAAA,MAEA,gBAAAA,EAAC,SAAI,WAAU,aACZ,YAAM,IAAI,CAACgC,GAAM3B,MAChB,gBAAAJ;AAAA,QAACK,EAAO;AAAA,QAAP;AAAA,UAEC,SAAS,EAAE,GAAG,KAAK,SAAS,EAAA;AAAA,UAC5B,SAAS,EAAE,GAAG,GAAG,SAAS,EAAA;AAAA,UAC1B,YAAY,EAAE,OAAOD,IAAM,KAAA;AAAA,UAC3B,WAAU;AAAA,UAEV,UAAA;AAAA,YAAA,gBAAAL;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,MAAK;AAAA,gBACL,WAAU;AAAA,cAAA;AAAA,YAAA;AAAA,YAEZ,gBAAAA,EAAC,QAAA,EAAK,WAAU,WAAW,UAAAgC,EAAA,CAAK;AAAA,UAAA;AAAA,QAAA;AAAA,QAV3B3B;AAAA,MAAA,CAYR,EAAA,CACH;AAAA,IAAA,EAAA,CACF,EAAA,CACF;AAAA,EAAA,GACF;AAEJ;ACvCO,SAAS4B,GAAmB;AAAA,EACjC,aAAAC;AAAA,EACA,QAAAC;AACF,GAA4B;AAC1B,QAAM,EAAE,GAAAtC,EAAA,IAAMC,EAAA;AAEd,SAAI,CAACoC,KAAe,CAACC,IAAe,yBAGjC,WAAA,EACC,UAAA;AAAA,IAAA,gBAAAlC,EAAC,MAAA,EAAG,WAAU,mDACZ,UAAA;AAAA,MAAA,gBAAAD,EAACb,GAAA,EAAa,WAAU,uBAAA,CAAuB;AAAA,MAC9CU,EAAE,qCAAqC;AAAA,IAAA,GAC1C;AAAA,sBAEC,OAAA,EAAI,WAAU,8BACb,UAAA,gBAAAI,EAAC,OAAA,EAAI,WAAU,aACZ,UAAA;AAAA,MAAAiC,KACC,gBAAAjC,EAAC,OAAA,EAAI,WAAU,QACb,UAAA;AAAA,QAAA,gBAAAD,EAAC,MAAA,EAAG,WAAU,8BACX,UAAAH,EAAE,0CAA0C,GAC/C;AAAA,QACA,gBAAAG,EAAC,KAAA,EAAE,WAAU,4CACV,UAAAkC,EAAA,CACH;AAAA,MAAA,GACF;AAAA,MAGDC,uBACE,OAAA,EACC,UAAA;AAAA,QAAA,gBAAAnC,EAAC,MAAA,EAAG,WAAU,8BACX,UAAAH,EAAE,qCAAqC,GAC1C;AAAA,QACA,gBAAAG,EAAC,KAAA,EAAE,WAAU,4CACV,UAAAmC,EAAA,CACH;AAAA,MAAA,EAAA,CACF;AAAA,IAAA,EAAA,CAEJ,EAAA,CACF;AAAA,EAAA,GACF;AAEJ;AC5BA,MAAMC,IAAqB;AAAA,EACzB,SAAS,EAAE,GAAG,IAAI,SAAS,EAAA;AAAA,EAC3B,SAAS;AAAA,IACP,GAAG;AAAA,IACH,SAAS;AAAA,IACT,YAAY,EAAE,UAAU,IAAA;AAAA,EAAI;AAEhC,GAEMC,KAA6B;AAAA,EACjC,SAAS;AAAA,IACP,YAAY;AAAA,MACV,iBAAiB;AAAA,IAAA;AAAA,EACnB;AAEJ;AAEO,SAASC,GAAe;AAAA,EAC7B,UAAAC;AAAA,EACA,cAAAC;AAAA,EACA,kBAAAC,IAAmB;AACrB,GAAwB;AACtB,SACE,gBAAAxC;AAAA,IAACK,EAAO;AAAA,IAAP;AAAA,MACC,UAAU+B;AAAA,MACV,SAAQ;AAAA,MACR,SAAQ;AAAA,MACR,WAAU;AAAA,MAGV,UAAA;AAAA,QAAA,gBAAArC,EAACM,EAAO,KAAP,EAAW,UAAU8B,GACpB,4BAACd,GAAA,EAAc,OAAOiB,EAAS,WAAA,CAAY,EAAA,CAC7C;AAAA,SAGEA,EAAS,eAAeA,EAAS,yCAChCjC,EAAO,KAAP,EAAW,UAAU8B,GACpB,UAAA,gBAAApC;AAAA,UAACiC;AAAA,UAAA;AAAA,YACC,aAAaM,EAAS;AAAA,YACtB,QAAQA,EAAS;AAAA,UAAA;AAAA,QAAA,GAErB;AAAA,QAIDA,EAAS,aAAa,SAAS,uBAC7BjC,EAAO,KAAP,EAAW,UAAU8B,GACpB,UAAA,gBAAApC,EAACyB,GAAA,EAAmB,SAASc,EAAS,cAAc,GACtD;AAAA,QAIDA,EAAS,SAAS,SAAS,uBACzBjC,EAAO,KAAP,EAAW,UAAU8B,GACpB,UAAA,gBAAApC,EAACE,GAAA,EAAgB,UAAUqC,EAAS,UAAU,GAChD;AAAA,QAIDA,EAAS,gBAAgB,SAAS,uBAChCjC,EAAO,KAAP,EAAW,UAAU8B,GACpB,UAAA,gBAAApC,EAAC2B,GAAA,EAAsB,YAAYY,EAAS,iBAAiB,GAC/D;AAAA,QAIDA,EAAS,kBACR,gBAAAvC,EAACM,EAAO,KAAP,EAAW,UAAU8B,GACpB,UAAA,gBAAApC,EAACa,GAAA,EAAqB,MAAM0B,EAAS,gBAAgB,GACvD;AAAA,QAIDA,EAAS,iBAAiB,SAAS,uBACjCjC,EAAO,KAAP,EAAW,UAAU8B,GACpB,UAAA,gBAAApC,EAAC8B,IAAA,EAAuB,OAAOS,EAAS,kBAAkB,GAC5D;AAAA,QAIDC,KACC,gBAAAxC,EAACM,EAAO,KAAP,EAAW,UAAU8B,GACpB,UAAA,gBAAApC,EAACW,GAAA,EAAoB,QAAQ6B,EAAA,CAAc,EAAA,CAC7C;AAAA,QAIF,gBAAAxC,EAACM,EAAO,KAAP,EAAW,UAAU8B,GACpB,UAAA,gBAAApC;AAAA,UAACiB;AAAA,UAAA;AAAA,YACC,gBAAgBsB,EAAS;AAAA,YACzB,kBAAkBA,EAAS;AAAA,UAAA;AAAA,QAAA,GAE/B;AAAA,QAGCE,uBACEnC,EAAO,KAAP,EAAW,UAAU8B,GACpB,UAAA,gBAAApC,EAACO,GAAA,CAAA,CAAoB,EAAA,CACvB;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR;AClHO,SAASmC,GAAkB;AAAA,EAChC,SAAAC;AAAA,EACA,SAAAC;AACF,GAA2B;AACzB,QAAM,EAAE,GAAA/C,GAAG,MAAAW,EAAA,IAASV,EAAA,GACdW,IAAOD,EAAK;AAElB,SACE,gBAAAP,EAAC,OAAA,EAAI,WAAU,qBACb,UAAA;AAAA,IAAA,gBAAAD,EAAC,MAAA,EAAG,WAAU,uCACX,UAAAH,EAAE,+BAA+B,GACpC;AAAA,IAGA,gBAAAI,EAAC,OAAA,EAAI,WAAU,8CACb,UAAA;AAAA,MAAA,gBAAAD,EAAC,SAAI,WAAU,oBACb,UAAA,gBAAAC,EAAC,OAAA,EAAI,WAAU,sCACb,UAAA;AAAA,QAAA,gBAAAD,EAAC,MAAA,EAAG,WAAU,iCACX,UAAA2C,EAAQ,oBACX;AAAA,0BACC,KAAA,EAAE,WAAU,WACV,UAAA9C,EAAE,qCAAqC,EAAA,CAC1C;AAAA,MAAA,EAAA,CACF,EAAA,CACF;AAAA,wBACC,OAAA,EAAI,WAAU,sBACb,UAAA,gBAAAI,EAAC,OAAA,EAAI,WAAU,sCACb,UAAA;AAAA,QAAA,gBAAAD,EAAC,MAAA,EAAG,WAAU,mCACX,UAAA2C,EAAQ,gBACX;AAAA,0BACC,KAAA,EAAE,WAAU,WAAW,UAAA9C,EAAE,kCAAkC,EAAA,CAAE;AAAA,MAAA,EAAA,CAChE,EAAA,CACF;AAAA,wBACC,OAAA,EAAI,WAAU,sBACb,UAAA,gBAAAI,EAAC,OAAA,EAAI,WAAU,sCACb,UAAA;AAAA,QAAA,gBAAAD,EAAC,MAAA,EAAG,WAAU,mCACX,UAAA2C,EAAQ,uBACX;AAAA,0BACC,KAAA,EAAE,WAAU,WACV,UAAA9C,EAAE,wCAAwC,EAAA,CAC7C;AAAA,MAAA,EAAA,CACF,EAAA,CACF;AAAA,IAAA,GACF;AAAA,sBAGC,OAAA,EAAI,WAAU,8BACb,UAAA,gBAAAI,EAAC,OAAA,EAAI,WAAU,sCACb,UAAA;AAAA,MAAA,gBAAAD,EAAC,MAAA,EAAG,WAAU,uBACX,UAAAH,EAAE,wCAAwC,GAC7C;AAAA,wBACC,KAAA,EAAE,WAAU,6BACV,UAAAA,EAAE,uCAAuC,GAC5C;AAAA,MACA,gBAAAG;AAAA,QAACU;AAAA,QAAA;AAAA,UACC,MAAM,IAAID,CAAI,sBAAsB,mBAAmB,IAAIA,CAAI,wBAAwBmC,CAAO,EAAE,CAAC;AAAA,UACjG,WAAU;AAAA,UAET,YAAE,OAAO;AAAA,QAAA;AAAA,MAAA;AAAA,IACZ,EAAA,CACF,EAAA,CACF;AAAA,EAAA,GACF;AAEJ;ACxEA,MAAMC,IAAmBC,EAAE,OAAO;AAAA,EAChC,UAAUA,EAAE,KAAK,CAAC,WAAW,UAAU,YAAY,SAAS,SAAS,CAAC;AAAA,EACtE,UAAUA,EAAE,KAAK,CAAC,QAAQ,UAAU,KAAK,CAAC;AAAA,EAC1C,OAAOA,EAAE,OAAA;AAAA,EACT,aAAaA,EAAE,OAAA;AAAA,EACf,YAAYA,EAAE,OAAA;AAChB,CAAC,GAEKC,KAAsBD,EACzB,OAAO;AAAA,EACN,oBAAoBA,EAAE,OAAA,EAAS,QAAA;AAAA,EAC/B,eAAeA,EAAE,OAAA,EAAS,QAAA;AAAA,EAC1B,UAAUA,EAAE,OAAA,EAAS,QAAA;AAAA,EACrB,kBAAkBA,EAAE,OAAA;AAAA,EACpB,UAAUA,EAAE,MAAMA,EAAE,QAAQ;AAC9B,CAAC,EACA,QAAA,GAEGE,KAA4BF,EAAE,OAAO;AAAA,EACzC,aAAaA,EAAE,OAAA,EAAS,QAAA;AAAA,EACxB,oBAAoBA,EAAE,OAAA,EAAS,QAAA;AAAA,EAC/B,cAAcA,EAAE,MAAMD,CAAgB;AAAA,EACtC,UAAUC,EAAE,MAAMD,CAAgB;AAAA,EAClC,iBAAiBC,EAAE,MAAMD,CAAgB;AAAA,EACzC,gBAAgBE;AAAA,EAChB,kBAAkBD,EAAE,MAAMA,EAAE,QAAQ;AAAA,EACpC,YAAYA,EAAE,OAAA;AAAA,EACd,gBAAgBA,EAAE,OAAA;AAAA,EAClB,mBAAmBA,EAAE,OAAA;AACvB,CAAC,GAEKG,KAAqBH,EAAE,OAAO;AAAA,EAClC,oBAAoBA,EAAE,OAAA;AAAA,EACtB,gBAAgBA,EAAE,OAAA;AAAA,EAClB,uBAAuBA,EAAE,OAAA;AAC3B,CAAC,GAEKI,KAAiCJ,EAAE,OAAO;AAAA,EAC9C,IAAIA,EAAE,OAAA;AAAA,EACN,SAASA,EAAE,OAAA,EAAS,QAAA;AAAA,EACpB,YAAYA,EAAE,OAAA;AAAA,EACd,cAAcE;AAAA,EACd,YAAYF,EAAE,OAAA;AAAA,EACd,eAAeA,EAAE,OAAA,EAAS,QAAA;AAAA,EAC1B,iBAAiBA,EAAE,QAAA;AAAA,EACnB,oBAAoBA,EAAE,OAAA,EAAS,QAAA;AAAA,EAC/B,oBAAoBA,EAAE,OAAA,EAAS,QAAA;AAAA,EAC/B,YAAYA,EAAE,OAAA;AAAA,EACd,YAAYA,EAAE,OAAA;AAChB,CAAC,GAwBKK,KAA2CL,EAAE,MAAM;AAAA,EACvDI;AAAA,EACAJ,EAAE,OAAO;AAAA,IACP,IAAIA,EAAE,OAAA;AAAA,IACN,eAAeG;AAAA,IACf,iBAAiBH,EAAE,QAAQ,EAAI;AAAA,EAAA,CAChC;AACH,CAAC;AAEM,MAAMM,WAA8BC,EAAuD;AAAA,EAA3F,cAAA;AAAA,UAAA,GAAA,SAAA,GACL,KAAS,WAAW;AAAA,EAAA;AAAA,EAEV,gBAAgB;AACxB,WAAOF;AAAA,EACT;AACF;AChFO,MAAMG,KAAwB;AAAA,EACnC,MAAM;AAAA;AAAA,EACN,QAAQ;AAAA;AAAA;AAEV;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12]}
@@ -1,5 +1,5 @@
1
- import { BaseCrudRepository } from "@aioia/core";
2
- import { z } from "zod";
1
+ import { BaseCrudRepository } from '@aioia/core';
2
+ import { z } from 'zod';
3
3
  declare const tradeSafetyCheckResponseSchema: z.ZodObject<{
4
4
  id: z.ZodString;
5
5
  user_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
@@ -2,5 +2,5 @@
2
2
  * Trade Safety Repositories
3
3
  * Repository pattern for API data access
4
4
  */
5
- export { TradeSafetyRepository } from "./TradeSafetyRepository";
5
+ export { TradeSafetyRepository } from './TradeSafetyRepository';
6
6
  //# sourceMappingURL=index.d.ts.map
package/package.json CHANGED
@@ -1,9 +1,17 @@
1
1
  {
2
2
  "name": "trade-safety",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "React components for Trade Safety - K-pop merchandise trade safety analysis",
5
5
  "main": "dist/index.js",
6
+ "module": "dist/index.mjs",
6
7
  "types": "dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.mjs",
12
+ "require": "./dist/index.js"
13
+ }
14
+ },
7
15
  "files": [
8
16
  "dist"
9
17
  ],
@@ -11,8 +19,8 @@
11
19
  "dev": "next dev",
12
20
  "build": "next build",
13
21
  "start": "next start",
14
- "build:lib": "tsc --project tsconfig.lib.json",
15
- "dev:lib": "tsc --project tsconfig.lib.json --watch",
22
+ "build:lib": "vite build",
23
+ "dev:lib": "vite build --watch",
16
24
  "clean": "rm -rf dist .next",
17
25
  "type-check": "tsc --noEmit",
18
26
  "lint": "next lint",
@@ -38,8 +46,11 @@
38
46
  "url": "https://github.com/algorima/trade-safety.git",
39
47
  "directory": "frontend"
40
48
  },
49
+ "engines": {
50
+ "node": "^20.19.0 || >=22.12.0"
51
+ },
41
52
  "peerDependencies": {
42
- "@aioia/core": "^0.2.1",
53
+ "@aioia/core": "^0.2.2",
43
54
  "next": "^13.0.0 || ^14.0.0",
44
55
  "react": "^18.0.0",
45
56
  "react-dom": "^18.0.0"
@@ -65,6 +76,7 @@
65
76
  "@types/react-dom": "^18",
66
77
  "@typescript-eslint/eslint-plugin": "^6.21.0",
67
78
  "@typescript-eslint/parser": "^6.21.0",
79
+ "@vitejs/plugin-react": "^5.1.1",
68
80
  "autoprefixer": "^10",
69
81
  "daisyui": "^4.10.5",
70
82
  "eslint": "^8",
@@ -76,9 +88,11 @@
76
88
  "postcss": "^8",
77
89
  "prettier": "^3",
78
90
  "prettier-plugin-tailwindcss": "^0.5.14",
79
- "tailwindcss": "^3",
80
91
  "semantic-release": "^24.0.0",
92
+ "tailwindcss": "^3",
81
93
  "ts-jest": "^29",
82
- "typescript": "^5"
94
+ "typescript": "^5",
95
+ "vite": "^7.2.4",
96
+ "vite-plugin-dts": "^4.5.4"
83
97
  }
84
98
  }
@@ -1,14 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,12 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,11 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,15 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,10 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,30 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,14 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,14 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,13 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,12 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,33 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/DetailedResult/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,MAAM,EAAY,MAAM,eAAe,CAAC;AAIjD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAS1D,IAAM,QAAQ,GAAa;IACzB,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE;IAC9B,OAAO,EAAE;QACP,CAAC,EAAE,CAAC;QACJ,OAAO,EAAE,CAAC;QACV,UAAU,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE;KAC9B;CACF,CAAC;AAEF,IAAM,gBAAgB,GAAa;IACjC,OAAO,EAAE;QACP,UAAU,EAAE;YACV,eAAe,EAAE,IAAI;SACtB;KACF;CACF,CAAC;AAEF,MAAM,UAAU,cAAc,CAAC,EAIT;QAHpB,QAAQ,cAAA,EACR,YAAY,kBAAA,EACZ,wBAAwB,EAAxB,gBAAgB,mBAAG,KAAK,KAAA;IAExB,OAAO,CACL,MAAC,MAAM,CAAC,GAAG,IACT,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,EAAC,SAAS,EACjB,OAAO,EAAC,SAAS,EACjB,SAAS,EAAC,8BAA8B,aAGxC,KAAC,MAAM,CAAC,GAAG,IAAC,QAAQ,EAAE,QAAQ,YAC5B,KAAC,aAAa,IAAC,KAAK,EAAE,QAAQ,CAAC,UAAU,GAAI,GAClC,EAGZ,CAAC,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CACxD,KAAC,MAAM,CAAC,GAAG,IAAC,QAAQ,EAAE,QAAQ,YAC5B,KAAC,kBAAkB,IACjB,WAAW,EAAE,QAAQ,CAAC,WAAW,EACjC,MAAM,EAAE,QAAQ,CAAC,kBAAkB,GACnC,GACS,CACd,EAGA,QAAQ,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,CACnC,KAAC,MAAM,CAAC,GAAG,IAAC,QAAQ,EAAE,QAAQ,YAC5B,KAAC,kBAAkB,IAAC,OAAO,EAAE,QAAQ,CAAC,YAAY,GAAI,GAC3C,CACd,EAGA,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAC/B,KAAC,MAAM,CAAC,GAAG,IAAC,QAAQ,EAAE,QAAQ,YAC5B,KAAC,eAAe,IAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,GAAI,GACrC,CACd,EAGA,QAAQ,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,CACtC,KAAC,MAAM,CAAC,GAAG,IAAC,QAAQ,EAAE,QAAQ,YAC5B,KAAC,qBAAqB,IAAC,UAAU,EAAE,QAAQ,CAAC,eAAe,GAAI,GACpD,CACd,EAGA,QAAQ,CAAC,cAAc,IAAI,CAC1B,KAAC,MAAM,CAAC,GAAG,IAAC,QAAQ,EAAE,QAAQ,YAC5B,KAAC,oBAAoB,IAAC,IAAI,EAAE,QAAQ,CAAC,cAAc,GAAI,GAC5C,CACd,EAGA,QAAQ,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,CACvC,KAAC,MAAM,CAAC,GAAG,IAAC,QAAQ,EAAE,QAAQ,YAC5B,KAAC,sBAAsB,IAAC,KAAK,EAAE,QAAQ,CAAC,gBAAgB,GAAI,GACjD,CACd,EAGA,YAAY,IAAI,CACf,KAAC,MAAM,CAAC,GAAG,IAAC,QAAQ,EAAE,QAAQ,YAC5B,KAAC,mBAAmB,IAAC,MAAM,EAAE,YAAY,GAAI,GAClC,CACd,EAGD,KAAC,MAAM,CAAC,GAAG,IAAC,QAAQ,EAAE,QAAQ,YAC5B,KAAC,qBAAqB,IACpB,cAAc,EAAE,QAAQ,CAAC,cAAc,EACvC,gBAAgB,EAAE,QAAQ,CAAC,iBAAiB,GAC5C,GACS,EAGZ,gBAAgB,IAAI,CACnB,KAAC,MAAM,CAAC,GAAG,IAAC,QAAQ,EAAE,QAAQ,YAC5B,KAAC,mBAAmB,KAAG,GACZ,CACd,IACU,CACd,CAAC;AACJ,CAAC"}
@@ -1,11 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,26 +0,0 @@
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
@@ -1 +0,0 @@
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"}