1import { r as reactExports, j as jsxRuntimeExports } from "./vendor-react-Bay9Y7Lb.js"; 2import { a as api } from "./index-D0Bmh-UX.js"; 3import { D as DevDebugInfo } from "./AdminShared-P_hor2hS.js"; 4import { U as UserAvatar } from "./UserAvatar-BQN4jlY-.js"; 5import { SpamConfigPanel } from "./SpamConfigTabs-Bz5cy6i6.js"; 6import { a$ as Shield, cL as RefreshCw, cc as Save, a_ as CircleCheck, d7 as Image, b0 as FileText, dM as Calendar, b2 as Upload, bc as MessageSquare, bK as ThumbsUp, cf as Activity, cI as Flag, d5 as ThumbsDown, e1 as Calculator, cl as OctagonAlert, bb as User } from "./vendor-dVNaLJx_.js"; 7import "./vendor-i18n-R-bMoYp_.js"; 8const WeightControl = ({ label, value, onChange, min = -20, max = 20, step = 0.5, icon: Icon, color }) => /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "bg-white dark:bg-zinc-800 p-4 rounded-lg border border-zinc-200 dark:border-zinc-700", children: [ 9 /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex justify-between items-center mb-2", children: [ 10 /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2", children: [
11 /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `p-1.5 rounded ${color}`, children: /* @__PURE__ */ jsxRuntimeExports.jsx(Icon, { size: 14, className: "text-white" }) }), 12 /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "text-sm font-bold text-zinc-700 dark:text-zinc-300", children: label }) 13 ] }), 14 /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: `text-sm font-mono font-bold ${value > 0 ? "text-emerald-500" : value < 0 ? "text-red-500" : "text-zinc-400"}`, children: [ 15 value > 0 ? "+" : "", 16 value 17 ] }) 18 ] }), 19 /* @__PURE__ */ jsxRuntimeExports.jsx( 20 "input", 21 { 22 type: "range", 23 min, 24 max, 25 step, 26 value, 27 onChange: (e) => onChange(parseFloat(e.target.value)), 28 className: "w-full h-2 bg-zinc-200 dark:bg-zinc-700 rounded-lg appearance-none cursor-pointer accent-indigo-600" 29 } 30 ), 31 /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex justify-between text-[10px] text-zinc-400 mt-1", children: [ 32 /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: min }), 33 /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: "0" }), 34 /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { children: [ 35 "+", 36 max 37 ] }) 38 ] }) 39] }); 40const ScoreBreakdownItem = ({ label, value, points, icon: Icon }) => /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center justify-between py-2 border-b border-zinc-100 dark:border-zinc-800 last:border-0 text-sm", children: [ 41 /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2 text-zinc-600 dark:text-zinc-400", children: [ 42 /* @__PURE__ */ jsxRuntimeExports.jsx(Icon, { size: 14 }), 43 /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: label }), 44 value !== void 0 && /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "text-xs bg-zinc-100 dark:bg-zinc-800 px-1.5 rounded text-zinc-500", children: [ 45 "x", 46 Math.round(value) 47 ] }) 48 ] }), 49 /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: `font-mono font-bold ${points > 0 ? "text-emerald-500" : points < 0 ? "text-red-500" : "text-zinc-400"}`, children: [ 50 points > 0 ? "+" : "", 51 points ? points.toFixed(1) : "0.0" 52 ] }) 53] }); 54const TrustScoreConfigPage = ({ activeRole }) => { 55 var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J; 56 const [config, setConfig] = reactExports.useState(null); 57 const [users, setUsers] = reactExports.useState([]); 58 const [selectedUser, setSelectedUser] = reactExports.useState(null); 59 const [simResult, setSimResult] = reactExports.useState(null); 60 const [isSaving, setIsSaving] = reactExports.useState(false); 61 const [isRecalculating, setIsRecalculating] = reactExports.useState(false); 62 reactExports.useEffect(() => {
63 loadData(); 64 }, []); 65 const loadData = async () => { 66 const [conf, userData] = await Promise.all([ 67 api.getTrustConfig(), 68 api.getAdminUsers({ page: 1, pageSize: 100 }) 69 ]); 70 setConfig(conf); 71 setUsers(userData.data); 72 if (userData.data.length > 0) setSelectedUser(userData.data[0]); 73 }; 74 reactExports.useEffect(() => { 75 if (selectedUser && config) { 76 const result = api.calculateUserScoreDetails(selectedUser, config); 77 setSimResult(result); 78 } 79 }, [config, selectedUser]); 80 const handleSave = async () => { 81 if (!config) return; 82 setIsSaving(true); 83 try { 84 await api.saveTrustConfig(config); 85 alert("Configuration saved successfully."); 86 } catch (e) { 87 alert("Failed to save configuration."); 88 } finally { 89 setIsSaving(false); 90 } 91 }; 92 const handleRecalculate = async () => { 93 if (!confirm("This will update trust scores for ALL users based on the current settings. Continue?")) return; 94 setIsRecalculating(true); 95 await api.recalculateAllTrustScores(); 96 await loadData(); 97 setIsRecalculating(false); 98 }; 99 const updateWeight = (key, val) => { 100 if (!config) return; 101 setConfig({ 102 ...config, 103 weights: { ...config.weights, [key]: val } 104 }); 105 }; 106 if (!config) return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "p-10 text-center text-zinc-500", children: "Loading Configuration..." }); 107 return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col h-full lg:h-full space-y-6", children: [ 108 /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex justify-between items-center bg-white dark:bg-zinc-900 p-4 rounded-xl border border-zinc-200 dark:border-zinc-800 shadow-sm shrink-0", children: [
109 /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [ 110 /* @__PURE__ */ jsxRuntimeExports.jsxs("h2", { className: "text-xl font-bold text-zinc-900 dark:text-white flex items-center gap-2", children: [ 111 /* @__PURE__ */ jsxRuntimeExports.jsx(Shield, { className: "text-indigo-500" }), 112 " Trust Score Algorithm" 113 ] }), 114 /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-sm text-zinc-500 dark:text-zinc-400", children: "Configure how user reputation is calculated." }) 115 ] }), 116 /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex gap-2", children: [ 117 /* @__PURE__ */ jsxRuntimeExports.jsxs( 118 "button", 119 { 120 onClick: handleRecalculate, 121 disabled: isRecalculating, 122 className: "flex items-center gap-2 px-4 py-2 bg-zinc-100 dark:bg-zinc-800 text-zinc-700 dark:text-zinc-300 rounded-lg text-sm font-bold hover:bg-zinc-200 dark:hover:bg-zinc-700 transition-colors disabled:opacity-50", 123 children: [
124 /* @__PURE__ */ jsxRuntimeExports.jsx(RefreshCw, { size: 16, className: isRecalculating ? "animate-spin" : "" }), 125 isRecalculating ? "Calculating..." : "Recalculate All" 126 ] 127 } 128 ), 129 /* @__PURE__ */ jsxRuntimeExports.jsxs( 130 "button", 131 { 132 onClick: handleSave, 133 disabled: isSaving, 134 className: "flex items-center gap-2 px-4 py-2 bg-indigo-600 hover:bg-indigo-700 text-white rounded-lg text-sm font-bold shadow-md shadow-indigo-500/20 disabled:opacity-50 transition-colors", 135 children: [ 136 isSaving ? /* @__PURE__ */ jsxRuntimeExports.jsx(RefreshCw, { size: 16, className: "animate-spin" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(Save, { size: 16 }), 137 isSaving ? "Saving..." : "Save Config" 138 ] 139 } 140 ) 141 ] }) 142 ] }), 143 /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex-1 flex flex-col lg:flex-row gap-6 min-h-0 lg:overflow-hidden", children: [
144 /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex-1 lg:overflow-y-auto custom-scrollbar pr-2 space-y-6", children: [ 145 /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "bg-white dark:bg-zinc-900 p-4 rounded-xl border border-zinc-200 dark:border-zinc-800", children: [ 146 /* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "text-sm font-bold uppercase text-zinc-500 mb-4", children: "Identity & Profile" }), 147 /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-4", children: [ 148 /* @__PURE__ */ jsxRuntimeExports.jsx( 149 WeightControl, 150 { 151 label: "Verified Email", 152 value: config.weights.verifiedEmail, 153 onChange: (v) => updateWeight("verifiedEmail", v), 154 min: 0, 155 max: 30, 156 step: 1, 157 icon: CircleCheck, 158 color: "bg-cyan-500" 159 } 160 ), 161 /* @__PURE__ */ jsxRuntimeExports.jsx( 162 WeightControl, 163 { 164 label: "Has Avatar", 165 value: config.weights.hasAvatar, 166 onChange: (v) => updateWeight("hasAvatar", v), 167 min: 0, 168 max: 15, 169 step: 1, 170 icon: Image, 171 color: "bg-purple-500" 172 } 173 ),
174 /* @__PURE__ */ jsxRuntimeExports.jsx( 175 WeightControl, 176 { 177 label: "Has Bio", 178 value: config.weights.hasBio, 179 onChange: (v) => updateWeight("hasBio", v), 180 min: 0, 181 max: 15, 182 step: 1, 183 icon: FileText, 184 color: "bg-pink-500" 185 } 186 ) 187 ] }) 188 ] }), 189 /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "bg-zinc-50 dark:bg-zinc-900/50 p-4 rounded-xl border border-zinc-200 dark:border-zinc-800", children: [ 190 /* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "text-sm font-bold uppercase text-zinc-500 mb-4", children: "Activity Signals" }), 191 /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [ 192 /* @__PURE__ */ jsxRuntimeExports.jsx( 193 WeightControl, 194 { 195 label: "Account Age (per day)", 196 value: config.weights.accountAgeDays, 197 onChange: (v) => updateWeight("accountAgeDays", v), 198 min: 0, 199 max: 2, 200 step: 0.01, 201 icon: Calendar, 202 color: "bg-blue-500" 203 } 204 ),
205 /* @__PURE__ */ jsxRuntimeExports.jsx( 206 WeightControl, 207 { 208 label: "MIDI Uploads", 209 value: config.weights.uploads, 210 onChange: (v) => updateWeight("uploads", v), 211 min: 0, 212 max: 50, 213 step: 1, 214 icon: Upload, 215 color: "bg-emerald-500" 216 } 217 ), 218 /* @__PURE__ */ jsxRuntimeExports.jsx( 219 WeightControl, 220 { 221 label: "Comments Made", 222 value: config.weights.comments, 223 onChange: (v) => updateWeight("comments", v), 224 min: 0, 225 max: 10, 226 step: 0.5, 227 icon: MessageSquare, 228 color: "bg-indigo-500" 229 } 230 ), 231 /* @__PURE__ */ jsxRuntimeExports.jsx( 232 WeightControl, 233 { 234 label: "Likes Received", 235 value: config.weights.likesReceived, 236 onChange: (v) => updateWeight("likesReceived", v), 237 min: 0, 238 max: 10, 239 step: 0.5, 240 icon: ThumbsUp, 241 color: "bg-pink-500" 242 } 243 ),
244 /* @__PURE__ */ jsxRuntimeExports.jsx( 245 WeightControl, 246 { 247 label: "Votes Cast", 248 value: config.weights.votesGiven, 249 onChange: (v) => updateWeight("votesGiven", v), 250 min: 0, 251 max: 5, 252 step: 0.1, 253 icon: Activity, 254 color: "bg-purple-500" 255 } 256 ) 257 ] }) 258 ] }), 259 /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "bg-red-50 dark:bg-red-900/10 p-4 rounded-xl border border-red-100 dark:border-red-900/30", children: [ 260 /* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "text-sm font-bold uppercase text-red-600 dark:text-red-400 mb-4", children: "Negative Signals" }), 261 /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [ 262 /* @__PURE__ */ jsxRuntimeExports.jsx( 263 WeightControl, 264 { 265 label: "Reports Received", 266 value: config.weights.reportsReceived, 267 onChange: (v) => updateWeight("reportsReceived", v), 268 min: -50, 269 max: 0, 270 step: 1, 271 icon: Flag, 272 color: "bg-red-500" 273 } 274 ),
275 /* @__PURE__ */ jsxRuntimeExports.jsx( 276 WeightControl, 277 { 278 label: "Dislikes Received", 279 value: config.weights.dislikesReceived, 280 onChange: (v) => updateWeight("dislikesReceived", v), 281 min: -10, 282 max: 0, 283 step: 0.5, 284 icon: ThumbsDown, 285 color: "bg-orange-500" 286 } 287 ) 288 ] }) 289 ] }), 290 /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "bg-white dark:bg-zinc-900 p-4 rounded-xl border border-zinc-200 dark:border-zinc-800", children: [ 291 /* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "text-sm font-bold uppercase text-zinc-500 mb-4", children: "System Bounds" }), 292 /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "grid grid-cols-2 gap-4", children: [ 293 /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [ 294 /* @__PURE__ */ jsxRuntimeExports.jsx("label", { className: "block text-xs font-bold text-zinc-600 dark:text-zinc-400 mb-1", children: "Base Score (New User)" }),
295 /* @__PURE__ */ jsxRuntimeExports.jsx( 296 "input", 297 { 298 type: "number", 299 value: config.baseScore, 300 onChange: (e) => setConfig({ ...config, baseScore: parseInt(e.target.value) }), 301 className: "w-full bg-zinc-100 dark:bg-zinc-800 border border-zinc-300 dark:border-zinc-700 rounded p-2 text-sm text-black dark:text-white" 302 } 303 ) 304 ] }), 305 /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [ 306 /* @__PURE__ */ jsxRuntimeExports.jsx("label", { className: "block text-xs font-bold text-zinc-600 dark:text-zinc-400 mb-1", children: "Max Score Cap" }), 307 /* @__PURE__ */ jsxRuntimeExports.jsx( 308 "input", 309 { 310 type: "number", 311 value: config.caps.maxScore, 312 onChange: (e) => setConfig({ ...config, caps: { ...config.caps, maxScore: parseInt(e.target.value) } }), 313 className: "w-full bg-zinc-100 dark:bg-zinc-800 border border-zinc-300 dark:border-zinc-700 rounded p-2 text-sm text-black dark:text-white" 314 } 315 ) 316 ] }),
317 /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [ 318 /* @__PURE__ */ jsxRuntimeExports.jsx("label", { className: "block text-xs font-bold text-zinc-600 dark:text-zinc-400 mb-1", children: "Trusted Threshold" }), 319 /* @__PURE__ */ jsxRuntimeExports.jsx( 320 "input", 321 { 322 type: "number", 323 value: config.thresholds.trustedUser, 324 onChange: (e) => setConfig({ ...config, thresholds: { ...config.thresholds, trustedUser: parseInt(e.target.value) } }), 325 className: "w-full bg-zinc-100 dark:bg-zinc-800 border border-zinc-300 dark:border-zinc-700 rounded p-2 text-sm text-black dark:text-white" 326 } 327 ) 328 ] }), 329 /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [ 330 /* @__PURE__ */ jsxRuntimeExports.jsx("label", { className: "block text-xs font-bold text-red-500 mb-1", children: "Auto-Suspend Threshold" }), 331 /* @__PURE__ */ jsxRuntimeExports.jsx( 332 "input", 333 { 334 type: "number", 335 value: config.thresholds.autoSuspend, 336 onChange: (e) => setConfig({ ...config, thresholds: { ...config.thresholds, autoSuspend: parseInt(e.target.value) } }), 337 className: "w-full bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-900/50 rounded p-2 text-sm text-red-600 font-bold" 338 } 339 ) 340 ] }) 341 ] }) 342 ] }),
343 /* @__PURE__ */ jsxRuntimeExports.jsx(DevDebugInfo, { table: "SystemSetting", keyName: "trust_config", value: config, isSuperAdmin: activeRole == null ? void 0 : activeRole.isSuperAdmin }), 344 /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "bg-white dark:bg-zinc-900 p-4 rounded-xl border border-amber-200 dark:border-amber-800/50", children: [ 345 /* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "text-sm font-bold uppercase text-amber-600 dark:text-amber-400 mb-4 flex items-center gap-2", children: "âï¸ Hamie Tribunal Configuration" }), 346 /* @__PURE__ */ jsxRuntimeExports.jsx(SpamConfigPanel, {}) 347 ] }) 348 ] }), 349 /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "w-full lg:w-80 bg-white dark:bg-zinc-900 border border-zinc-200 dark:border-zinc-800 rounded-xl flex flex-col shadow-lg shrink-0", children: [ 350 /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "p-4 border-b border-zinc-200 dark:border-zinc-800 bg-zinc-50 dark:bg-zinc-950 rounded-t-xl", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("h3", { className: "font-bold text-zinc-900 dark:text-white flex items-center gap-2", children: [
351 /* @__PURE__ */ jsxRuntimeExports.jsx(Calculator, { size: 16, className: "text-indigo-500" }), 352 " Live Simulator" 353 ] }) }), 354 /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "p-4 border-b border-zinc-200 dark:border-zinc-800", children: [ 355 /* @__PURE__ */ jsxRuntimeExports.jsx("label", { className: "block text-xs font-bold text-zinc-500 uppercase mb-2", children: "Select Target User" }), 356 /* @__PURE__ */ jsxRuntimeExports.jsx( 357 "select", 358 { 359 className: "w-full bg-zinc-100 dark:bg-zinc-800 border border-zinc-200 dark:border-zinc-700 rounded-lg p-2 text-sm outline-none text-zinc-900 dark:text-white", 360 value: (selectedUser == null ? void 0 : selectedUser.id) || "", 361 onChange: (e) => { 362 const u = users.find((user) => user.id === parseInt(e.target.value)); 363 if (u) setSelectedUser(u); 364 }, 365 children: users.map((u) => /* @__PURE__ */ jsxRuntimeExports.jsxs("option", { value: u.id, children: [ 366 u.username, 367 " (Current: ", 368 u.trustScore, 369 ")" 370 ] }, u.id)) 371 } 372 ) 373 ] }), 374 selectedUser && simResult && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex-1 overflow-y-auto p-4 flex flex-col", children: [
375 /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "text-center mb-6", children: [ 376 /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "w-16 h-16 rounded-full mx-auto mb-2 overflow-hidden border-2 border-white dark:border-zinc-700 shadow-sm", children: /* @__PURE__ */ jsxRuntimeExports.jsx(UserAvatar, { src: selectedUser.avatar, name: selectedUser.username, size: 64, className: "w-full h-full object-cover rounded-full" }) }), 377 /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-3xl font-black text-zinc-900 dark:text-white", children: simResult.total }), 378 /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-xs font-bold uppercase text-zinc-500", children: "Projected Score" }), 379 /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "mt-2 flex justify-center gap-2", children: [ 380 simResult.total >= config.thresholds.trustedUser && /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "px-2 py-0.5 bg-emerald-100 text-emerald-700 rounded text-[10px] font-bold border border-emerald-200 flex items-center gap-1", children: [
381 /* @__PURE__ */ jsxRuntimeExports.jsx(Shield, { size: 10, fill: "currentColor" }), 382 " Trusted" 383 ] }), 384 simResult.total <= config.thresholds.autoSuspend && /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "px-2 py-0.5 bg-red-100 text-red-700 rounded text-[10px] font-bold border border-red-200 flex items-center gap-1", children: [ 385 /* @__PURE__ */ jsxRuntimeExports.jsx(OctagonAlert, { size: 10 }), 386 " At Risk" 387 ] }) 388 ] }) 389 ] }), 390 /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "bg-zinc-50 dark:bg-black/20 rounded-xl p-3 border border-zinc-100 dark:border-zinc-800/50 space-y-1", children: [ 391 /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex justify-between text-xs font-bold text-zinc-500 border-b border-zinc-200 dark:border-zinc-800 pb-2 mb-2", children: [ 392 /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: "Factor" }),
393 /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: "Points" }) 394 ] }), 395 /* @__PURE__ */ jsxRuntimeExports.jsx(ScoreBreakdownItem, { label: "Base Score", value: 1, points: ((_a = simResult.breakdown) == null ? void 0 : _a.base) || 0, icon: User }), 396 ((_b = simResult.breakdown) == null ? void 0 : _b.identity) && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [ 397 /* @__PURE__ */ jsxRuntimeExports.jsx(ScoreBreakdownItem, { label: "Verified Email", points: ((_d = (_c = simResult.breakdown) == null ? void 0 : _c.identity) == null ? void 0 : _d.email) || 0, icon: CircleCheck }), 398 /* @__PURE__ */ jsxRuntimeExports.jsx(ScoreBreakdownItem, { label: "Profile Pic", points: ((_f = (_e = simResult.breakdown) == null ? void 0 : _e.identity) == null ? void 0 : _f.avatar) || 0, icon: Image }), 399 /* @__PURE__ */ jsxRuntimeExports.jsx(ScoreBreakdownItem, { label: "Bio", points: ((_h = (_g = simResult.breakdown) == null ? void 0 : _g.identity) == null ? void 0 : _h.bio) || 0, icon: FileText }) 400 ] }),
401 /* @__PURE__ */ jsxRuntimeExports.jsx(ScoreBreakdownItem, { label: "Account Age", value: (_j = (_i = simResult.breakdown) == null ? void 0 : _i.age) == null ? void 0 : _j.value, points: ((_l = (_k = simResult.breakdown) == null ? void 0 : _k.age) == null ? void 0 : _l.points) || 0, icon: Calendar }), 402 /* @__PURE__ */ jsxRuntimeExports.jsx(ScoreBreakdownItem, { label: "Uploads", value: (_n = (_m = simResult.breakdown) == null ? void 0 : _m.uploads) == null ? void 0 : _n.value, points: ((_p = (_o = simResult.breakdown) == null ? void 0 : _o.uploads) == null ? void 0 : _p.points) || 0, icon: Upload }), 403 /* @__PURE__ */ jsxRuntimeExports.jsx(ScoreBreakdownItem, { label: "Comments", value: (_r = (_q = simResult.breakdown) == null ? void 0 : _q.comments) == null ? void 0 : _r.value, points: ((_t = (_s = simResult.breakdown) == null ? void 0 : _s.comments) == null ? void 0 : _t.points) || 0, icon: MessageSquare }), 404 /* @__PURE__ */ jsxRuntimeExports.jsx(ScoreBreakdownItem, { label: "Likes Rec.", value: (_v = (_u = simResult.breakdown) == null ? void 0 : _u.likes) == null ? void 0 : _v.value, points: ((_x = (_w = simResult.breakdown) == null ? void 0 : _w.likes) == null ? void 0 : _x.points) || 0, icon: ThumbsUp }),
405 /* @__PURE__ */ jsxRuntimeExports.jsx(ScoreBreakdownItem, { label: "Votes", value: (_z = (_y = simResult.breakdown) == null ? void 0 : _y.votes) == null ? void 0 : _z.value, points: ((_B = (_A = simResult.breakdown) == null ? void 0 : _A.votes) == null ? void 0 : _B.points) || 0, icon: Activity }), 406 /* @__PURE__ */ jsxRuntimeExports.jsx(ScoreBreakdownItem, { label: "Reports", value: (_D = (_C = simResult.breakdown) == null ? void 0 : _C.reports) == null ? void 0 : _D.value, points: ((_F = (_E = simResult.breakdown) == null ? void 0 : _E.reports) == null ? void 0 : _F.points) || 0, icon: Flag }), 407 /* @__PURE__ */ jsxRuntimeExports.jsx(ScoreBreakdownItem, { label: "Dislikes", value: (_H = (_G = simResult.breakdown) == null ? void 0 : _G.dislikes) == null ? void 0 : _H.value, points: ((_J = (_I = simResult.breakdown) == null ? void 0 : _I.dislikes) == null ? void 0 : _J.points) || 0, icon: ThumbsDown }) 408 ] }) 409 ] }) 410 ] }) 411 ] }) 412 ] }); 413}; 414export { 415 TrustScoreConfigPage as default 416};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.