trade-safety 1.1.1 β 1.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/components/RiskSignalCard.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +42 -36
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -22,7 +22,7 @@ npm install trade-safety @aioia/core
|
|
|
22
22
|
```tsx
|
|
23
23
|
import { DetailedResult } from "trade-safety";
|
|
24
24
|
|
|
25
|
-
<DetailedResult analysis={analysis} expertAdvice={expertAdvice}
|
|
25
|
+
<DetailedResult analysis={analysis} expertAdvice={expertAdvice} />;
|
|
26
26
|
```
|
|
27
27
|
|
|
28
28
|
### Repository
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RiskSignalCard.d.ts","sourceRoot":"","sources":["../../src/components/RiskSignalCard.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,UAAU,mBAAmB;IAC3B,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;CAC3C;AAoBD,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,OAAiB,GAClB,EAAE,mBAAmB,+
|
|
1
|
+
{"version":3,"file":"RiskSignalCard.d.ts","sourceRoot":"","sources":["../../src/components/RiskSignalCard.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,UAAU,mBAAmB;IAC3B,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;CAC3C;AAoBD,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,OAAiB,GAClB,EAAE,mBAAmB,+BA4BrB"}
|
package/dist/index.d.ts
CHANGED
|
@@ -9,5 +9,5 @@ export { RiskSignalCard } from './components/RiskSignalCard';
|
|
|
9
9
|
export { TradeSafetyRepository } from './repositories';
|
|
10
10
|
export type { TradeSafetyCheckRepositoryResponse, TradeSafetyCheckFullResponse, QuickCheckRepositoryResponse, } from './repositories/TradeSafetyRepository';
|
|
11
11
|
export * from './types';
|
|
12
|
-
export { TRADE_SAFETY_NS, tradeSafetyTranslations
|
|
12
|
+
export { TRADE_SAFETY_NS, tradeSafetyTranslations } from './i18n/translations';
|
|
13
13
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAG7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,YAAY,EACV,kCAAkC,EAClC,4BAA4B,EAC5B,4BAA4B,GAC7B,MAAM,sCAAsC,CAAC;AAG9C,cAAc,SAAS,CAAC;AAIxB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAG7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,YAAY,EACV,kCAAkC,EAClC,4BAA4B,EAC5B,4BAA4B,GAC7B,MAAM,sCAAsC,CAAC;AAG9C,cAAc,SAAS,CAAC;AAIxB,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),i=require("framer-motion"),o=require("react-i18next");require("i18next");require("i18next-resources-to-backend");const c=require("./locale.js"),b=require("react"),f=require("next/link"),j=require("@aioia/core"),l=require("zod");function w(t){const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const r in t)if(r!=="default"){const a=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(s,r,a.get?a:{enumerable:!0,get:()=>t[r]})}}return s.default=t,Object.freeze(s)}const n=w(b);function N({title:t,titleId:s,...r},a){return n.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon",ref:a,"aria-labelledby":s},r),t?n.createElement("title",{id:s},t):null,n.createElement("path",{fillRule:"evenodd",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",clipRule:"evenodd"}))}const y=n.forwardRef(N);function R({title:t,titleId:s,...r},a){return n.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon",ref:a,"aria-labelledby":s},r),t?n.createElement("title",{id:s},t):null,n.createElement("path",{fillRule:"evenodd",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",clipRule:"evenodd"}))}const _=n.forwardRef(R);function S({title:t,titleId:s,...r},a){return n.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon",ref:a,"aria-labelledby":s},r),t?n.createElement("title",{id:s},t):null,n.createElement("path",{fillRule:"evenodd",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",clipRule:"evenodd"}))}const E=n.forwardRef(S);function z({title:t,titleId:s,...r},a){return n.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon",ref:a,"aria-labelledby":s},r),t?n.createElement("title",{id:s},t):null,n.createElement("path",{fillRule:"evenodd",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",clipRule:"evenodd"}),n.createElement("path",{fillRule:"evenodd",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",clipRule:"evenodd"}))}const T=n.forwardRef(z);function A({title:t,titleId:s,...r},a){return n.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon",ref:a,"aria-labelledby":s},r),t?n.createElement("title",{id:s},t):null,n.createElement("path",{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.createElement("path",{fillRule:"evenodd",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",clipRule:"evenodd"}))}const k=n.forwardRef(A);function C({title:t,titleId:s,...r},a){return n.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon",ref:a,"aria-labelledby":s},r),t?n.createElement("title",{id:s},t):null,n.createElement("path",{fillRule:"evenodd",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",clipRule:"evenodd"}))}const Z=n.forwardRef(C);function M({title:t,titleId:s,...r},a){return n.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon",ref:a,"aria-labelledby":s},r),t?n.createElement("title",{id:s},t):null,n.createElement("path",{fillRule:"evenodd",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",clipRule:"evenodd"}))}const u=n.forwardRef(M);function F({title:t,titleId:s,...r},a){return n.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon",ref:a,"aria-labelledby":s},r),t?n.createElement("title",{id:s},t):null,n.createElement("path",{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"}))}const D=n.forwardRef(F);function O({title:t,titleId:s,...r},a){return n.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon",ref:a,"aria-labelledby":s},r),t?n.createElement("title",{id:s},t):null,n.createElement("path",{fillRule:"evenodd",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",clipRule:"evenodd"}))}const $=n.forwardRef(O);function B({title:t,titleId:s,...r},a){return n.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon",ref:a,"aria-labelledby":s},r),t?n.createElement("title",{id:s},t):null,n.createElement("path",{fillRule:"evenodd",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",clipRule:"evenodd"}))}const I=n.forwardRef(B);function q({title:t,titleId:s,...r},a){return n.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon",ref:a,"aria-labelledby":s},r),t?n.createElement("title",{id:s},t):null,n.createElement("path",{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.createElement("path",{fillRule:"evenodd",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",clipRule:"evenodd"}))}const Y=n.forwardRef(q);function H({title:t,titleId:s,...r},a){return n.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon",ref:a,"aria-labelledby":s},r),t?n.createElement("title",{id:s},t):null,n.createElement("path",{fillRule:"evenodd",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",clipRule:"evenodd"}))}const p=n.forwardRef(H);function L({title:t,titleId:s,...r},a){return n.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon",ref:a,"aria-labelledby":s},r),t?n.createElement("title",{id:s},t):null,n.createElement("path",{fillRule:"evenodd",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",clipRule:"evenodd"}))}const V=n.forwardRef(L);function v(t){var s,r,a="";if(typeof t=="string"||typeof t=="number")a+=t;else if(typeof t=="object")if(Array.isArray(t)){var d=t.length;for(s=0;s<d;s++)t[s]&&(r=v(t[s]))&&(a&&(a+=" "),a+=r)}else for(r in t)t[r]&&(a&&(a+=" "),a+=r);return a}function x(){for(var t,s,r=0,a="",d=arguments.length;r<d;r++)(t=arguments[r])&&(s=v(t))&&(a&&(a+=" "),a+=s);return a}const P={error:"bg-error/10 border-error/30",warning:"bg-warning/10 border-warning/30",success:"bg-success/10 border-success/30"},U={error:"text-error",warning:"text-warning",success:"text-success"},K={high:Z,medium:u,low:$};function h({signal:t,variant:s="error"}){const{t:r}=o.useTranslation(c.TRADE_SAFETY_NS),a=K[t.severity];return e.jsx("div",{className:x("card border-2 backdrop-blur-sm",P[s]),children:e.jsx("div",{className:"card-body",children:e.jsxs("div",{className:"flex items-start gap-4",children:[e.jsx(a,{className:x("mt-1 size-8 shrink-0",U[s])}),e.jsxs("div",{className:"flex-1",children:[e.jsx("h4",{className:"card-title text-xl",children:t.title}),e.jsx("p",{className:"mt-2 text-neutral-content",children:t.description}),e.jsxs("div",{className:"mt-4 rounded-lg bg-base-100/50 p-4",children:[e.jsxs("p",{className:"mb-2 text-sm font-semibold",children:["π‘ ",r("result.whatToDo")]}),e.jsx("p",{className:"text-sm",children:t.what_to_do})]})]})]})})})}function Q({cautions:t}){const{t:s}=o.useTranslation(c.TRADE_SAFETY_NS);return t.length===0?null:e.jsxs("section",{children:[e.jsxs("h3",{className:"mb-6 flex items-center gap-3 text-3xl font-bold",children:[e.jsx(u,{className:"size-10 text-warning"}),s("result.cautions")]}),e.jsx("div",{className:"space-y-4",children:t.map((r,a)=>e.jsx(i.motion.div,{initial:{x:-50,opacity:0},animate:{x:0,opacity:1},transition:{delay:a*.1},whileHover:{scale:1.02,x:10},children:e.jsx(h,{signal:r,variant:"warning"})},a))})]})}function W(){const{t,i18n:s}=o.useTranslation(c.TRADE_SAFETY_NS),r=s.language;return e.jsx("section",{className:"hero min-h-[30vh] rounded-3xl bg-primary text-primary-content",children:e.jsx("div",{className:"hero-content text-center",children:e.jsxs("div",{children:[e.jsx(y,{className:"mx-auto mb-6 size-20"}),e.jsx("h3",{className:"mb-4 text-4xl font-bold",children:t("result.companionCta.title")}),e.jsx("p",{className:"mb-8 max-w-2xl text-xl",children:t("result.companionCta.description")}),e.jsx(f,{href:`/${r}/companions`,children:e.jsx(i.motion.button,{whileHover:{scale:1.1},whileTap:{scale:.95},className:"btn btn-lg bg-base-100 text-primary hover:bg-base-200",children:t("result.companionCta.button")})})]})})})}function G({advice:t}){const{t:s}=o.useTranslation(c.TRADE_SAFETY_NS);return e.jsx(i.motion.section,{whileHover:{scale:1.02},className:"card bg-secondary text-secondary-content shadow-xl",children:e.jsxs("div",{className:"card-body",children:[e.jsxs("div",{className:"mb-6 flex items-center gap-4",children:[e.jsx("div",{className:"avatar placeholder",children:e.jsx("div",{className:"w-16 rounded-full bg-primary text-primary-content",children:e.jsx(V,{className:"size-8"})})}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-2xl font-bold",children:s("result.expertAdvice")}),e.jsx("p",{className:"opacity-80",children:s("result.expertName")})]})]}),e.jsx("div",{className:"prose max-w-none",children:e.jsx("p",{className:"whitespace-pre-wrap text-lg",children:t})})]})})}function J({data:t}){const{t:s,i18n:r}=o.useTranslation(c.TRADE_SAFETY_NS);return t?e.jsxs("section",{children:[e.jsxs("h3",{className:"mb-6 flex items-center gap-3 text-3xl font-bold",children:[e.jsx(k,{className:"size-10 text-secondary"}),s("result.priceAnalysis")]}),e.jsx("div",{className:"card bg-base-200 shadow-xl",children:e.jsxs("div",{className:"card-body",children:[e.jsxs("div",{className:"grid grid-cols-1 gap-6 md:grid-cols-2",children:[t.market_price_range&&e.jsxs("div",{children:[e.jsx("h4",{className:"mb-2 text-lg font-semibold",children:s("result.marketPrice")}),e.jsx("p",{className:"text-2xl font-bold",children:t.market_price_range})]}),t.offered_price&&e.jsxs("div",{children:[e.jsx("h4",{className:"mb-2 text-lg font-semibold",children:s("result.offeredPrice")}),e.jsx("p",{className:"text-2xl font-bold text-primary",children:new Intl.NumberFormat(r.language,{style:"currency",currency:t.currency||"USD"}).format(t.offered_price)})]})]}),e.jsxs("div",{className:"mt-6 rounded-lg bg-base-100 p-4",children:[e.jsx("h4",{className:"mb-2 text-lg font-semibold",children:s("result.priceAssessment")}),e.jsx("p",{className:"text-neutral-content",children:t.price_assessment})]}),t.warnings.length>0&&e.jsxs("div",{className:"mt-4",children:[e.jsxs("h4",{className:"mb-2 flex items-center gap-2 text-lg font-semibold text-warning",children:[e.jsx(u,{className:"size-6"}),s("result.priceWarnings")]}),e.jsx("ul",{className:"list-inside list-disc space-y-1",children:t.warnings.map((a,d)=>e.jsx("li",{className:"text-neutral-content",children:a},d))})]})]})})]}):null}function X({recommendation:t,emotionalSupport:s}){const{t:r}=o.useTranslation(c.TRADE_SAFETY_NS);return e.jsxs("section",{children:[e.jsxs("h3",{className:"mb-6 flex items-center gap-3 text-3xl font-bold",children:[e.jsx(Y,{className:"size-10 text-warning"}),r("result.recommendation")]}),e.jsx("div",{className:"card bg-base-200 shadow-xl",children:e.jsxs("div",{className:"card-body",children:[e.jsx("div",{className:"prose max-w-none",children:e.jsx("p",{className:"whitespace-pre-wrap text-lg text-neutral-content",children:t})}),e.jsx("div",{className:"divider"}),e.jsx("div",{className:"rounded-lg bg-base-100 p-4",children:e.jsxs("p",{className:"flex items-center gap-2 text-lg font-medium",children:[e.jsx(D,{className:"size-6 text-info"})," ",s]})})]})})]})}function ee(t){return t>=70?{level:"high",color:"error",Icon:p}:t>=40?{level:"medium",color:"warning",Icon:u}:{level:"low",color:"success",Icon:_}}function te({score:t}){const{t:s}=o.useTranslation(c.TRADE_SAFETY_NS),r=ee(t),{Icon:a}=r,d={error:"text-error",warning:"text-warning",success:"text-success"};return e.jsx("div",{className:"hero min-h-[40vh] rounded-3xl bg-base-200",children:e.jsx("div",{className:"hero-content text-center",children:e.jsxs("div",{children:[e.jsx("div",{className:"mb-4",children:e.jsx(a,{className:x("size-32",d[r.color])})}),e.jsx("h2",{className:"mb-4 text-5xl font-bold",children:s(`result.riskLevel.${r.level}.title`)}),e.jsx("div",{className:"mx-auto w-64",children:e.jsx("div",{className:x("radial-progress",d[r.color]),style:{"--value":t,"--size":"12rem","--thickness":"1rem"},role:"progressbar",children:e.jsx("span",{className:"text-5xl font-bold",children:t})})}),e.jsx("p",{className:"mt-6 max-w-lg text-xl text-neutral-content",children:s(`result.riskLevel.${r.level}.message`)})]})})})}function se({signals:t}){const{t:s}=o.useTranslation(c.TRADE_SAFETY_NS);return t.length===0?null:e.jsxs("section",{children:[e.jsxs("h3",{className:"mb-6 flex items-center gap-3 text-3xl font-bold",children:[e.jsx(p,{className:"size-10 text-error"}),s("result.riskSignals")]}),e.jsx("div",{className:"space-y-4",children:t.map((r,a)=>e.jsx(i.motion.div,{initial:{x:-50,opacity:0},animate:{x:0,opacity:1},transition:{delay:a*.1},whileHover:{scale:1.02,x:10},children:e.jsx(h,{signal:r,variant:"error"})},a))})]})}function re({indicators:t}){const{t:s}=o.useTranslation(c.TRADE_SAFETY_NS);return t.length===0?null:e.jsxs("section",{children:[e.jsxs("h3",{className:"mb-6 flex items-center gap-3 text-3xl font-bold",children:[e.jsx(E,{className:"size-10 text-success"}),s("result.safeIndicators")]}),e.jsx("div",{className:"space-y-4",children:t.map((r,a)=>e.jsx(i.motion.div,{initial:{x:-50,opacity:0},animate:{x:0,opacity:1},transition:{delay:a*.1},whileHover:{scale:1.02,x:10},children:e.jsx(h,{signal:r,variant:"success"})},a))})]})}function ae({items:t}){const{t:s}=o.useTranslation(c.TRADE_SAFETY_NS);return t.length===0?null:e.jsxs("section",{children:[e.jsxs("h3",{className:"mb-6 flex items-center gap-3 text-3xl font-bold",children:[e.jsx(T,{className:"size-10 text-primary"}),s("result.safetyChecklist")]}),e.jsx("div",{className:"card border-2 border-primary/30 bg-base-200",children:e.jsxs("div",{className:"card-body",children:[e.jsx("p",{className:"mb-6 text-lg text-neutral-content",children:s("result.checklistDescription")}),e.jsx("div",{className:"space-y-3",children:t.map((r,a)=>e.jsxs(i.motion.label,{initial:{x:-20,opacity:0},animate:{x:0,opacity:1},transition:{delay:a*.08},className:"flex cursor-pointer items-start gap-3 rounded-lg p-3 hover:bg-base-100/30",children:[e.jsx("input",{type:"checkbox",className:"checkbox-primary checkbox mt-1"}),e.jsx("span",{className:"text-lg",children:r})]},a))})]})})]})}function ne({translation:t,nuance:s}){const{t:r}=o.useTranslation(c.TRADE_SAFETY_NS);return!t&&!s?null:e.jsxs("section",{children:[e.jsxs("h3",{className:"mb-6 flex items-center gap-3 text-3xl font-bold",children:[e.jsx(I,{className:"size-10 text-primary"}),r("result.translation")]}),e.jsx("div",{className:"card bg-base-200 shadow-xl",children:e.jsxs("div",{className:"card-body",children:[t&&e.jsxs("div",{className:"mb-4",children:[e.jsx("h4",{className:"mb-2 text-lg font-semibold",children:r("result.translationTitle")}),e.jsx("p",{className:"whitespace-pre-wrap text-neutral-content",children:t})]}),s&&e.jsxs("div",{children:[e.jsx("h4",{className:"mb-2 text-lg font-semibold",children:r("result.nuanceTitle")}),e.jsx("p",{className:"whitespace-pre-wrap text-neutral-content",children:s})]})]})})]})}const m={initial:{y:40,opacity:0},animate:{y:0,opacity:1,transition:{duration:.6}}},le={animate:{transition:{staggerChildren:.15}}};function ie({analysis:t,expertAdvice:s,showCompanionCta:r=!1}){return e.jsxs(i.motion.div,{variants:le,initial:"initial",animate:"animate",className:"mx-auto max-w-5xl space-y-12",children:[e.jsx(i.motion.div,{variants:m,children:e.jsx(te,{score:t.risk_score})}),(t.translation||t.nuance_explanation)&&e.jsx(i.motion.div,{variants:m,children:e.jsx(ne,{translation:t.translation,nuance:t.nuance_explanation})}),t.risk_signals.length>0&&e.jsx(i.motion.div,{variants:m,children:e.jsx(se,{signals:t.risk_signals})}),t.cautions.length>0&&e.jsx(i.motion.div,{variants:m,children:e.jsx(Q,{cautions:t.cautions})}),t.safe_indicators.length>0&&e.jsx(i.motion.div,{variants:m,children:e.jsx(re,{indicators:t.safe_indicators})}),t.price_analysis&&e.jsx(i.motion.div,{variants:m,children:e.jsx(J,{data:t.price_analysis})}),t.safety_checklist.length>0&&e.jsx(i.motion.div,{variants:m,children:e.jsx(ae,{items:t.safety_checklist})}),s&&e.jsx(i.motion.div,{variants:m,children:e.jsx(G,{advice:s})}),e.jsx(i.motion.div,{variants:m,children:e.jsx(X,{recommendation:t.recommendation,emotionalSupport:t.emotional_support})}),r&&e.jsx(i.motion.div,{variants:m,children:e.jsx(W,{})})]})}function ce({summary:t,checkId:s}){const{t:r,i18n:a}=o.useTranslation(c.TRADE_SAFETY_NS),d=a.language;return e.jsxs("div",{className:"mx-auto max-w-2xl",children:[e.jsx("h1",{className:"mb-8 text-center text-3xl font-bold",children:r("result.title")}),e.jsxs("div",{className:"mb-8 grid grid-cols-1 gap-4 md:grid-cols-3",children:[e.jsx("div",{className:"card bg-error/10",children:e.jsxs("div",{className:"card-body items-center text-center",children:[e.jsx("h3",{className:"text-4xl font-bold text-error",children:t.risk_signals_count}),e.jsx("p",{className:"text-sm",children:r("result.riskSignals")})]})}),e.jsx("div",{className:"card bg-warning/10",children:e.jsxs("div",{className:"card-body items-center text-center",children:[e.jsx("h3",{className:"text-4xl font-bold text-warning",children:t.cautions_count}),e.jsx("p",{className:"text-sm",children:r("result.cautions")})]})}),e.jsx("div",{className:"card bg-success/10",children:e.jsxs("div",{className:"card-body items-center text-center",children:[e.jsx("h3",{className:"text-4xl font-bold text-success",children:t.safe_indicators_count}),e.jsx("p",{className:"text-sm",children:r("result.safeIndicators")})]})})]}),e.jsx("div",{className:"card bg-base-200 shadow-xl",children:e.jsxs("div",{className:"card-body items-center text-center",children:[e.jsx("h2",{className:"card-title text-2xl",children:r("result.signupRequired")}),e.jsx("p",{className:"mb-4 text-neutral-content",children:r("result.signupMessage")}),e.jsx(f,{href:`/${d}/login?callbackUrl=${encodeURIComponent(`/${d}/trade-safety/result/${s}`)}`,className:"btn btn-primary",children:r("login")})]})})]})}const g=l.z.object({category:l.z.enum(["payment","seller","platform","price","content"]),severity:l.z.enum(["high","medium","low"]),title:l.z.string(),description:l.z.string(),what_to_do:l.z.string()}),oe=l.z.object({market_price_range:l.z.string().nullish(),offered_price:l.z.number().nullish(),currency:l.z.string().nullish(),price_assessment:l.z.string(),warnings:l.z.array(l.z.string())}),de=l.z.object({translation:l.z.string().nullish(),nuance_explanation:l.z.string().nullish(),risk_signals:l.z.array(g),cautions:l.z.array(g),safe_indicators:l.z.array(g),price_analysis:oe,safety_checklist:l.z.array(l.z.string()),risk_score:l.z.number(),recommendation:l.z.string(),emotional_support:l.z.string()}),me=l.z.object({risk_signals_count:l.z.number(),cautions_count:l.z.number(),safe_indicators_count:l.z.number()}),xe=l.z.object({id:l.z.string(),user_id:l.z.string().nullish(),input_text:l.z.string(),llm_analysis:de,risk_score:l.z.number(),expert_advice:l.z.string().nullish(),expert_reviewed:l.z.boolean(),expert_reviewed_at:l.z.string().nullish(),expert_reviewed_by:l.z.string().nullish(),created_at:l.z.string(),updated_at:l.z.string()}),ue=l.z.union([xe,l.z.object({id:l.z.string(),quick_summary:me,signup_required:l.z.literal(!0)})]);class he extends j.BaseCrudRepository{constructor(){super(...arguments),this.resource="trade-safety"}getDataSchema(){return ue}}const ge={high:70,medium:40};exports.TRADE_SAFETY_NS=c.TRADE_SAFETY_NS;exports.tradeSafetyTranslations=c.tradeSafetyTranslations;exports.DetailedResult=ie;exports.QuickResultTeaser=ce;exports.RISK_SCORE_THRESHOLDS=ge;exports.RiskSignalCard=h;exports.TradeSafetyRepository=he;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),i=require("framer-motion"),o=require("react-i18next");require("i18next");require("i18next-resources-to-backend");const c=require("./locale.js"),b=require("react"),f=require("next/link"),j=require("@aioia/core"),l=require("zod");function w(s){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(s){for(const a in s)if(a!=="default"){const r=Object.getOwnPropertyDescriptor(s,a);Object.defineProperty(t,a,r.get?r:{enumerable:!0,get:()=>s[a]})}}return t.default=s,Object.freeze(t)}const n=w(b);function N({title:s,titleId:t,...a},r){return n.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},a),s?n.createElement("title",{id:t},s):null,n.createElement("path",{fillRule:"evenodd",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",clipRule:"evenodd"}))}const y=n.forwardRef(N);function R({title:s,titleId:t,...a},r){return n.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},a),s?n.createElement("title",{id:t},s):null,n.createElement("path",{fillRule:"evenodd",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",clipRule:"evenodd"}))}const _=n.forwardRef(R);function S({title:s,titleId:t,...a},r){return n.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},a),s?n.createElement("title",{id:t},s):null,n.createElement("path",{fillRule:"evenodd",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",clipRule:"evenodd"}))}const E=n.forwardRef(S);function z({title:s,titleId:t,...a},r){return n.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},a),s?n.createElement("title",{id:t},s):null,n.createElement("path",{fillRule:"evenodd",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",clipRule:"evenodd"}),n.createElement("path",{fillRule:"evenodd",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",clipRule:"evenodd"}))}const T=n.forwardRef(z);function A({title:s,titleId:t,...a},r){return n.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},a),s?n.createElement("title",{id:t},s):null,n.createElement("path",{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.createElement("path",{fillRule:"evenodd",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",clipRule:"evenodd"}))}const k=n.forwardRef(A);function C({title:s,titleId:t,...a},r){return n.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},a),s?n.createElement("title",{id:t},s):null,n.createElement("path",{fillRule:"evenodd",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",clipRule:"evenodd"}))}const Z=n.forwardRef(C);function M({title:s,titleId:t,...a},r){return n.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},a),s?n.createElement("title",{id:t},s):null,n.createElement("path",{fillRule:"evenodd",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",clipRule:"evenodd"}))}const u=n.forwardRef(M);function F({title:s,titleId:t,...a},r){return n.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},a),s?n.createElement("title",{id:t},s):null,n.createElement("path",{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"}))}const D=n.forwardRef(F);function O({title:s,titleId:t,...a},r){return n.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},a),s?n.createElement("title",{id:t},s):null,n.createElement("path",{fillRule:"evenodd",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",clipRule:"evenodd"}))}const $=n.forwardRef(O);function B({title:s,titleId:t,...a},r){return n.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},a),s?n.createElement("title",{id:t},s):null,n.createElement("path",{fillRule:"evenodd",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",clipRule:"evenodd"}))}const I=n.forwardRef(B);function q({title:s,titleId:t,...a},r){return n.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},a),s?n.createElement("title",{id:t},s):null,n.createElement("path",{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.createElement("path",{fillRule:"evenodd",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",clipRule:"evenodd"}))}const Y=n.forwardRef(q);function H({title:s,titleId:t,...a},r){return n.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},a),s?n.createElement("title",{id:t},s):null,n.createElement("path",{fillRule:"evenodd",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",clipRule:"evenodd"}))}const p=n.forwardRef(H);function L({title:s,titleId:t,...a},r){return n.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},a),s?n.createElement("title",{id:t},s):null,n.createElement("path",{fillRule:"evenodd",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",clipRule:"evenodd"}))}const V=n.forwardRef(L);function v(s){var t,a,r="";if(typeof s=="string"||typeof s=="number")r+=s;else if(typeof s=="object")if(Array.isArray(s)){var d=s.length;for(t=0;t<d;t++)s[t]&&(a=v(s[t]))&&(r&&(r+=" "),r+=a)}else for(a in s)s[a]&&(r&&(r+=" "),r+=a);return r}function x(){for(var s,t,a=0,r="",d=arguments.length;a<d;a++)(s=arguments[a])&&(t=v(s))&&(r&&(r+=" "),r+=t);return r}const P={error:"bg-error/10 border-error/30",warning:"bg-warning/10 border-warning/30",success:"bg-success/10 border-success/30"},U={error:"text-error",warning:"text-warning",success:"text-success"},K={high:Z,medium:u,low:$};function h({signal:s,variant:t="error"}){const{t:a}=o.useTranslation(c.TRADE_SAFETY_NS),r=K[s.severity];return e.jsx("div",{className:x("card border-2 backdrop-blur-sm",P[t]),children:e.jsx("div",{className:"card-body",children:e.jsxs("div",{className:"flex items-start gap-4",children:[e.jsx(r,{className:x("mt-1 size-8 shrink-0",U[t])}),e.jsxs("div",{className:"flex-1",children:[e.jsx("h4",{className:"card-title text-xl",children:s.title}),e.jsx("p",{className:"mt-2 text-base-content/70",children:s.description}),e.jsxs("div",{className:"mt-4 rounded-lg bg-base-100/50 p-4",children:[e.jsxs("p",{className:"mb-2 text-sm font-semibold",children:["π‘ ",a("result.whatToDo")]}),e.jsx("p",{className:"text-sm",children:s.what_to_do})]})]})]})})})}function Q({cautions:s}){const{t}=o.useTranslation(c.TRADE_SAFETY_NS);return s.length===0?null:e.jsxs("section",{children:[e.jsxs("h3",{className:"mb-6 flex items-center gap-3 text-3xl font-bold",children:[e.jsx(u,{className:"size-10 text-warning"}),t("result.cautions")]}),e.jsx("div",{className:"space-y-4",children:s.map((a,r)=>e.jsx(i.motion.div,{initial:{x:-50,opacity:0},animate:{x:0,opacity:1},transition:{delay:r*.1},whileHover:{scale:1.02,x:10},children:e.jsx(h,{signal:a,variant:"warning"})},r))})]})}function W(){const{t:s,i18n:t}=o.useTranslation(c.TRADE_SAFETY_NS),a=t.language;return e.jsx("section",{className:"hero min-h-[30vh] rounded-3xl bg-primary text-primary-content",children:e.jsx("div",{className:"hero-content text-center",children:e.jsxs("div",{children:[e.jsx(y,{className:"mx-auto mb-6 size-20"}),e.jsx("h3",{className:"mb-4 text-4xl font-bold",children:s("result.companionCta.title")}),e.jsx("p",{className:"mb-8 max-w-2xl text-xl",children:s("result.companionCta.description")}),e.jsx(f,{href:`/${a}/companions`,children:e.jsx(i.motion.button,{whileHover:{scale:1.1},whileTap:{scale:.95},className:"btn btn-lg bg-base-100 text-primary hover:bg-base-200",children:s("result.companionCta.button")})})]})})})}function G({advice:s}){const{t}=o.useTranslation(c.TRADE_SAFETY_NS);return e.jsx(i.motion.section,{whileHover:{scale:1.02},className:"card bg-secondary text-secondary-content shadow-xl",children:e.jsxs("div",{className:"card-body",children:[e.jsxs("div",{className:"mb-6 flex items-center gap-4",children:[e.jsx("div",{className:"avatar placeholder",children:e.jsx("div",{className:"w-16 rounded-full bg-primary text-primary-content",children:e.jsx(V,{className:"size-8"})})}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-2xl font-bold",children:t("result.expertAdvice")}),e.jsx("p",{className:"opacity-80",children:t("result.expertName")})]})]}),e.jsx("div",{className:"prose max-w-none",children:e.jsx("p",{className:"whitespace-pre-wrap text-lg",children:s})})]})})}function J({data:s}){const{t,i18n:a}=o.useTranslation(c.TRADE_SAFETY_NS);return s?e.jsxs("section",{children:[e.jsxs("h3",{className:"mb-6 flex items-center gap-3 text-3xl font-bold",children:[e.jsx(k,{className:"size-10 text-secondary"}),t("result.priceAnalysis")]}),e.jsx("div",{className:"card bg-base-200 shadow-xl",children:e.jsxs("div",{className:"card-body",children:[e.jsxs("div",{className:"grid grid-cols-1 gap-6 md:grid-cols-2",children:[s.market_price_range&&e.jsxs("div",{children:[e.jsx("h4",{className:"mb-2 text-lg font-semibold",children:t("result.marketPrice")}),e.jsx("p",{className:"text-2xl font-bold",children:s.market_price_range})]}),s.offered_price&&e.jsxs("div",{children:[e.jsx("h4",{className:"mb-2 text-lg font-semibold",children:t("result.offeredPrice")}),e.jsx("p",{className:"text-2xl font-bold text-primary",children:new Intl.NumberFormat(a.language,{style:"currency",currency:s.currency||"USD"}).format(s.offered_price)})]})]}),e.jsxs("div",{className:"mt-6 rounded-lg bg-base-100 p-4",children:[e.jsx("h4",{className:"mb-2 text-lg font-semibold",children:t("result.priceAssessment")}),e.jsx("p",{className:"text-base-content/70",children:s.price_assessment})]}),s.warnings.length>0&&e.jsxs("div",{className:"mt-4",children:[e.jsxs("h4",{className:"mb-2 flex items-center gap-2 text-lg font-semibold text-warning",children:[e.jsx(u,{className:"size-6"}),t("result.priceWarnings")]}),e.jsx("ul",{className:"list-inside list-disc space-y-1",children:s.warnings.map((r,d)=>e.jsx("li",{className:"text-base-content/70",children:r},d))})]})]})})]}):null}function X({recommendation:s,emotionalSupport:t}){const{t:a}=o.useTranslation(c.TRADE_SAFETY_NS);return e.jsxs("section",{children:[e.jsxs("h3",{className:"mb-6 flex items-center gap-3 text-3xl font-bold",children:[e.jsx(Y,{className:"size-10 text-warning"}),a("result.recommendation")]}),e.jsx("div",{className:"card bg-base-200 shadow-xl",children:e.jsxs("div",{className:"card-body",children:[e.jsx("div",{className:"prose max-w-none",children:e.jsx("p",{className:"whitespace-pre-wrap text-lg text-base-content/70",children:s})}),e.jsx("div",{className:"divider"}),e.jsx("div",{className:"rounded-lg bg-base-100 p-4",children:e.jsxs("p",{className:"flex items-center gap-2 text-lg font-medium",children:[e.jsx(D,{className:"size-6 text-info"})," ",t]})})]})})]})}function ee(s){return s>=70?{level:"high",color:"error",Icon:p}:s>=40?{level:"medium",color:"warning",Icon:u}:{level:"low",color:"success",Icon:_}}function se({score:s}){const{t}=o.useTranslation(c.TRADE_SAFETY_NS),a=ee(s),{Icon:r}=a,d={error:"text-error",warning:"text-warning",success:"text-success"};return e.jsx("div",{className:"hero min-h-[40vh] rounded-3xl bg-base-200",children:e.jsx("div",{className:"hero-content text-center",children:e.jsxs("div",{children:[e.jsx("div",{className:"mb-4",children:e.jsx(r,{className:x("size-32",d[a.color])})}),e.jsx("h2",{className:"mb-4 text-5xl font-bold",children:t(`result.riskLevel.${a.level}.title`)}),e.jsx("div",{className:"mx-auto w-64",children:e.jsx("div",{className:x("radial-progress",d[a.color]),style:{"--value":s,"--size":"12rem","--thickness":"1rem"},role:"progressbar",children:e.jsx("span",{className:"text-5xl font-bold",children:s})})}),e.jsx("p",{className:"mt-6 max-w-lg text-xl text-base-content/70",children:t(`result.riskLevel.${a.level}.message`)})]})})})}function te({signals:s}){const{t}=o.useTranslation(c.TRADE_SAFETY_NS);return s.length===0?null:e.jsxs("section",{children:[e.jsxs("h3",{className:"mb-6 flex items-center gap-3 text-3xl font-bold",children:[e.jsx(p,{className:"size-10 text-error"}),t("result.riskSignals")]}),e.jsx("div",{className:"space-y-4",children:s.map((a,r)=>e.jsx(i.motion.div,{initial:{x:-50,opacity:0},animate:{x:0,opacity:1},transition:{delay:r*.1},whileHover:{scale:1.02,x:10},children:e.jsx(h,{signal:a,variant:"error"})},r))})]})}function ae({indicators:s}){const{t}=o.useTranslation(c.TRADE_SAFETY_NS);return s.length===0?null:e.jsxs("section",{children:[e.jsxs("h3",{className:"mb-6 flex items-center gap-3 text-3xl font-bold",children:[e.jsx(E,{className:"size-10 text-success"}),t("result.safeIndicators")]}),e.jsx("div",{className:"space-y-4",children:s.map((a,r)=>e.jsx(i.motion.div,{initial:{x:-50,opacity:0},animate:{x:0,opacity:1},transition:{delay:r*.1},whileHover:{scale:1.02,x:10},children:e.jsx(h,{signal:a,variant:"success"})},r))})]})}function re({items:s}){const{t}=o.useTranslation(c.TRADE_SAFETY_NS);return s.length===0?null:e.jsxs("section",{children:[e.jsxs("h3",{className:"mb-6 flex items-center gap-3 text-3xl font-bold",children:[e.jsx(T,{className:"size-10 text-primary"}),t("result.safetyChecklist")]}),e.jsx("div",{className:"card border-2 border-primary/30 bg-base-200",children:e.jsxs("div",{className:"card-body",children:[e.jsx("p",{className:"mb-6 text-lg text-base-content/70",children:t("result.checklistDescription")}),e.jsx("div",{className:"space-y-3",children:s.map((a,r)=>e.jsxs(i.motion.label,{initial:{x:-20,opacity:0},animate:{x:0,opacity:1},transition:{delay:r*.08},className:"flex cursor-pointer items-start gap-3 rounded-lg p-3 hover:bg-base-100/30",children:[e.jsx("input",{type:"checkbox",className:"checkbox-primary checkbox mt-1"}),e.jsx("span",{className:"text-lg",children:a})]},r))})]})})]})}function ne({translation:s,nuance:t}){const{t:a}=o.useTranslation(c.TRADE_SAFETY_NS);return!s&&!t?null:e.jsxs("section",{children:[e.jsxs("h3",{className:"mb-6 flex items-center gap-3 text-3xl font-bold",children:[e.jsx(I,{className:"size-10 text-primary"}),a("result.translation")]}),e.jsx("div",{className:"card bg-base-200 shadow-xl",children:e.jsxs("div",{className:"card-body",children:[s&&e.jsxs("div",{className:"mb-4",children:[e.jsx("h4",{className:"mb-2 text-lg font-semibold",children:a("result.translationTitle")}),e.jsx("p",{className:"whitespace-pre-wrap text-base-content/70",children:s})]}),t&&e.jsxs("div",{children:[e.jsx("h4",{className:"mb-2 text-lg font-semibold",children:a("result.nuanceTitle")}),e.jsx("p",{className:"whitespace-pre-wrap text-base-content/70",children:t})]})]})})]})}const m={initial:{y:40,opacity:0},animate:{y:0,opacity:1,transition:{duration:.6}}},le={animate:{transition:{staggerChildren:.15}}};function ie({analysis:s,expertAdvice:t,showCompanionCta:a=!1}){return e.jsxs(i.motion.div,{variants:le,initial:"initial",animate:"animate",className:"mx-auto max-w-5xl space-y-12",children:[e.jsx(i.motion.div,{variants:m,children:e.jsx(se,{score:s.risk_score})}),(s.translation||s.nuance_explanation)&&e.jsx(i.motion.div,{variants:m,children:e.jsx(ne,{translation:s.translation,nuance:s.nuance_explanation})}),s.risk_signals.length>0&&e.jsx(i.motion.div,{variants:m,children:e.jsx(te,{signals:s.risk_signals})}),s.cautions.length>0&&e.jsx(i.motion.div,{variants:m,children:e.jsx(Q,{cautions:s.cautions})}),s.safe_indicators.length>0&&e.jsx(i.motion.div,{variants:m,children:e.jsx(ae,{indicators:s.safe_indicators})}),s.price_analysis&&e.jsx(i.motion.div,{variants:m,children:e.jsx(J,{data:s.price_analysis})}),s.safety_checklist.length>0&&e.jsx(i.motion.div,{variants:m,children:e.jsx(re,{items:s.safety_checklist})}),t&&e.jsx(i.motion.div,{variants:m,children:e.jsx(G,{advice:t})}),e.jsx(i.motion.div,{variants:m,children:e.jsx(X,{recommendation:s.recommendation,emotionalSupport:s.emotional_support})}),a&&e.jsx(i.motion.div,{variants:m,children:e.jsx(W,{})})]})}function ce({summary:s,checkId:t}){const{t:a,i18n:r}=o.useTranslation(c.TRADE_SAFETY_NS),d=r.language;return e.jsxs("div",{className:"mx-auto max-w-2xl",children:[e.jsx("h1",{className:"mb-8 text-center text-3xl font-bold",children:a("result.title")}),e.jsxs("div",{className:"mb-8 grid grid-cols-1 gap-4 md:grid-cols-3",children:[e.jsx("div",{className:"card bg-error/10",children:e.jsxs("div",{className:"card-body items-center text-center",children:[e.jsx("h3",{className:"text-4xl font-bold text-error",children:s.risk_signals_count}),e.jsx("p",{className:"text-sm",children:a("result.riskSignals")})]})}),e.jsx("div",{className:"card bg-warning/10",children:e.jsxs("div",{className:"card-body items-center text-center",children:[e.jsx("h3",{className:"text-4xl font-bold text-warning",children:s.cautions_count}),e.jsx("p",{className:"text-sm",children:a("result.cautions")})]})}),e.jsx("div",{className:"card bg-success/10",children:e.jsxs("div",{className:"card-body items-center text-center",children:[e.jsx("h3",{className:"text-4xl font-bold text-success",children:s.safe_indicators_count}),e.jsx("p",{className:"text-sm",children:a("result.safeIndicators")})]})})]}),e.jsx("div",{className:"card bg-base-200 shadow-xl",children:e.jsxs("div",{className:"card-body items-center text-center",children:[e.jsx("h2",{className:"card-title text-2xl",children:a("result.signupRequired")}),e.jsx("p",{className:"mb-4 text-base-content/70",children:a("result.signupMessage")}),e.jsx(f,{href:`/${d}/login?callbackUrl=${encodeURIComponent(`/${d}/trade-safety/result/${t}`)}`,className:"btn btn-primary",children:a("login")})]})})]})}const g=l.z.object({category:l.z.enum(["payment","seller","platform","price","content"]),severity:l.z.enum(["high","medium","low"]),title:l.z.string(),description:l.z.string(),what_to_do:l.z.string()}),oe=l.z.object({market_price_range:l.z.string().nullish(),offered_price:l.z.number().nullish(),currency:l.z.string().nullish(),price_assessment:l.z.string(),warnings:l.z.array(l.z.string())}),de=l.z.object({translation:l.z.string().nullish(),nuance_explanation:l.z.string().nullish(),risk_signals:l.z.array(g),cautions:l.z.array(g),safe_indicators:l.z.array(g),price_analysis:oe,safety_checklist:l.z.array(l.z.string()),risk_score:l.z.number(),recommendation:l.z.string(),emotional_support:l.z.string()}),me=l.z.object({risk_signals_count:l.z.number(),cautions_count:l.z.number(),safe_indicators_count:l.z.number()}),xe=l.z.object({id:l.z.string(),user_id:l.z.string().nullish(),input_text:l.z.string(),llm_analysis:de,risk_score:l.z.number(),expert_advice:l.z.string().nullish(),expert_reviewed:l.z.boolean(),expert_reviewed_at:l.z.string().nullish(),expert_reviewed_by:l.z.string().nullish(),created_at:l.z.string(),updated_at:l.z.string()}),ue=l.z.union([xe,l.z.object({id:l.z.string(),quick_summary:me,signup_required:l.z.literal(!0)})]);class he extends j.BaseCrudRepository{constructor(){super(...arguments),this.resource="trade-safety"}getDataSchema(){return ue}}const ge={high:70,medium:40};exports.TRADE_SAFETY_NS=c.TRADE_SAFETY_NS;exports.tradeSafetyTranslations=c.tradeSafetyTranslations;exports.DetailedResult=ie;exports.QuickResultTeaser=ce;exports.RISK_SCORE_THRESHOLDS=ge;exports.RiskSignalCard=h;exports.TradeSafetyRepository=he;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","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","../node_modules/clsx/dist/clsx.mjs","../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;","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","\"use client\";\n\nimport {\n ExclamationCircleIcon,\n ExclamationTriangleIcon,\n InformationCircleIcon,\n} from \"@heroicons/react/24/solid\";\nimport clsx from \"clsx\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { TRADE_SAFETY_NS } from \"../i18n\";\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(TRADE_SAFETY_NS);\n const Icon = severityIcon[signal.severity];\n\n return (\n <div className={clsx(\"card border-2 backdrop-blur-sm\", variantStyles[variant])}>\n <div className=\"card-body\">\n <div className=\"flex items-start gap-4\">\n <Icon className={clsx(\"mt-1 size-8 shrink-0\", iconColor[variant])} />\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(\"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 { TRADE_SAFETY_NS } from \"../../i18n\";\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(TRADE_SAFETY_NS);\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(\"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\nimport { TRADE_SAFETY_NS } from \"../../i18n\";\n\nexport function CompanionCtaSection() {\n const { t, i18n } = useTranslation(TRADE_SAFETY_NS);\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(\"result.companionCta.title\")}\n </h3>\n\n <p className=\"mb-8 max-w-2xl text-xl\">\n {t(\"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(\"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\nimport { TRADE_SAFETY_NS } from \"../../i18n\";\n\ninterface ExpertAdviceSectionProps {\n advice: string;\n}\n\nexport function ExpertAdviceSection({ advice }: ExpertAdviceSectionProps) {\n const { t } = useTranslation(TRADE_SAFETY_NS);\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\">{t(\"result.expertAdvice\")}</h3>\n <p className=\"opacity-80\">{t(\"result.expertName\")}</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 { TRADE_SAFETY_NS } from \"../../i18n\";\nimport { PriceAnalysis } from \"../../types\";\n\ninterface PriceAnalysisSectionProps {\n data?: PriceAnalysis;\n}\n\nexport function PriceAnalysisSection({ data }: PriceAnalysisSectionProps) {\n const { t, i18n } = useTranslation(TRADE_SAFETY_NS);\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(\"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(\"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(\"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(\"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(\"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\nimport { TRADE_SAFETY_NS } from \"../../i18n\";\n\ninterface RecommendationSectionProps {\n recommendation: string;\n emotionalSupport: string;\n}\n\nexport function RecommendationSection({\n recommendation,\n emotionalSupport,\n}: RecommendationSectionProps) {\n const { t } = useTranslation(TRADE_SAFETY_NS);\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(\"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 clsx from \"clsx\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { TRADE_SAFETY_NS } from \"../../i18n\";\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(TRADE_SAFETY_NS);\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={clsx(\"size-32\", colorClasses[risk.color])} />\n </div>\n <h2 className=\"mb-4 text-5xl font-bold\">\n {t(`result.riskLevel.${risk.level}.title`)}\n </h2>\n\n {/* μνλ κ²μ΄μ§ */}\n <div className=\"mx-auto w-64\">\n <div\n className={clsx(\"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(`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 { TRADE_SAFETY_NS } from \"../../i18n\";\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(TRADE_SAFETY_NS);\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(\"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 { TRADE_SAFETY_NS } from \"../../i18n\";\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(TRADE_SAFETY_NS);\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(\"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\nimport { TRADE_SAFETY_NS } from \"../../i18n\";\n\ninterface SafetyChecklistSectionProps {\n items: string[];\n}\n\nexport function SafetyChecklistSection({ items }: SafetyChecklistSectionProps) {\n const { t } = useTranslation(TRADE_SAFETY_NS);\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(\"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(\"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\nimport { TRADE_SAFETY_NS } from \"../../i18n\";\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(TRADE_SAFETY_NS);\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(\"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(\"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(\"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 { TRADE_SAFETY_NS } from \"../i18n\";\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(TRADE_SAFETY_NS);\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(\"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\">{t(\"result.riskSignals\")}</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(\"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\">{t(\"result.safeIndicators\")}</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\">{t(\"result.signupRequired\")}</h2>\n <p className=\"mb-4 text-neutral-content\">\n {t(\"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.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\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;\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","r","e","t","f","n","o","clsx","variantStyles","iconColor","severityIcon","RiskSignalCard","signal","variant","useTranslation","TRADE_SAFETY_NS","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":"mnBACA,SAASA,EAA+B,CACtC,MAAAC,EACA,QAAAC,EACA,GAAGC,CACL,EAAGC,EAAQ,CACT,OAAoBC,EAAM,cAAc,MAAO,OAAO,OAAO,CAC3D,MAAO,6BACP,QAAS,YACT,KAAM,eACN,cAAe,OACf,YAAa,OACb,IAAKD,EACL,kBAAmBF,CACvB,EAAKC,CAAK,EAAGF,EAAqBI,EAAM,cAAc,QAAS,CAC3D,GAAIH,CACR,EAAKD,CAAK,EAAI,KAAmBI,EAAM,cAAc,OAAQ,CACzD,SAAU,UACV,EAAG,2cACH,SAAU,SACd,CAAG,CAAC,CACJ,CACA,MAAMC,EAA2BD,EAAM,WAAWL,CAA8B,ECrBhF,SAASO,EAAe,CACtB,MAAAN,EACA,QAAAC,EACA,GAAGC,CACL,EAAGC,EAAQ,CACT,OAAoBC,EAAM,cAAc,MAAO,OAAO,OAAO,CAC3D,MAAO,6BACP,QAAS,YACT,KAAM,eACN,cAAe,OACf,YAAa,OACb,IAAKD,EACL,kBAAmBF,CACvB,EAAKC,CAAK,EAAGF,EAAqBI,EAAM,cAAc,QAAS,CAC3D,GAAIH,CACR,EAAKD,CAAK,EAAI,KAAmBI,EAAM,cAAc,OAAQ,CACzD,SAAU,UACV,EAAG,ukBACH,SAAU,SACd,CAAG,CAAC,CACJ,CACA,MAAMC,EAA2BD,EAAM,WAAWE,CAAc,ECrBhE,SAASC,EAAgB,CACvB,MAAAP,EACA,QAAAC,EACA,GAAGC,CACL,EAAGC,EAAQ,CACT,OAAoBC,EAAM,cAAc,MAAO,OAAO,OAAO,CAC3D,MAAO,6BACP,QAAS,YACT,KAAM,eACN,cAAe,OACf,YAAa,OACb,IAAKD,EACL,kBAAmBF,CACvB,EAAKC,CAAK,EAAGF,EAAqBI,EAAM,cAAc,QAAS,CAC3D,GAAIH,CACR,EAAKD,CAAK,EAAI,KAAmBI,EAAM,cAAc,OAAQ,CACzD,SAAU,UACV,EAAG,oOACH,SAAU,SACd,CAAG,CAAC,CACJ,CACA,MAAMC,EAA2BD,EAAM,WAAWG,CAAe,ECrBjE,SAASC,EAA2B,CAClC,MAAAR,EACA,QAAAC,EACA,GAAGC,CACL,EAAGC,EAAQ,CACT,OAAoBC,EAAM,cAAc,MAAO,OAAO,OAAO,CAC3D,MAAO,6BACP,QAAS,YACT,KAAM,eACN,cAAe,OACf,YAAa,OACb,IAAKD,EACL,kBAAmBF,CACvB,EAAKC,CAAK,EAAGF,EAAqBI,EAAM,cAAc,QAAS,CAC3D,GAAIH,CACR,EAAKD,CAAK,EAAI,KAAmBI,EAAM,cAAc,OAAQ,CACzD,SAAU,UACV,EAAG,kSACH,SAAU,SACd,CAAG,EAAgBA,EAAM,cAAc,OAAQ,CAC3C,SAAU,UACV,EAAG,8QACH,SAAU,SACd,CAAG,CAAC,CACJ,CACA,MAAMC,EAA2BD,EAAM,WAAWI,CAA0B,ECzB5E,SAASC,EAAmB,CAC1B,MAAAT,EACA,QAAAC,EACA,GAAGC,CACL,EAAGC,EAAQ,CACT,OAAoBC,EAAM,cAAc,MAAO,OAAO,OAAO,CAC3D,MAAO,6BACP,QAAS,YACT,KAAM,eACN,cAAe,OACf,YAAa,OACb,IAAKD,EACL,kBAAmBF,CACvB,EAAKC,CAAK,EAAGF,EAAqBI,EAAM,cAAc,QAAS,CAC3D,GAAIH,CACR,EAAKD,CAAK,EAAI,KAAmBI,EAAM,cAAc,OAAQ,CACzD,EAAG,+PACP,CAAG,EAAgBA,EAAM,cAAc,OAAQ,CAC3C,SAAU,UACV,EAAG,ulBACH,SAAU,SACd,CAAG,CAAC,CACJ,CACA,MAAMC,EAA2BD,EAAM,WAAWK,CAAkB,ECvBpE,SAASC,EAAsB,CAC7B,MAAAV,EACA,QAAAC,EACA,GAAGC,CACL,EAAGC,EAAQ,CACT,OAAoBC,EAAM,cAAc,MAAO,OAAO,OAAO,CAC3D,MAAO,6BACP,QAAS,YACT,KAAM,eACN,cAAe,OACf,YAAa,OACb,IAAKD,EACL,kBAAmBF,CACvB,EAAKC,CAAK,EAAGF,EAAqBI,EAAM,cAAc,QAAS,CAC3D,GAAIH,CACR,EAAKD,CAAK,EAAI,KAAmBI,EAAM,cAAc,OAAQ,CACzD,SAAU,UACV,EAAG,gOACH,SAAU,SACd,CAAG,CAAC,CACJ,CACA,MAAMC,EAA2BD,EAAM,WAAWM,CAAqB,ECrBvE,SAASC,EAAwB,CAC/B,MAAAX,EACA,QAAAC,EACA,GAAGC,CACL,EAAGC,EAAQ,CACT,OAAoBC,EAAM,cAAc,MAAO,OAAO,OAAO,CAC3D,MAAO,6BACP,QAAS,YACT,KAAM,eACN,cAAe,OACf,YAAa,OACb,IAAKD,EACL,kBAAmBF,CACvB,EAAKC,CAAK,EAAGF,EAAqBI,EAAM,cAAc,QAAS,CAC3D,GAAIH,CACR,EAAKD,CAAK,EAAI,KAAmBI,EAAM,cAAc,OAAQ,CACzD,SAAU,UACV,EAAG,qPACH,SAAU,SACd,CAAG,CAAC,CACJ,CACA,MAAMC,EAA2BD,EAAM,WAAWO,CAAuB,ECrBzE,SAASC,EAAU,CACjB,MAAAZ,EACA,QAAAC,EACA,GAAGC,CACL,EAAGC,EAAQ,CACT,OAAoBC,EAAM,cAAc,MAAO,OAAO,OAAO,CAC3D,MAAO,6BACP,QAAS,YACT,KAAM,eACN,cAAe,OACf,YAAa,OACb,IAAKD,EACL,kBAAmBF,CACvB,EAAKC,CAAK,EAAGF,EAAqBI,EAAM,cAAc,QAAS,CAC3D,GAAIH,CACR,EAAKD,CAAK,EAAI,KAAmBI,EAAM,cAAc,OAAQ,CACzD,EAAG,kYACP,CAAG,CAAC,CACJ,CACA,MAAMC,EAA2BD,EAAM,WAAWQ,CAAS,ECnB3D,SAASC,EAAsB,CAC7B,MAAAb,EACA,QAAAC,EACA,GAAGC,CACL,EAAGC,EAAQ,CACT,OAAoBC,EAAM,cAAc,MAAO,OAAO,OAAO,CAC3D,MAAO,6BACP,QAAS,YACT,KAAM,eACN,cAAe,OACf,YAAa,OACb,IAAKD,EACL,kBAAmBF,CACvB,EAAKC,CAAK,EAAGF,EAAqBI,EAAM,cAAc,QAAS,CAC3D,GAAIH,CACR,EAAKD,CAAK,EAAI,KAAmBI,EAAM,cAAc,OAAQ,CACzD,SAAU,UACV,EAAG,wUACH,SAAU,SACd,CAAG,CAAC,CACJ,CACA,MAAMC,EAA2BD,EAAM,WAAWS,CAAqB,ECrBvE,SAASC,EAAa,CACpB,MAAAd,EACA,QAAAC,EACA,GAAGC,CACL,EAAGC,EAAQ,CACT,OAAoBC,EAAM,cAAc,MAAO,OAAO,OAAO,CAC3D,MAAO,6BACP,QAAS,YACT,KAAM,eACN,cAAe,OACf,YAAa,OACb,IAAKD,EACL,kBAAmBF,CACvB,EAAKC,CAAK,EAAGF,EAAqBI,EAAM,cAAc,QAAS,CAC3D,GAAIH,CACR,EAAKD,CAAK,EAAI,KAAmBI,EAAM,cAAc,OAAQ,CACzD,SAAU,UACV,EAAG,qtBACH,SAAU,SACd,CAAG,CAAC,CACJ,CACA,MAAMC,EAA2BD,EAAM,WAAWU,CAAY,ECrB9D,SAASC,EAAc,CACrB,MAAAf,EACA,QAAAC,EACA,GAAGC,CACL,EAAGC,EAAQ,CACT,OAAoBC,EAAM,cAAc,MAAO,OAAO,OAAO,CAC3D,MAAO,6BACP,QAAS,YACT,KAAM,eACN,cAAe,OACf,YAAa,OACb,IAAKD,EACL,kBAAmBF,CACvB,EAAKC,CAAK,EAAGF,EAAqBI,EAAM,cAAc,QAAS,CAC3D,GAAIH,CACR,EAAKD,CAAK,EAAI,KAAmBI,EAAM,cAAc,OAAQ,CACzD,EAAG,wZACP,CAAG,EAAgBA,EAAM,cAAc,OAAQ,CAC3C,SAAU,UACV,EAAG,sRACH,SAAU,SACd,CAAG,CAAC,CACJ,CACA,MAAMC,EAA2BD,EAAM,WAAWW,CAAa,ECvB/D,SAASC,EAAsB,CAC7B,MAAAhB,EACA,QAAAC,EACA,GAAGC,CACL,EAAGC,EAAQ,CACT,OAAoBC,EAAM,cAAc,MAAO,OAAO,OAAO,CAC3D,MAAO,6BACP,QAAS,YACT,KAAM,eACN,cAAe,OACf,YAAa,OACb,IAAKD,EACL,kBAAmBF,CACvB,EAAKC,CAAK,EAAGF,EAAqBI,EAAM,cAAc,QAAS,CAC3D,GAAIH,CACR,EAAKD,CAAK,EAAI,KAAmBI,EAAM,cAAc,OAAQ,CACzD,SAAU,UACV,EAAG,ieACH,SAAU,SACd,CAAG,CAAC,CACJ,CACA,MAAMC,EAA2BD,EAAM,WAAWY,CAAqB,ECrBvE,SAASC,EAAS,CAChB,MAAAjB,EACA,QAAAC,EACA,GAAGC,CACL,EAAGC,EAAQ,CACT,OAAoBC,EAAM,cAAc,MAAO,OAAO,OAAO,CAC3D,MAAO,6BACP,QAAS,YACT,KAAM,eACN,cAAe,OACf,YAAa,OACb,IAAKD,EACL,kBAAmBF,CACvB,EAAKC,CAAK,EAAGF,EAAqBI,EAAM,cAAc,QAAS,CAC3D,GAAIH,CACR,EAAKD,CAAK,EAAI,KAAmBI,EAAM,cAAc,OAAQ,CACzD,SAAU,UACV,EAAG,4LACH,SAAU,SACd,CAAG,CAAC,CACJ,CACA,MAAMC,EAA2BD,EAAM,WAAWa,CAAQ,ECtB1D,SAASC,EAAEC,EAAE,CAAC,IAAIC,EAAEC,EAAEC,EAAE,GAAG,GAAa,OAAOH,GAAjB,UAA8B,OAAOA,GAAjB,SAAmBG,GAAGH,UAAoB,OAAOA,GAAjB,SAAmB,GAAG,MAAM,QAAQA,CAAC,EAAE,CAAC,IAAII,EAAEJ,EAAE,OAAO,IAAIC,EAAE,EAAEA,EAAEG,EAAEH,IAAID,EAAEC,CAAC,IAAIC,EAAEH,EAAEC,EAAEC,CAAC,CAAC,KAAKE,IAAIA,GAAG,KAAKA,GAAGD,EAAE,KAAM,KAAIA,KAAKF,EAAEA,EAAEE,CAAC,IAAIC,IAAIA,GAAG,KAAKA,GAAGD,GAAG,OAAOC,CAAC,CAAQ,SAASE,GAAM,CAAC,QAAQL,EAAEC,EAAEC,EAAE,EAAEC,EAAE,GAAGC,EAAE,UAAU,OAAOF,EAAEE,EAAEF,KAAKF,EAAE,UAAUE,CAAC,KAAKD,EAAEF,EAAEC,CAAC,KAAKG,IAAIA,GAAG,KAAKA,GAAGF,GAAG,OAAOE,CAAC,CCkB/W,MAAMG,EAAgB,CACpB,MAAO,8BACP,QAAS,kCACT,QAAS,iCACX,EAEMC,EAAY,CAChB,MAAO,aACP,QAAS,eACT,QAAS,cACX,EAEMC,EAAe,CACnB,KAAMjB,EACN,OAAQC,EACR,IAAKE,CACP,EAEO,SAASe,EAAe,CAC7B,OAAAC,EACA,QAAAC,EAAU,OACZ,EAAwB,CACtB,KAAM,CAAE,EAAAV,CAAA,EAAMW,EAAAA,eAAeC,iBAAe,EACtCC,EAAON,EAAaE,EAAO,QAAQ,EAEzC,aACG,MAAA,CAAI,UAAWL,EAAK,iCAAkCC,EAAcK,CAAO,CAAC,EAC3E,SAAAI,EAAAA,IAAC,OAAI,UAAU,YACb,SAAAC,OAAC,MAAA,CAAI,UAAU,yBACb,SAAA,CAAAD,MAACD,GAAK,UAAWT,EAAK,uBAAwBE,EAAUI,CAAO,CAAC,EAAG,EAEnEK,EAAAA,KAAC,MAAA,CAAI,UAAU,SACb,SAAA,CAAAD,EAAAA,IAAC,KAAA,CAAG,UAAU,qBAAsB,SAAAL,EAAO,MAAM,EACjDK,EAAAA,IAAC,IAAA,CAAE,UAAU,4BAA6B,WAAO,YAAY,EAG7DC,EAAAA,KAAC,MAAA,CAAI,UAAU,qCACb,SAAA,CAAAA,EAAAA,KAAC,IAAA,CAAE,UAAU,6BAA6B,SAAA,CAAA,MACpCf,EAAE,iBAAiB,CAAA,EACzB,EACAc,EAAAA,IAAC,IAAA,CAAE,UAAU,UAAW,WAAO,UAAA,CAAW,CAAA,CAAA,CAC5C,CAAA,CAAA,CACF,CAAA,CAAA,CACF,EACF,EACF,CAEJ,CCnDO,SAASE,EAAgB,CAAE,SAAAC,GAAkC,CAClE,KAAM,CAAE,EAAAjB,CAAA,EAAMW,EAAAA,eAAeC,iBAAe,EAE5C,OAAIK,EAAS,SAAW,EAAU,YAG/B,UAAA,CACC,SAAA,CAAAF,EAAAA,KAAC,KAAA,CAAG,UAAU,kDACZ,SAAA,CAAAD,EAAAA,IAACvB,EAAA,CAAwB,UAAU,sBAAA,CAAuB,EACzDS,EAAE,iBAAiB,CAAA,EACtB,EAEAc,EAAAA,IAAC,OAAI,UAAU,YACZ,WAAS,IAAI,CAACI,EAASC,IACtBL,EAAAA,IAACM,EAAAA,OAAO,IAAP,CAEC,QAAS,CAAE,EAAG,IAAK,QAAS,CAAA,EAC5B,QAAS,CAAE,EAAG,EAAG,QAAS,CAAA,EAC1B,WAAY,CAAE,MAAOD,EAAM,EAAA,EAC3B,WAAY,CAAE,MAAO,KAAM,EAAG,EAAA,EAE9B,SAAAL,EAAAA,IAACN,EAAA,CAAe,OAAQU,EAAS,QAAQ,SAAA,CAAU,CAAA,EAN9CC,CAAA,CAQR,CAAA,CACH,CAAA,EACF,CAEJ,CChCO,SAASE,GAAsB,CACpC,KAAM,CAAE,EAAG,KAAAC,GAASX,EAAAA,eAAeC,EAAAA,eAAe,EAC5CW,EAAOD,EAAK,SAElB,OACER,EAAAA,IAAC,WAAQ,UAAU,gEACjB,eAAC,MAAA,CAAI,UAAU,2BACb,SAAAC,EAAAA,KAAC,MAAA,CACC,SAAA,CAAAD,EAAAA,IAACnC,EAAA,CAA+B,UAAU,sBAAA,CAAuB,QAEhE,KAAA,CAAG,UAAU,0BACX,SAAA,EAAE,2BAA2B,EAChC,QAEC,IAAA,CAAE,UAAU,yBACV,SAAA,EAAE,iCAAiC,EACtC,EAEAmC,MAACU,EAAA,CAAK,KAAM,IAAID,CAAI,cAClB,SAAAT,EAAAA,IAACM,EAAAA,OAAO,OAAP,CACC,WAAY,CAAE,MAAO,GAAA,EACrB,SAAU,CAAE,MAAO,GAAA,EACnB,UAAU,wDAET,WAAE,4BAA4B,CAAA,CAAA,CACjC,CACF,CAAA,CAAA,CACF,EACF,EACF,CAEJ,CC5BO,SAASK,EAAoB,CAAE,OAAAC,GAAoC,CACxE,KAAM,CAAE,EAAA1B,CAAA,EAAMW,EAAAA,eAAeC,iBAAe,EAE5C,OACEE,EAAAA,IAACM,EAAAA,OAAO,QAAP,CACC,WAAY,CAAE,MAAO,IAAA,EACrB,UAAU,qDAEV,SAAAL,EAAAA,KAAC,MAAA,CAAI,UAAU,YACb,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,+BACb,SAAA,CAAAD,EAAAA,IAAC,MAAA,CAAI,UAAU,qBACb,SAAAA,EAAAA,IAAC,MAAA,CAAI,UAAU,oDACb,SAAAA,EAAAA,IAACjB,EAAA,CAAS,UAAU,QAAA,CAAS,CAAA,CAC/B,EACF,SACC,MAAA,CACC,SAAA,CAAAiB,MAAC,KAAA,CAAG,UAAU,qBAAsB,SAAAd,EAAE,qBAAqB,EAAE,QAC5D,IAAA,CAAE,UAAU,aAAc,SAAAA,EAAE,mBAAmB,CAAA,CAAE,CAAA,CAAA,CACpD,CAAA,EACF,EAEAc,EAAAA,IAAC,OAAI,UAAU,mBACb,eAAC,IAAA,CAAE,UAAU,8BAA+B,SAAAY,CAAA,CAAO,CAAA,CACrD,CAAA,CAAA,CACF,CAAA,CAAA,CAGN,CCxBO,SAASC,EAAqB,CAAE,KAAAC,GAAmC,CACxE,KAAM,CAAE,EAAA5B,EAAG,KAAAsB,GAASX,EAAAA,eAAeC,EAAAA,eAAe,EAElD,OAAKgB,SAGF,UAAA,CACC,SAAA,CAAAb,EAAAA,KAAC,KAAA,CAAG,UAAU,kDACZ,SAAA,CAAAD,EAAAA,IAACzB,EAAA,CAAmB,UAAU,wBAAA,CAAyB,EACtDW,EAAE,sBAAsB,CAAA,EAC3B,QAEC,MAAA,CAAI,UAAU,6BACb,SAAAe,EAAAA,KAAC,MAAA,CAAI,UAAU,YACb,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,wCACZ,SAAA,CAAAa,EAAK,2BACH,MAAA,CACC,SAAA,CAAAd,MAAC,KAAA,CAAG,UAAU,6BACX,SAAAd,EAAE,oBAAoB,EACzB,EACAc,EAAAA,IAAC,IAAA,CAAE,UAAU,qBAAsB,WAAK,kBAAA,CAAmB,CAAA,EAC7D,EAGDc,EAAK,eACJb,EAAAA,KAAC,MAAA,CACC,SAAA,CAAAD,MAAC,KAAA,CAAG,UAAU,6BACX,SAAAd,EAAE,qBAAqB,EAC1B,EACAc,MAAC,KAAE,UAAU,kCACV,aAAI,KAAK,aAAaQ,EAAK,SAAU,CACpC,MAAO,WACP,SAAUM,EAAK,UAAY,KAAA,CAC5B,EAAE,OAAOA,EAAK,aAAa,CAAA,CAC9B,CAAA,CAAA,CACF,CAAA,EAEJ,EAGAb,EAAAA,KAAC,MAAA,CAAI,UAAU,kCACb,SAAA,CAAAD,MAAC,KAAA,CAAG,UAAU,6BACX,SAAAd,EAAE,wBAAwB,EAC7B,EACAc,EAAAA,IAAC,IAAA,CAAE,UAAU,uBAAwB,WAAK,gBAAA,CAAiB,CAAA,EAC7D,EAGCc,EAAK,SAAS,OAAS,GACtBb,EAAAA,KAAC,MAAA,CAAI,UAAU,OACb,SAAA,CAAAA,EAAAA,KAAC,KAAA,CAAG,UAAU,kEACZ,SAAA,CAAAD,EAAAA,IAACvB,EAAA,CAAwB,UAAU,QAAA,CAAS,EAC3CS,EAAE,sBAAsB,CAAA,EAC3B,QACC,KAAA,CAAG,UAAU,kCACX,SAAA4B,EAAK,SAAS,IAAI,CAACC,EAASC,UAC1B,KAAA,CAAe,UAAU,uBACvB,SAAAD,CAAA,EADMC,CAET,CACD,CAAA,CACH,CAAA,CAAA,CACF,CAAA,CAAA,CAEJ,CAAA,CACF,CAAA,EACF,EA9DgB,IAgEpB,CCtEO,SAASC,EAAsB,CACpC,eAAAC,EACA,iBAAAC,CACF,EAA+B,CAC7B,KAAM,CAAE,EAAAjC,CAAA,EAAMW,EAAAA,eAAeC,iBAAe,EAE5C,cACG,UAAA,CACC,SAAA,CAAAG,EAAAA,KAAC,KAAA,CAAG,UAAU,kDACZ,SAAA,CAAAD,EAAAA,IAACnB,EAAA,CAAc,UAAU,sBAAA,CAAuB,EAC/CK,EAAE,uBAAuB,CAAA,EAC5B,QAEC,MAAA,CAAI,UAAU,6BACb,SAAAe,EAAAA,KAAC,MAAA,CAAI,UAAU,YACb,SAAA,CAAAD,EAAAA,IAAC,MAAA,CAAI,UAAU,mBACb,SAAAA,EAAAA,IAAC,KAAE,UAAU,mDACV,WACH,CAAA,CACF,EAEAA,EAAAA,IAAC,MAAA,CAAI,UAAU,SAAA,CAAU,QAExB,MAAA,CAAI,UAAU,6BACb,SAAAC,EAAAA,KAAC,IAAA,CAAE,UAAU,8CACX,SAAA,CAAAD,EAAAA,IAACtB,EAAA,CAAU,UAAU,kBAAA,CAAmB,EAAE,IAAEyC,CAAA,CAAA,CAC9C,CAAA,CACF,CAAA,CAAA,CACF,CAAA,CACF,CAAA,EACF,CAEJ,CCtBA,SAASC,GAAaC,EAA0B,CAC9C,OAAIA,GAAS,GACJ,CAAE,MAAO,OAAQ,MAAO,QAAS,KAAMvC,CAAA,EAE5CuC,GAAS,GACJ,CAAE,MAAO,SAAU,MAAO,UAAW,KAAM5C,CAAA,EAE7C,CAAE,MAAO,MAAO,MAAO,UAAW,KAAML,CAAA,CACjD,CAEO,SAASkD,GAAc,CAAE,MAAAD,GAA6B,CAC3D,KAAM,CAAE,EAAAnC,CAAA,EAAMW,EAAAA,eAAeC,iBAAe,EACtCyB,EAAOH,GAAaC,CAAK,EACzB,CAAE,KAAAtB,GAASwB,EAEXC,EAAuC,CAC3C,MAAO,aACP,QAAS,eACT,QAAS,cAAA,EAGX,OACExB,EAAAA,IAAC,OAAI,UAAU,4CACb,eAAC,MAAA,CAAI,UAAU,2BACb,SAAAC,EAAAA,KAAC,MAAA,CACC,SAAA,CAAAD,EAAAA,IAAC,MAAA,CAAI,UAAU,OACb,SAAAA,EAAAA,IAACD,EAAA,CAAK,UAAWT,EAAK,UAAWkC,EAAaD,EAAK,KAAK,CAAC,EAAG,EAC9D,EACAvB,EAAAA,IAAC,MAAG,UAAU,0BACX,WAAE,oBAAoBuB,EAAK,KAAK,QAAQ,CAAA,CAC3C,EAGAvB,EAAAA,IAAC,MAAA,CAAI,UAAU,eACb,SAAAA,EAAAA,IAAC,MAAA,CACC,UAAWV,EAAK,kBAAmBkC,EAAaD,EAAK,KAAK,CAAC,EAC3D,MACE,CACE,UAAWF,EACX,SAAU,QACV,cAAe,MAAA,EAGnB,KAAK,cAEL,SAAArB,EAAAA,IAAC,OAAA,CAAK,UAAU,qBAAsB,SAAAqB,CAAA,CAAM,CAAA,CAAA,EAEhD,EAEArB,EAAAA,IAAC,KAAE,UAAU,6CACV,WAAE,oBAAoBuB,EAAK,KAAK,UAAU,CAAA,CAC7C,CAAA,CAAA,CACF,EACF,EACF,CAEJ,CChEO,SAASE,GAAmB,CAAE,QAAAC,GAAoC,CACvE,KAAM,CAAE,EAAAxC,CAAA,EAAMW,EAAAA,eAAeC,iBAAe,EAE5C,OAAI4B,EAAQ,SAAW,EAAU,YAG9B,UAAA,CACC,SAAA,CAAAzB,EAAAA,KAAC,KAAA,CAAG,UAAU,kDACZ,SAAA,CAAAD,EAAAA,IAAClB,EAAA,CAAsB,UAAU,oBAAA,CAAqB,EACrDI,EAAE,oBAAoB,CAAA,EACzB,EAEAc,EAAAA,IAAC,OAAI,UAAU,YACZ,WAAQ,IAAI,CAACL,EAAQU,IACpBL,EAAAA,IAACM,EAAAA,OAAO,IAAP,CAEC,QAAS,CAAE,EAAG,IAAK,QAAS,CAAA,EAC5B,QAAS,CAAE,EAAG,EAAG,QAAS,CAAA,EAC1B,WAAY,CAAE,MAAOD,EAAM,EAAA,EAC3B,WAAY,CAAE,MAAO,KAAM,EAAG,EAAA,EAE9B,SAAAL,EAAAA,IAACN,EAAA,CAAe,OAAAC,EAAgB,QAAQ,OAAA,CAAQ,CAAA,EAN3CU,CAAA,CAQR,CAAA,CACH,CAAA,EACF,CAEJ,CC3BO,SAASsB,GAAsB,CACpC,WAAAC,CACF,EAA+B,CAC7B,KAAM,CAAE,EAAA1C,CAAA,EAAMW,EAAAA,eAAeC,iBAAe,EAE5C,OAAI8B,EAAW,SAAW,EAAU,YAGjC,UAAA,CACC,SAAA,CAAA3B,EAAAA,KAAC,KAAA,CAAG,UAAU,kDACZ,SAAA,CAAAD,EAAAA,IAAC3B,EAAA,CAAgB,UAAU,sBAAA,CAAuB,EACjDa,EAAE,uBAAuB,CAAA,EAC5B,EAEAc,EAAAA,IAAC,OAAI,UAAU,YACZ,WAAW,IAAI,CAAC6B,EAAWxB,IAC1BL,EAAAA,IAACM,EAAAA,OAAO,IAAP,CAEC,QAAS,CAAE,EAAG,IAAK,QAAS,CAAA,EAC5B,QAAS,CAAE,EAAG,EAAG,QAAS,CAAA,EAC1B,WAAY,CAAE,MAAOD,EAAM,EAAA,EAC3B,WAAY,CAAE,MAAO,KAAM,EAAG,EAAA,EAE9B,SAAAL,EAAAA,IAACN,EAAA,CAAe,OAAQmC,EAAW,QAAQ,SAAA,CAAU,CAAA,EANhDxB,CAAA,CAQR,CAAA,CACH,CAAA,EACF,CAEJ,CC/BO,SAASyB,GAAuB,CAAE,MAAAC,GAAsC,CAC7E,KAAM,CAAE,EAAA7C,CAAA,EAAMW,EAAAA,eAAeC,iBAAe,EAE5C,OAAIiC,EAAM,SAAW,EAAU,YAG5B,UAAA,CACC,SAAA,CAAA9B,EAAAA,KAAC,KAAA,CAAG,UAAU,kDACZ,SAAA,CAAAD,EAAAA,IAAC1B,EAAA,CAA2B,UAAU,sBAAA,CAAuB,EAC5DY,EAAE,wBAAwB,CAAA,EAC7B,QAEC,MAAA,CAAI,UAAU,8CACb,SAAAe,EAAAA,KAAC,MAAA,CAAI,UAAU,YACb,SAAA,CAAAD,MAAC,IAAA,CAAE,UAAU,oCACV,SAAAd,EAAE,6BAA6B,EAClC,EAEAc,EAAAA,IAAC,OAAI,UAAU,YACZ,WAAM,IAAI,CAACgC,EAAM3B,IAChBJ,EAAAA,KAACK,EAAAA,OAAO,MAAP,CAEC,QAAS,CAAE,EAAG,IAAK,QAAS,CAAA,EAC5B,QAAS,CAAE,EAAG,EAAG,QAAS,CAAA,EAC1B,WAAY,CAAE,MAAOD,EAAM,GAAA,EAC3B,UAAU,4EAEV,SAAA,CAAAL,EAAAA,IAAC,QAAA,CACC,KAAK,WACL,UAAU,gCAAA,CAAA,EAEZA,EAAAA,IAAC,OAAA,CAAK,UAAU,UAAW,SAAAgC,CAAA,CAAK,CAAA,CAAA,EAV3B3B,CAAA,CAYR,CAAA,CACH,CAAA,CAAA,CACF,CAAA,CACF,CAAA,EACF,CAEJ,CCvCO,SAAS4B,GAAmB,CACjC,YAAAC,EACA,OAAAC,CACF,EAA4B,CAC1B,KAAM,CAAE,EAAAjD,CAAA,EAAMW,EAAAA,eAAeC,iBAAe,EAE5C,MAAI,CAACoC,GAAe,CAACC,EAAe,YAGjC,UAAA,CACC,SAAA,CAAAlC,EAAAA,KAAC,KAAA,CAAG,UAAU,kDACZ,SAAA,CAAAD,EAAAA,IAACpB,EAAA,CAAa,UAAU,sBAAA,CAAuB,EAC9CM,EAAE,oBAAoB,CAAA,EACzB,QAEC,MAAA,CAAI,UAAU,6BACb,SAAAe,EAAAA,KAAC,MAAA,CAAI,UAAU,YACZ,SAAA,CAAAiC,GACCjC,EAAAA,KAAC,MAAA,CAAI,UAAU,OACb,SAAA,CAAAD,MAAC,KAAA,CAAG,UAAU,6BACX,SAAAd,EAAE,yBAAyB,EAC9B,EACAc,EAAAA,IAAC,IAAA,CAAE,UAAU,2CACV,SAAAkC,CAAA,CACH,CAAA,EACF,EAGDC,UACE,MAAA,CACC,SAAA,CAAAnC,MAAC,KAAA,CAAG,UAAU,6BACX,SAAAd,EAAE,oBAAoB,EACzB,EACAc,EAAAA,IAAC,IAAA,CAAE,UAAU,2CACV,SAAAmC,CAAA,CACH,CAAA,CAAA,CACF,CAAA,CAAA,CAEJ,CAAA,CACF,CAAA,EACF,CAEJ,CC9BA,MAAMC,EAAqB,CACzB,QAAS,CAAE,EAAG,GAAI,QAAS,CAAA,EAC3B,QAAS,CACP,EAAG,EACH,QAAS,EACT,WAAY,CAAE,SAAU,EAAA,CAAI,CAEhC,EAEMC,GAA6B,CACjC,QAAS,CACP,WAAY,CACV,gBAAiB,GAAA,CACnB,CAEJ,EAEO,SAASC,GAAe,CAC7B,SAAAC,EACA,aAAAC,EACA,iBAAAC,EAAmB,EACrB,EAAwB,CACtB,OACExC,EAAAA,KAACK,EAAAA,OAAO,IAAP,CACC,SAAU+B,GACV,QAAQ,UACR,QAAQ,UACR,UAAU,+BAGV,SAAA,CAAArC,EAAAA,IAACM,EAAAA,OAAO,IAAP,CAAW,SAAU8B,EACpB,eAACd,GAAA,CAAc,MAAOiB,EAAS,UAAA,CAAY,CAAA,CAC7C,GAGEA,EAAS,aAAeA,EAAS,2BAChCjC,SAAO,IAAP,CAAW,SAAU8B,EACpB,SAAApC,EAAAA,IAACiC,GAAA,CACC,YAAaM,EAAS,YACtB,OAAQA,EAAS,kBAAA,CAAA,EAErB,EAIDA,EAAS,aAAa,OAAS,SAC7BjC,EAAAA,OAAO,IAAP,CAAW,SAAU8B,EACpB,SAAApC,EAAAA,IAACyB,GAAA,CAAmB,QAASc,EAAS,aAAc,EACtD,EAIDA,EAAS,SAAS,OAAS,SACzBjC,EAAAA,OAAO,IAAP,CAAW,SAAU8B,EACpB,SAAApC,EAAAA,IAACE,EAAA,CAAgB,SAAUqC,EAAS,SAAU,EAChD,EAIDA,EAAS,gBAAgB,OAAS,SAChCjC,EAAAA,OAAO,IAAP,CAAW,SAAU8B,EACpB,SAAApC,EAAAA,IAAC2B,GAAA,CAAsB,WAAYY,EAAS,gBAAiB,EAC/D,EAIDA,EAAS,gBACRvC,EAAAA,IAACM,EAAAA,OAAO,IAAP,CAAW,SAAU8B,EACpB,SAAApC,EAAAA,IAACa,EAAA,CAAqB,KAAM0B,EAAS,eAAgB,EACvD,EAIDA,EAAS,iBAAiB,OAAS,SACjCjC,EAAAA,OAAO,IAAP,CAAW,SAAU8B,EACpB,SAAApC,EAAAA,IAAC8B,GAAA,CAAuB,MAAOS,EAAS,iBAAkB,EAC5D,EAIDC,GACCxC,EAAAA,IAACM,EAAAA,OAAO,IAAP,CAAW,SAAU8B,EACpB,SAAApC,EAAAA,IAACW,EAAA,CAAoB,OAAQ6B,CAAA,CAAc,CAAA,CAC7C,EAIFxC,EAAAA,IAACM,EAAAA,OAAO,IAAP,CAAW,SAAU8B,EACpB,SAAApC,EAAAA,IAACiB,EAAA,CACC,eAAgBsB,EAAS,eACzB,iBAAkBA,EAAS,iBAAA,CAAA,EAE/B,EAGCE,SACEnC,SAAO,IAAP,CAAW,SAAU8B,EACpB,SAAApC,EAAAA,IAACO,EAAA,CAAA,CAAoB,CAAA,CACvB,CAAA,CAAA,CAAA,CAIR,CCjHO,SAASmC,GAAkB,CAChC,QAAAC,EACA,QAAAC,CACF,EAA2B,CACzB,KAAM,CAAE,EAAA1D,EAAG,KAAAsB,GAASX,EAAAA,eAAeC,EAAAA,eAAe,EAC5CW,EAAOD,EAAK,SAElB,OACEP,EAAAA,KAAC,MAAA,CAAI,UAAU,oBACb,SAAA,CAAAD,MAAC,KAAA,CAAG,UAAU,sCACX,SAAAd,EAAE,cAAc,EACnB,EAGAe,EAAAA,KAAC,MAAA,CAAI,UAAU,6CACb,SAAA,CAAAD,EAAAA,IAAC,OAAI,UAAU,mBACb,SAAAC,EAAAA,KAAC,MAAA,CAAI,UAAU,qCACb,SAAA,CAAAD,EAAAA,IAAC,KAAA,CAAG,UAAU,gCACX,SAAA2C,EAAQ,mBACX,QACC,IAAA,CAAE,UAAU,UAAW,SAAAzD,EAAE,oBAAoB,CAAA,CAAE,CAAA,CAAA,CAClD,CAAA,CACF,QACC,MAAA,CAAI,UAAU,qBACb,SAAAe,EAAAA,KAAC,MAAA,CAAI,UAAU,qCACb,SAAA,CAAAD,EAAAA,IAAC,KAAA,CAAG,UAAU,kCACX,SAAA2C,EAAQ,eACX,QACC,IAAA,CAAE,UAAU,UAAW,SAAAzD,EAAE,iBAAiB,CAAA,CAAE,CAAA,CAAA,CAC/C,CAAA,CACF,QACC,MAAA,CAAI,UAAU,qBACb,SAAAe,EAAAA,KAAC,MAAA,CAAI,UAAU,qCACb,SAAA,CAAAD,EAAAA,IAAC,KAAA,CAAG,UAAU,kCACX,SAAA2C,EAAQ,sBACX,QACC,IAAA,CAAE,UAAU,UAAW,SAAAzD,EAAE,uBAAuB,CAAA,CAAE,CAAA,CAAA,CACrD,CAAA,CACF,CAAA,EACF,QAGC,MAAA,CAAI,UAAU,6BACb,SAAAe,EAAAA,KAAC,MAAA,CAAI,UAAU,qCACb,SAAA,CAAAD,MAAC,KAAA,CAAG,UAAU,sBAAuB,SAAAd,EAAE,uBAAuB,EAAE,QAC/D,IAAA,CAAE,UAAU,4BACV,SAAAA,EAAE,sBAAsB,EAC3B,EACAc,EAAAA,IAACU,EAAA,CACC,KAAM,IAAID,CAAI,sBAAsB,mBAAmB,IAAIA,CAAI,wBAAwBmC,CAAO,EAAE,CAAC,GACjG,UAAU,kBAET,WAAE,OAAO,CAAA,CAAA,CACZ,CAAA,CACF,CAAA,CACF,CAAA,EACF,CAEJ,CCnEA,MAAMC,EAAmBC,EAAAA,EAAE,OAAO,CAChC,SAAUA,EAAAA,EAAE,KAAK,CAAC,UAAW,SAAU,WAAY,QAAS,SAAS,CAAC,EACtE,SAAUA,EAAAA,EAAE,KAAK,CAAC,OAAQ,SAAU,KAAK,CAAC,EAC1C,MAAOA,EAAAA,EAAE,OAAA,EACT,YAAaA,EAAAA,EAAE,OAAA,EACf,WAAYA,EAAAA,EAAE,OAAA,CAChB,CAAC,EAEKC,GAAsBD,EAAAA,EAAE,OAAO,CACnC,mBAAoBA,EAAAA,EAAE,OAAA,EAAS,QAAA,EAC/B,cAAeA,EAAAA,EAAE,OAAA,EAAS,QAAA,EAC1B,SAAUA,EAAAA,EAAE,OAAA,EAAS,QAAA,EACrB,iBAAkBA,EAAAA,EAAE,OAAA,EACpB,SAAUA,EAAAA,EAAE,MAAMA,EAAAA,EAAE,QAAQ,CAC9B,CAAC,EAEKE,GAA4BF,EAAAA,EAAE,OAAO,CACzC,YAAaA,EAAAA,EAAE,OAAA,EAAS,QAAA,EACxB,mBAAoBA,EAAAA,EAAE,OAAA,EAAS,QAAA,EAC/B,aAAcA,EAAAA,EAAE,MAAMD,CAAgB,EACtC,SAAUC,EAAAA,EAAE,MAAMD,CAAgB,EAClC,gBAAiBC,EAAAA,EAAE,MAAMD,CAAgB,EACzC,eAAgBE,GAChB,iBAAkBD,EAAAA,EAAE,MAAMA,EAAAA,EAAE,QAAQ,EACpC,WAAYA,EAAAA,EAAE,OAAA,EACd,eAAgBA,EAAAA,EAAE,OAAA,EAClB,kBAAmBA,EAAAA,EAAE,OAAA,CACvB,CAAC,EAEKG,GAAqBH,EAAAA,EAAE,OAAO,CAClC,mBAAoBA,EAAAA,EAAE,OAAA,EACtB,eAAgBA,EAAAA,EAAE,OAAA,EAClB,sBAAuBA,EAAAA,EAAE,OAAA,CAC3B,CAAC,EAEKI,GAAiCJ,EAAAA,EAAE,OAAO,CAC9C,GAAIA,EAAAA,EAAE,OAAA,EACN,QAASA,EAAAA,EAAE,OAAA,EAAS,QAAA,EACpB,WAAYA,EAAAA,EAAE,OAAA,EACd,aAAcE,GACd,WAAYF,EAAAA,EAAE,OAAA,EACd,cAAeA,EAAAA,EAAE,OAAA,EAAS,QAAA,EAC1B,gBAAiBA,EAAAA,EAAE,QAAA,EACnB,mBAAoBA,EAAAA,EAAE,OAAA,EAAS,QAAA,EAC/B,mBAAoBA,EAAAA,EAAE,OAAA,EAAS,QAAA,EAC/B,WAAYA,EAAAA,EAAE,OAAA,EACd,WAAYA,EAAAA,EAAE,OAAA,CAChB,CAAC,EAwBKK,GAA2CL,EAAAA,EAAE,MAAM,CACvDI,GACAJ,EAAAA,EAAE,OAAO,CACP,GAAIA,EAAAA,EAAE,OAAA,EACN,cAAeG,GACf,gBAAiBH,EAAAA,EAAE,QAAQ,EAAI,CAAA,CAChC,CACH,CAAC,EAEM,MAAMM,WAA8BC,EAAAA,kBAAuD,CAA3F,aAAA,CAAA,MAAA,GAAA,SAAA,EACL,KAAS,SAAW,cAAA,CAEV,eAAgB,CACxB,OAAOF,EACT,CACF,CC9EO,MAAMG,GAAwB,CACnC,KAAM,GACN,OAAQ,EAEV","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13]}
|
|
1
|
+
{"version":3,"file":"index.js","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","../node_modules/clsx/dist/clsx.mjs","../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;","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","\"use client\";\n\nimport {\n ExclamationCircleIcon,\n ExclamationTriangleIcon,\n InformationCircleIcon,\n} from \"@heroicons/react/24/solid\";\nimport clsx from \"clsx\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { TRADE_SAFETY_NS } from \"../i18n\";\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(TRADE_SAFETY_NS);\n const Icon = severityIcon[signal.severity];\n\n return (\n <div\n className={clsx(\"card border-2 backdrop-blur-sm\", variantStyles[variant])}\n >\n <div className=\"card-body\">\n <div className=\"flex items-start gap-4\">\n <Icon className={clsx(\"mt-1 size-8 shrink-0\", iconColor[variant])} />\n\n <div className=\"flex-1\">\n <h4 className=\"card-title text-xl\">{signal.title}</h4>\n <p className=\"mt-2 text-base-content/70\">{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(\"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 { TRADE_SAFETY_NS } from \"../../i18n\";\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(TRADE_SAFETY_NS);\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(\"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\nimport { TRADE_SAFETY_NS } from \"../../i18n\";\n\nexport function CompanionCtaSection() {\n const { t, i18n } = useTranslation(TRADE_SAFETY_NS);\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(\"result.companionCta.title\")}\n </h3>\n\n <p className=\"mb-8 max-w-2xl text-xl\">\n {t(\"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(\"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\nimport { TRADE_SAFETY_NS } from \"../../i18n\";\n\ninterface ExpertAdviceSectionProps {\n advice: string;\n}\n\nexport function ExpertAdviceSection({ advice }: ExpertAdviceSectionProps) {\n const { t } = useTranslation(TRADE_SAFETY_NS);\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\">{t(\"result.expertAdvice\")}</h3>\n <p className=\"opacity-80\">{t(\"result.expertName\")}</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 { TRADE_SAFETY_NS } from \"../../i18n\";\nimport { PriceAnalysis } from \"../../types\";\n\ninterface PriceAnalysisSectionProps {\n data?: PriceAnalysis;\n}\n\nexport function PriceAnalysisSection({ data }: PriceAnalysisSectionProps) {\n const { t, i18n } = useTranslation(TRADE_SAFETY_NS);\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(\"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(\"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(\"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(\"result.priceAssessment\")}\n </h4>\n <p className=\"text-base-content/70\">{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(\"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-base-content/70\">\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\nimport { TRADE_SAFETY_NS } from \"../../i18n\";\n\ninterface RecommendationSectionProps {\n recommendation: string;\n emotionalSupport: string;\n}\n\nexport function RecommendationSection({\n recommendation,\n emotionalSupport,\n}: RecommendationSectionProps) {\n const { t } = useTranslation(TRADE_SAFETY_NS);\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(\"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-base-content/70\">\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 clsx from \"clsx\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { TRADE_SAFETY_NS } from \"../../i18n\";\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(TRADE_SAFETY_NS);\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={clsx(\"size-32\", colorClasses[risk.color])} />\n </div>\n <h2 className=\"mb-4 text-5xl font-bold\">\n {t(`result.riskLevel.${risk.level}.title`)}\n </h2>\n\n {/* μνλ κ²μ΄μ§ */}\n <div className=\"mx-auto w-64\">\n <div\n className={clsx(\"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-base-content/70\">\n {t(`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 { TRADE_SAFETY_NS } from \"../../i18n\";\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(TRADE_SAFETY_NS);\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(\"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 { TRADE_SAFETY_NS } from \"../../i18n\";\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(TRADE_SAFETY_NS);\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(\"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\nimport { TRADE_SAFETY_NS } from \"../../i18n\";\n\ninterface SafetyChecklistSectionProps {\n items: string[];\n}\n\nexport function SafetyChecklistSection({ items }: SafetyChecklistSectionProps) {\n const { t } = useTranslation(TRADE_SAFETY_NS);\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(\"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-base-content/70\">\n {t(\"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\nimport { TRADE_SAFETY_NS } from \"../../i18n\";\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(TRADE_SAFETY_NS);\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(\"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(\"result.translationTitle\")}\n </h4>\n <p className=\"whitespace-pre-wrap text-base-content/70\">\n {translation}\n </p>\n </div>\n )}\n\n {nuance && (\n <div>\n <h4 className=\"mb-2 text-lg font-semibold\">\n {t(\"result.nuanceTitle\")}\n </h4>\n <p className=\"whitespace-pre-wrap text-base-content/70\">\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 { TRADE_SAFETY_NS } from \"../i18n\";\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(TRADE_SAFETY_NS);\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(\"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\">{t(\"result.riskSignals\")}</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(\"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\">{t(\"result.safeIndicators\")}</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\">{t(\"result.signupRequired\")}</h2>\n <p className=\"mb-4 text-base-content/70\">\n {t(\"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.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\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;\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","r","e","f","n","o","clsx","variantStyles","iconColor","severityIcon","RiskSignalCard","signal","variant","t","useTranslation","TRADE_SAFETY_NS","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":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13]}
|
package/dist/index.mjs
CHANGED
|
@@ -310,7 +310,7 @@ function b(e) {
|
|
|
310
310
|
} else for (a in e) e[a] && (n && (n += " "), n += a);
|
|
311
311
|
return n;
|
|
312
312
|
}
|
|
313
|
-
function
|
|
313
|
+
function u() {
|
|
314
314
|
for (var e, r, a = 0, n = "", m = arguments.length; a < m; a++) (e = arguments[a]) && (r = b(e)) && (n && (n += " "), n += r);
|
|
315
315
|
return n;
|
|
316
316
|
}
|
|
@@ -332,20 +332,26 @@ function p({
|
|
|
332
332
|
variant: r = "error"
|
|
333
333
|
}) {
|
|
334
334
|
const { t: a } = o(d), n = K[e.severity];
|
|
335
|
-
return /* @__PURE__ */ t(
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
/* @__PURE__ */ t("
|
|
340
|
-
|
|
341
|
-
/* @__PURE__ */ i("
|
|
342
|
-
"
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
335
|
+
return /* @__PURE__ */ t(
|
|
336
|
+
"div",
|
|
337
|
+
{
|
|
338
|
+
className: u("card border-2 backdrop-blur-sm", q[r]),
|
|
339
|
+
children: /* @__PURE__ */ t("div", { className: "card-body", children: /* @__PURE__ */ i("div", { className: "flex items-start gap-4", children: [
|
|
340
|
+
/* @__PURE__ */ t(n, { className: u("mt-1 size-8 shrink-0", P[r]) }),
|
|
341
|
+
/* @__PURE__ */ i("div", { className: "flex-1", children: [
|
|
342
|
+
/* @__PURE__ */ t("h4", { className: "card-title text-xl", children: e.title }),
|
|
343
|
+
/* @__PURE__ */ t("p", { className: "mt-2 text-base-content/70", children: e.description }),
|
|
344
|
+
/* @__PURE__ */ i("div", { className: "mt-4 rounded-lg bg-base-100/50 p-4", children: [
|
|
345
|
+
/* @__PURE__ */ i("p", { className: "mb-2 text-sm font-semibold", children: [
|
|
346
|
+
"π‘ ",
|
|
347
|
+
a("result.whatToDo")
|
|
348
|
+
] }),
|
|
349
|
+
/* @__PURE__ */ t("p", { className: "text-sm", children: e.what_to_do })
|
|
350
|
+
] })
|
|
351
|
+
] })
|
|
352
|
+
] }) })
|
|
353
|
+
}
|
|
354
|
+
);
|
|
349
355
|
}
|
|
350
356
|
function Q({ cautions: e }) {
|
|
351
357
|
const { t: r } = o(d);
|
|
@@ -427,14 +433,14 @@ function G({ data: e }) {
|
|
|
427
433
|
] }),
|
|
428
434
|
/* @__PURE__ */ i("div", { className: "mt-6 rounded-lg bg-base-100 p-4", children: [
|
|
429
435
|
/* @__PURE__ */ t("h4", { className: "mb-2 text-lg font-semibold", children: r("result.priceAssessment") }),
|
|
430
|
-
/* @__PURE__ */ t("p", { className: "text-
|
|
436
|
+
/* @__PURE__ */ t("p", { className: "text-base-content/70", children: e.price_assessment })
|
|
431
437
|
] }),
|
|
432
438
|
e.warnings.length > 0 && /* @__PURE__ */ i("div", { className: "mt-4", children: [
|
|
433
439
|
/* @__PURE__ */ i("h4", { className: "mb-2 flex items-center gap-2 text-lg font-semibold text-warning", children: [
|
|
434
440
|
/* @__PURE__ */ t(g, { className: "size-6" }),
|
|
435
441
|
r("result.priceWarnings")
|
|
436
442
|
] }),
|
|
437
|
-
/* @__PURE__ */ t("ul", { className: "list-inside list-disc space-y-1", children: e.warnings.map((n, m) => /* @__PURE__ */ t("li", { className: "text-
|
|
443
|
+
/* @__PURE__ */ t("ul", { className: "list-inside list-disc space-y-1", children: e.warnings.map((n, m) => /* @__PURE__ */ t("li", { className: "text-base-content/70", children: n }, m)) })
|
|
438
444
|
] })
|
|
439
445
|
] }) })
|
|
440
446
|
] }) : null;
|
|
@@ -450,7 +456,7 @@ function J({
|
|
|
450
456
|
a("result.recommendation")
|
|
451
457
|
] }),
|
|
452
458
|
/* @__PURE__ */ t("div", { className: "card bg-base-200 shadow-xl", children: /* @__PURE__ */ i("div", { className: "card-body", children: [
|
|
453
|
-
/* @__PURE__ */ t("div", { className: "prose max-w-none", children: /* @__PURE__ */ t("p", { className: "whitespace-pre-wrap text-lg text-
|
|
459
|
+
/* @__PURE__ */ t("div", { className: "prose max-w-none", children: /* @__PURE__ */ t("p", { className: "whitespace-pre-wrap text-lg text-base-content/70", children: e }) }),
|
|
454
460
|
/* @__PURE__ */ t("div", { className: "divider" }),
|
|
455
461
|
/* @__PURE__ */ t("div", { className: "rounded-lg bg-base-100 p-4", children: /* @__PURE__ */ i("p", { className: "flex items-center gap-2 text-lg font-medium", children: [
|
|
456
462
|
/* @__PURE__ */ t(O, { className: "size-6 text-info" }),
|
|
@@ -470,12 +476,12 @@ function ee({ score: e }) {
|
|
|
470
476
|
success: "text-success"
|
|
471
477
|
};
|
|
472
478
|
return /* @__PURE__ */ t("div", { className: "hero min-h-[40vh] rounded-3xl bg-base-200", children: /* @__PURE__ */ t("div", { className: "hero-content text-center", children: /* @__PURE__ */ i("div", { children: [
|
|
473
|
-
/* @__PURE__ */ t("div", { className: "mb-4", children: /* @__PURE__ */ t(n, { className:
|
|
479
|
+
/* @__PURE__ */ t("div", { className: "mb-4", children: /* @__PURE__ */ t(n, { className: u("size-32", m[a.color]) }) }),
|
|
474
480
|
/* @__PURE__ */ t("h2", { className: "mb-4 text-5xl font-bold", children: r(`result.riskLevel.${a.level}.title`) }),
|
|
475
481
|
/* @__PURE__ */ t("div", { className: "mx-auto w-64", children: /* @__PURE__ */ t(
|
|
476
482
|
"div",
|
|
477
483
|
{
|
|
478
|
-
className:
|
|
484
|
+
className: u("radial-progress", m[a.color]),
|
|
479
485
|
style: {
|
|
480
486
|
"--value": e,
|
|
481
487
|
"--size": "12rem",
|
|
@@ -485,7 +491,7 @@ function ee({ score: e }) {
|
|
|
485
491
|
children: /* @__PURE__ */ t("span", { className: "text-5xl font-bold", children: e })
|
|
486
492
|
}
|
|
487
493
|
) }),
|
|
488
|
-
/* @__PURE__ */ t("p", { className: "mt-6 max-w-lg text-xl text-
|
|
494
|
+
/* @__PURE__ */ t("p", { className: "mt-6 max-w-lg text-xl text-base-content/70", children: r(`result.riskLevel.${a.level}.message`) })
|
|
489
495
|
] }) }) });
|
|
490
496
|
}
|
|
491
497
|
function te({ signals: e }) {
|
|
@@ -538,7 +544,7 @@ function ae({ items: e }) {
|
|
|
538
544
|
r("result.safetyChecklist")
|
|
539
545
|
] }),
|
|
540
546
|
/* @__PURE__ */ t("div", { className: "card border-2 border-primary/30 bg-base-200", children: /* @__PURE__ */ i("div", { className: "card-body", children: [
|
|
541
|
-
/* @__PURE__ */ t("p", { className: "mb-6 text-lg text-
|
|
547
|
+
/* @__PURE__ */ t("p", { className: "mb-6 text-lg text-base-content/70", children: r("result.checklistDescription") }),
|
|
542
548
|
/* @__PURE__ */ t("div", { className: "space-y-3", children: e.map((a, n) => /* @__PURE__ */ i(
|
|
543
549
|
s.label,
|
|
544
550
|
{
|
|
@@ -575,16 +581,16 @@ function ne({
|
|
|
575
581
|
/* @__PURE__ */ t("div", { className: "card bg-base-200 shadow-xl", children: /* @__PURE__ */ i("div", { className: "card-body", children: [
|
|
576
582
|
e && /* @__PURE__ */ i("div", { className: "mb-4", children: [
|
|
577
583
|
/* @__PURE__ */ t("h4", { className: "mb-2 text-lg font-semibold", children: a("result.translationTitle") }),
|
|
578
|
-
/* @__PURE__ */ t("p", { className: "whitespace-pre-wrap text-
|
|
584
|
+
/* @__PURE__ */ t("p", { className: "whitespace-pre-wrap text-base-content/70", children: e })
|
|
579
585
|
] }),
|
|
580
586
|
r && /* @__PURE__ */ i("div", { children: [
|
|
581
587
|
/* @__PURE__ */ t("h4", { className: "mb-2 text-lg font-semibold", children: a("result.nuanceTitle") }),
|
|
582
|
-
/* @__PURE__ */ t("p", { className: "whitespace-pre-wrap text-
|
|
588
|
+
/* @__PURE__ */ t("p", { className: "whitespace-pre-wrap text-base-content/70", children: r })
|
|
583
589
|
] })
|
|
584
590
|
] }) })
|
|
585
591
|
] });
|
|
586
592
|
}
|
|
587
|
-
const
|
|
593
|
+
const h = {
|
|
588
594
|
initial: { y: 40, opacity: 0 },
|
|
589
595
|
animate: {
|
|
590
596
|
y: 0,
|
|
@@ -611,28 +617,28 @@ function we({
|
|
|
611
617
|
animate: "animate",
|
|
612
618
|
className: "mx-auto max-w-5xl space-y-12",
|
|
613
619
|
children: [
|
|
614
|
-
/* @__PURE__ */ t(s.div, { variants:
|
|
615
|
-
(e.translation || e.nuance_explanation) && /* @__PURE__ */ t(s.div, { variants:
|
|
620
|
+
/* @__PURE__ */ t(s.div, { variants: h, children: /* @__PURE__ */ t(ee, { score: e.risk_score }) }),
|
|
621
|
+
(e.translation || e.nuance_explanation) && /* @__PURE__ */ t(s.div, { variants: h, children: /* @__PURE__ */ t(
|
|
616
622
|
ne,
|
|
617
623
|
{
|
|
618
624
|
translation: e.translation,
|
|
619
625
|
nuance: e.nuance_explanation
|
|
620
626
|
}
|
|
621
627
|
) }),
|
|
622
|
-
e.risk_signals.length > 0 && /* @__PURE__ */ t(s.div, { variants:
|
|
623
|
-
e.cautions.length > 0 && /* @__PURE__ */ t(s.div, { variants:
|
|
624
|
-
e.safe_indicators.length > 0 && /* @__PURE__ */ t(s.div, { variants:
|
|
625
|
-
e.price_analysis && /* @__PURE__ */ t(s.div, { variants:
|
|
626
|
-
e.safety_checklist.length > 0 && /* @__PURE__ */ t(s.div, { variants:
|
|
627
|
-
r && /* @__PURE__ */ t(s.div, { variants:
|
|
628
|
-
/* @__PURE__ */ t(s.div, { variants:
|
|
628
|
+
e.risk_signals.length > 0 && /* @__PURE__ */ t(s.div, { variants: h, children: /* @__PURE__ */ t(te, { signals: e.risk_signals }) }),
|
|
629
|
+
e.cautions.length > 0 && /* @__PURE__ */ t(s.div, { variants: h, children: /* @__PURE__ */ t(Q, { cautions: e.cautions }) }),
|
|
630
|
+
e.safe_indicators.length > 0 && /* @__PURE__ */ t(s.div, { variants: h, children: /* @__PURE__ */ t(re, { indicators: e.safe_indicators }) }),
|
|
631
|
+
e.price_analysis && /* @__PURE__ */ t(s.div, { variants: h, children: /* @__PURE__ */ t(G, { data: e.price_analysis }) }),
|
|
632
|
+
e.safety_checklist.length > 0 && /* @__PURE__ */ t(s.div, { variants: h, children: /* @__PURE__ */ t(ae, { items: e.safety_checklist }) }),
|
|
633
|
+
r && /* @__PURE__ */ t(s.div, { variants: h, children: /* @__PURE__ */ t(Y, { advice: r }) }),
|
|
634
|
+
/* @__PURE__ */ t(s.div, { variants: h, children: /* @__PURE__ */ t(
|
|
629
635
|
J,
|
|
630
636
|
{
|
|
631
637
|
recommendation: e.recommendation,
|
|
632
638
|
emotionalSupport: e.emotional_support
|
|
633
639
|
}
|
|
634
640
|
) }),
|
|
635
|
-
a && /* @__PURE__ */ t(s.div, { variants:
|
|
641
|
+
a && /* @__PURE__ */ t(s.div, { variants: h, children: /* @__PURE__ */ t(W, {}) })
|
|
636
642
|
]
|
|
637
643
|
}
|
|
638
644
|
);
|
|
@@ -660,7 +666,7 @@ function Ne({
|
|
|
660
666
|
] }),
|
|
661
667
|
/* @__PURE__ */ t("div", { className: "card bg-base-200 shadow-xl", children: /* @__PURE__ */ i("div", { className: "card-body items-center text-center", children: [
|
|
662
668
|
/* @__PURE__ */ t("h2", { className: "card-title text-2xl", children: a("result.signupRequired") }),
|
|
663
|
-
/* @__PURE__ */ t("p", { className: "mb-4 text-
|
|
669
|
+
/* @__PURE__ */ t("p", { className: "mb-4 text-base-content/70", children: a("result.signupMessage") }),
|
|
664
670
|
/* @__PURE__ */ t(
|
|
665
671
|
v,
|
|
666
672
|
{
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +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","../node_modules/clsx/dist/clsx.mjs","../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;","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","\"use client\";\n\nimport {\n ExclamationCircleIcon,\n ExclamationTriangleIcon,\n InformationCircleIcon,\n} from \"@heroicons/react/24/solid\";\nimport clsx from \"clsx\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { TRADE_SAFETY_NS } from \"../i18n\";\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(TRADE_SAFETY_NS);\n const Icon = severityIcon[signal.severity];\n\n return (\n <div className={clsx(\"card border-2 backdrop-blur-sm\", variantStyles[variant])}>\n <div className=\"card-body\">\n <div className=\"flex items-start gap-4\">\n <Icon className={clsx(\"mt-1 size-8 shrink-0\", iconColor[variant])} />\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(\"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 { TRADE_SAFETY_NS } from \"../../i18n\";\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(TRADE_SAFETY_NS);\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(\"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\nimport { TRADE_SAFETY_NS } from \"../../i18n\";\n\nexport function CompanionCtaSection() {\n const { t, i18n } = useTranslation(TRADE_SAFETY_NS);\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(\"result.companionCta.title\")}\n </h3>\n\n <p className=\"mb-8 max-w-2xl text-xl\">\n {t(\"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(\"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\nimport { TRADE_SAFETY_NS } from \"../../i18n\";\n\ninterface ExpertAdviceSectionProps {\n advice: string;\n}\n\nexport function ExpertAdviceSection({ advice }: ExpertAdviceSectionProps) {\n const { t } = useTranslation(TRADE_SAFETY_NS);\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\">{t(\"result.expertAdvice\")}</h3>\n <p className=\"opacity-80\">{t(\"result.expertName\")}</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 { TRADE_SAFETY_NS } from \"../../i18n\";\nimport { PriceAnalysis } from \"../../types\";\n\ninterface PriceAnalysisSectionProps {\n data?: PriceAnalysis;\n}\n\nexport function PriceAnalysisSection({ data }: PriceAnalysisSectionProps) {\n const { t, i18n } = useTranslation(TRADE_SAFETY_NS);\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(\"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(\"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(\"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(\"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(\"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\nimport { TRADE_SAFETY_NS } from \"../../i18n\";\n\ninterface RecommendationSectionProps {\n recommendation: string;\n emotionalSupport: string;\n}\n\nexport function RecommendationSection({\n recommendation,\n emotionalSupport,\n}: RecommendationSectionProps) {\n const { t } = useTranslation(TRADE_SAFETY_NS);\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(\"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 clsx from \"clsx\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { TRADE_SAFETY_NS } from \"../../i18n\";\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(TRADE_SAFETY_NS);\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={clsx(\"size-32\", colorClasses[risk.color])} />\n </div>\n <h2 className=\"mb-4 text-5xl font-bold\">\n {t(`result.riskLevel.${risk.level}.title`)}\n </h2>\n\n {/* μνλ κ²μ΄μ§ */}\n <div className=\"mx-auto w-64\">\n <div\n className={clsx(\"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(`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 { TRADE_SAFETY_NS } from \"../../i18n\";\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(TRADE_SAFETY_NS);\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(\"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 { TRADE_SAFETY_NS } from \"../../i18n\";\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(TRADE_SAFETY_NS);\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(\"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\nimport { TRADE_SAFETY_NS } from \"../../i18n\";\n\ninterface SafetyChecklistSectionProps {\n items: string[];\n}\n\nexport function SafetyChecklistSection({ items }: SafetyChecklistSectionProps) {\n const { t } = useTranslation(TRADE_SAFETY_NS);\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(\"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(\"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\nimport { TRADE_SAFETY_NS } from \"../../i18n\";\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(TRADE_SAFETY_NS);\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(\"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(\"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(\"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 { TRADE_SAFETY_NS } from \"../i18n\";\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(TRADE_SAFETY_NS);\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(\"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\">{t(\"result.riskSignals\")}</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(\"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\">{t(\"result.safeIndicators\")}</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\">{t(\"result.signupRequired\")}</h2>\n <p className=\"mb-4 text-neutral-content\">\n {t(\"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.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\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;\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","r","t","f","o","clsx","variantStyles","iconColor","severityIcon","RiskSignalCard","signal","variant","useTranslation","TRADE_SAFETY_NS","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":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13]}
|
|
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","../node_modules/clsx/dist/clsx.mjs","../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;","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","\"use client\";\n\nimport {\n ExclamationCircleIcon,\n ExclamationTriangleIcon,\n InformationCircleIcon,\n} from \"@heroicons/react/24/solid\";\nimport clsx from \"clsx\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { TRADE_SAFETY_NS } from \"../i18n\";\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(TRADE_SAFETY_NS);\n const Icon = severityIcon[signal.severity];\n\n return (\n <div\n className={clsx(\"card border-2 backdrop-blur-sm\", variantStyles[variant])}\n >\n <div className=\"card-body\">\n <div className=\"flex items-start gap-4\">\n <Icon className={clsx(\"mt-1 size-8 shrink-0\", iconColor[variant])} />\n\n <div className=\"flex-1\">\n <h4 className=\"card-title text-xl\">{signal.title}</h4>\n <p className=\"mt-2 text-base-content/70\">{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(\"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 { TRADE_SAFETY_NS } from \"../../i18n\";\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(TRADE_SAFETY_NS);\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(\"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\nimport { TRADE_SAFETY_NS } from \"../../i18n\";\n\nexport function CompanionCtaSection() {\n const { t, i18n } = useTranslation(TRADE_SAFETY_NS);\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(\"result.companionCta.title\")}\n </h3>\n\n <p className=\"mb-8 max-w-2xl text-xl\">\n {t(\"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(\"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\nimport { TRADE_SAFETY_NS } from \"../../i18n\";\n\ninterface ExpertAdviceSectionProps {\n advice: string;\n}\n\nexport function ExpertAdviceSection({ advice }: ExpertAdviceSectionProps) {\n const { t } = useTranslation(TRADE_SAFETY_NS);\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\">{t(\"result.expertAdvice\")}</h3>\n <p className=\"opacity-80\">{t(\"result.expertName\")}</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 { TRADE_SAFETY_NS } from \"../../i18n\";\nimport { PriceAnalysis } from \"../../types\";\n\ninterface PriceAnalysisSectionProps {\n data?: PriceAnalysis;\n}\n\nexport function PriceAnalysisSection({ data }: PriceAnalysisSectionProps) {\n const { t, i18n } = useTranslation(TRADE_SAFETY_NS);\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(\"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(\"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(\"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(\"result.priceAssessment\")}\n </h4>\n <p className=\"text-base-content/70\">{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(\"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-base-content/70\">\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\nimport { TRADE_SAFETY_NS } from \"../../i18n\";\n\ninterface RecommendationSectionProps {\n recommendation: string;\n emotionalSupport: string;\n}\n\nexport function RecommendationSection({\n recommendation,\n emotionalSupport,\n}: RecommendationSectionProps) {\n const { t } = useTranslation(TRADE_SAFETY_NS);\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(\"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-base-content/70\">\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 clsx from \"clsx\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { TRADE_SAFETY_NS } from \"../../i18n\";\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(TRADE_SAFETY_NS);\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={clsx(\"size-32\", colorClasses[risk.color])} />\n </div>\n <h2 className=\"mb-4 text-5xl font-bold\">\n {t(`result.riskLevel.${risk.level}.title`)}\n </h2>\n\n {/* μνλ κ²μ΄μ§ */}\n <div className=\"mx-auto w-64\">\n <div\n className={clsx(\"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-base-content/70\">\n {t(`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 { TRADE_SAFETY_NS } from \"../../i18n\";\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(TRADE_SAFETY_NS);\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(\"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 { TRADE_SAFETY_NS } from \"../../i18n\";\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(TRADE_SAFETY_NS);\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(\"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\nimport { TRADE_SAFETY_NS } from \"../../i18n\";\n\ninterface SafetyChecklistSectionProps {\n items: string[];\n}\n\nexport function SafetyChecklistSection({ items }: SafetyChecklistSectionProps) {\n const { t } = useTranslation(TRADE_SAFETY_NS);\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(\"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-base-content/70\">\n {t(\"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\nimport { TRADE_SAFETY_NS } from \"../../i18n\";\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(TRADE_SAFETY_NS);\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(\"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(\"result.translationTitle\")}\n </h4>\n <p className=\"whitespace-pre-wrap text-base-content/70\">\n {translation}\n </p>\n </div>\n )}\n\n {nuance && (\n <div>\n <h4 className=\"mb-2 text-lg font-semibold\">\n {t(\"result.nuanceTitle\")}\n </h4>\n <p className=\"whitespace-pre-wrap text-base-content/70\">\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 { TRADE_SAFETY_NS } from \"../i18n\";\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(TRADE_SAFETY_NS);\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(\"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\">{t(\"result.riskSignals\")}</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(\"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\">{t(\"result.safeIndicators\")}</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\">{t(\"result.signupRequired\")}</h2>\n <p className=\"mb-4 text-base-content/70\">\n {t(\"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.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\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;\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","r","t","f","o","clsx","variantStyles","iconColor","severityIcon","RiskSignalCard","signal","variant","useTranslation","TRADE_SAFETY_NS","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":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "trade-safety",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.3",
|
|
4
4
|
"description": "React components for Trade Safety - K-pop merchandise trade safety analysis",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
"node": ">=18.20.0"
|
|
59
59
|
},
|
|
60
60
|
"peerDependencies": {
|
|
61
|
-
"@aioia/core": "
|
|
61
|
+
"@aioia/core": ">=0.3.0 <0.5.0",
|
|
62
62
|
"next": "^13.0.0 || ^14.0.0",
|
|
63
63
|
"react": "^18.0.0",
|
|
64
64
|
"react-dom": "^18.0.0"
|