pxengine 0.1.80 → 0.1.82
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/dist/index.cjs +1257 -865
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +67 -1
- package/dist/index.d.ts +67 -1
- package/dist/index.mjs +1241 -850
- package/dist/index.mjs.map +1 -1
- package/dist/registry.json +108 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -5,7 +5,7 @@ var __export = (target, all) => {
|
|
|
5
5
|
};
|
|
6
6
|
|
|
7
7
|
// src/render/PXEngineRenderer.tsx
|
|
8
|
-
import
|
|
8
|
+
import React116 from "react";
|
|
9
9
|
|
|
10
10
|
// src/atoms/index.ts
|
|
11
11
|
var atoms_exports = {};
|
|
@@ -33628,6 +33628,7 @@ __export(molecules_exports, {
|
|
|
33628
33628
|
PriorityActionsCard: () => PriorityActionsCard,
|
|
33629
33629
|
RecommendationCard: () => RecommendationCard,
|
|
33630
33630
|
ResearchBriefCard: () => ResearchBriefCard,
|
|
33631
|
+
ResearchReportJobCard: () => ResearchReportJobCard,
|
|
33631
33632
|
RiskSignalCard: () => RiskSignalCard,
|
|
33632
33633
|
ScoreBreakdownCard: () => ScoreBreakdownCard,
|
|
33633
33634
|
SearchSpecCard: () => SearchSpecCard,
|
|
@@ -38876,8 +38877,6 @@ var PresentationJobCard = ({
|
|
|
38876
38877
|
const [copied, setCopied] = useState10(false);
|
|
38877
38878
|
const [currentSlide, setCurrentSlide] = useState10(1);
|
|
38878
38879
|
const [previewScale, setPreviewScale] = useState10(1);
|
|
38879
|
-
const [iframeReady, setIframeReady] = useState10(false);
|
|
38880
|
-
const [pendingSlide, setPendingSlide] = useState10(null);
|
|
38881
38880
|
const intervalRef = useRef5(null);
|
|
38882
38881
|
const previewRef = useRef5(null);
|
|
38883
38882
|
const iframeRef = useRef5(null);
|
|
@@ -38891,10 +38890,6 @@ var PresentationJobCard = ({
|
|
|
38891
38890
|
if (previewRef.current) ro.observe(previewRef.current);
|
|
38892
38891
|
return () => ro.disconnect();
|
|
38893
38892
|
}, [updateScale, formats.html_url]);
|
|
38894
|
-
useEffect6(() => {
|
|
38895
|
-
setIframeReady(false);
|
|
38896
|
-
setPendingSlide(null);
|
|
38897
|
-
}, [formats.html_url]);
|
|
38898
38893
|
useEffect6(() => {
|
|
38899
38894
|
const handler = (e) => {
|
|
38900
38895
|
if (e.data?.type === "slideChanged") {
|
|
@@ -38905,25 +38900,9 @@ var PresentationJobCard = ({
|
|
|
38905
38900
|
window.addEventListener("message", handler);
|
|
38906
38901
|
return () => window.removeEventListener("message", handler);
|
|
38907
38902
|
}, [slideCount]);
|
|
38908
|
-
useEffect6(() => {
|
|
38909
|
-
if (!iframeReady || pendingSlide === null) return;
|
|
38910
|
-
iframeRef.current?.contentWindow?.postMessage({ type: "goToSlide", slide: pendingSlide }, "*");
|
|
38911
|
-
setPendingSlide(null);
|
|
38912
|
-
}, [iframeReady, pendingSlide]);
|
|
38913
38903
|
const sendSlideCommand = (command) => {
|
|
38914
|
-
if (!iframeReady) return;
|
|
38915
38904
|
iframeRef.current?.contentWindow?.postMessage({ type: command }, "*");
|
|
38916
38905
|
};
|
|
38917
|
-
const goToSlide = (n) => {
|
|
38918
|
-
const total2 = slideCount || 1;
|
|
38919
|
-
const target = (n - 1 + total2) % total2 + 1;
|
|
38920
|
-
setCurrentSlide(target);
|
|
38921
|
-
if (iframeReady) {
|
|
38922
|
-
iframeRef.current?.contentWindow?.postMessage({ type: "goToSlide", slide: target }, "*");
|
|
38923
|
-
return;
|
|
38924
|
-
}
|
|
38925
|
-
setPendingSlide(target);
|
|
38926
|
-
};
|
|
38927
38906
|
const isTerminal = status === "complete" || status === "failed";
|
|
38928
38907
|
const onCompleteRef = useRef5(onComplete);
|
|
38929
38908
|
const onFailedRef = useRef5(onFailed);
|
|
@@ -39084,7 +39063,6 @@ var PresentationJobCard = ({
|
|
|
39084
39063
|
ref: iframeRef,
|
|
39085
39064
|
src: formats.html_url,
|
|
39086
39065
|
title,
|
|
39087
|
-
onLoad: () => setIframeReady(true),
|
|
39088
39066
|
sandbox: "allow-same-origin allow-scripts",
|
|
39089
39067
|
style: {
|
|
39090
39068
|
width: 1280,
|
|
@@ -39110,7 +39088,7 @@ var PresentationJobCard = ({
|
|
|
39110
39088
|
{
|
|
39111
39089
|
onClick: (e) => {
|
|
39112
39090
|
e.stopPropagation();
|
|
39113
|
-
|
|
39091
|
+
sendSlideCommand("prevSlide");
|
|
39114
39092
|
},
|
|
39115
39093
|
disabled: !hasHtml,
|
|
39116
39094
|
className: "w-7 h-7 rounded-full border border-zinc-700 bg-zinc-800 hover:border-indigo-500 hover:text-indigo-400 text-zinc-400 flex items-center justify-center transition-colors disabled:opacity-30 disabled:cursor-not-allowed",
|
|
@@ -39128,7 +39106,7 @@ var PresentationJobCard = ({
|
|
|
39128
39106
|
{
|
|
39129
39107
|
onClick: (e) => {
|
|
39130
39108
|
e.stopPropagation();
|
|
39131
|
-
|
|
39109
|
+
sendSlideCommand("nextSlide");
|
|
39132
39110
|
},
|
|
39133
39111
|
disabled: !hasHtml,
|
|
39134
39112
|
className: "w-7 h-7 rounded-full border border-zinc-700 bg-zinc-800 hover:border-indigo-500 hover:text-indigo-400 text-zinc-400 flex items-center justify-center transition-colors disabled:opacity-30 disabled:cursor-not-allowed",
|
|
@@ -39153,11 +39131,423 @@ var PresentationJobCard = ({
|
|
|
39153
39131
|
] });
|
|
39154
39132
|
};
|
|
39155
39133
|
|
|
39134
|
+
// src/molecules/generic/ResearchReportJobCard/ResearchReportJobCard.tsx
|
|
39135
|
+
import { useCallback as useCallback5, useEffect as useEffect7, useRef as useRef6, useState as useState11 } from "react";
|
|
39136
|
+
import { Fragment as Fragment6, jsx as jsx148, jsxs as jsxs109 } from "react/jsx-runtime";
|
|
39137
|
+
var DEFAULT_THEME = {
|
|
39138
|
+
primary: "#8b5cf6",
|
|
39139
|
+
secondary: "#a78bfa",
|
|
39140
|
+
accent: "#c4b5fd"
|
|
39141
|
+
};
|
|
39142
|
+
var DownloadIcon2 = () => /* @__PURE__ */ jsxs109("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.2", strokeLinecap: "round", strokeLinejoin: "round", children: [
|
|
39143
|
+
/* @__PURE__ */ jsx148("path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }),
|
|
39144
|
+
/* @__PURE__ */ jsx148("polyline", { points: "7 10 12 15 17 10" }),
|
|
39145
|
+
/* @__PURE__ */ jsx148("line", { x1: "12", y1: "15", x2: "12", y2: "3" })
|
|
39146
|
+
] });
|
|
39147
|
+
var DocumentIcon = () => /* @__PURE__ */ jsxs109("svg", { width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
|
|
39148
|
+
/* @__PURE__ */ jsx148("path", { d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" }),
|
|
39149
|
+
/* @__PURE__ */ jsx148("polyline", { points: "14 2 14 8 20 8" }),
|
|
39150
|
+
/* @__PURE__ */ jsx148("line", { x1: "16", y1: "13", x2: "8", y2: "13" }),
|
|
39151
|
+
/* @__PURE__ */ jsx148("line", { x1: "16", y1: "17", x2: "8", y2: "17" }),
|
|
39152
|
+
/* @__PURE__ */ jsx148("line", { x1: "10", y1: "9", x2: "8", y2: "9" })
|
|
39153
|
+
] });
|
|
39154
|
+
var CloseIcon2 = () => /* @__PURE__ */ jsxs109("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.2", strokeLinecap: "round", strokeLinejoin: "round", children: [
|
|
39155
|
+
/* @__PURE__ */ jsx148("line", { x1: "18", y1: "6", x2: "6", y2: "18" }),
|
|
39156
|
+
/* @__PURE__ */ jsx148("line", { x1: "6", y1: "6", x2: "18", y2: "18" })
|
|
39157
|
+
] });
|
|
39158
|
+
var ExpandIcon2 = () => /* @__PURE__ */ jsxs109("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.2", strokeLinecap: "round", strokeLinejoin: "round", children: [
|
|
39159
|
+
/* @__PURE__ */ jsx148("polyline", { points: "15 3 21 3 21 9" }),
|
|
39160
|
+
/* @__PURE__ */ jsx148("polyline", { points: "9 21 3 21 3 15" }),
|
|
39161
|
+
/* @__PURE__ */ jsx148("line", { x1: "21", y1: "3", x2: "14", y2: "10" }),
|
|
39162
|
+
/* @__PURE__ */ jsx148("line", { x1: "3", y1: "21", x2: "10", y2: "14" })
|
|
39163
|
+
] });
|
|
39164
|
+
var FORMATS2 = [
|
|
39165
|
+
{
|
|
39166
|
+
key: "pdf_url",
|
|
39167
|
+
label: "PDF",
|
|
39168
|
+
ext: ".pdf",
|
|
39169
|
+
emoji: "\u{1F4C4}",
|
|
39170
|
+
desc: "Professional formatted report \u2014 open in any PDF viewer",
|
|
39171
|
+
accent: { text: "text-red-400", bg: "bg-red-500/10 border-red-500/20" }
|
|
39172
|
+
},
|
|
39173
|
+
{
|
|
39174
|
+
key: "html_url",
|
|
39175
|
+
label: "HTML",
|
|
39176
|
+
ext: ".html",
|
|
39177
|
+
emoji: "\u{1F310}",
|
|
39178
|
+
desc: "Interactive web version \u2014 open in any browser",
|
|
39179
|
+
accent: { text: "text-blue-400", bg: "bg-blue-500/10 border-blue-500/20" }
|
|
39180
|
+
}
|
|
39181
|
+
];
|
|
39182
|
+
var ExportModal2 = ({ formats, title, onClose }) => {
|
|
39183
|
+
const available = FORMATS2.filter((f) => formats[f.key]);
|
|
39184
|
+
const filename = title.replace(/[^a-z0-9]/gi, "-").toLowerCase();
|
|
39185
|
+
const [downloadingKey, setDownloadingKey] = useState11(null);
|
|
39186
|
+
const handleDownload = async (fmtKey, url, ext) => {
|
|
39187
|
+
if (downloadingKey) return;
|
|
39188
|
+
const downloadName = `${filename}${ext}`;
|
|
39189
|
+
const href = `/api/download?url=${encodeURIComponent(url)}&filename=${encodeURIComponent(downloadName)}`;
|
|
39190
|
+
try {
|
|
39191
|
+
setDownloadingKey(fmtKey);
|
|
39192
|
+
const response = await fetch(href);
|
|
39193
|
+
if (!response.ok) throw new Error(`status ${response.status}`);
|
|
39194
|
+
const blob = await response.blob();
|
|
39195
|
+
const objectUrl = window.URL.createObjectURL(blob);
|
|
39196
|
+
const anchor = document.createElement("a");
|
|
39197
|
+
anchor.href = objectUrl;
|
|
39198
|
+
anchor.download = downloadName;
|
|
39199
|
+
document.body.appendChild(anchor);
|
|
39200
|
+
anchor.click();
|
|
39201
|
+
anchor.remove();
|
|
39202
|
+
window.URL.revokeObjectURL(objectUrl);
|
|
39203
|
+
} catch {
|
|
39204
|
+
window.open(href, "_blank", "noopener,noreferrer");
|
|
39205
|
+
} finally {
|
|
39206
|
+
setDownloadingKey(null);
|
|
39207
|
+
}
|
|
39208
|
+
};
|
|
39209
|
+
return /* @__PURE__ */ jsxs109("div", { className: "fixed inset-0 z-50 flex items-center justify-center p-4", children: [
|
|
39210
|
+
/* @__PURE__ */ jsx148("div", { className: "absolute inset-0 bg-black/70 backdrop-blur-sm", onClick: onClose }),
|
|
39211
|
+
/* @__PURE__ */ jsxs109("div", { className: "relative z-10 bg-zinc-900 border border-zinc-800 rounded-2xl w-full max-w-sm p-6 shadow-2xl", children: [
|
|
39212
|
+
/* @__PURE__ */ jsxs109("div", { className: "flex items-start justify-between mb-5", children: [
|
|
39213
|
+
/* @__PURE__ */ jsxs109("div", { className: "min-w-0 pr-3", children: [
|
|
39214
|
+
/* @__PURE__ */ jsx148("h3", { className: "text-sm font-semibold text-zinc-100", children: "Download Report" }),
|
|
39215
|
+
/* @__PURE__ */ jsx148("p", { className: "text-xs text-zinc-500 mt-0.5 truncate", children: title })
|
|
39216
|
+
] }),
|
|
39217
|
+
/* @__PURE__ */ jsx148("button", { onClick: onClose, className: "text-zinc-500 hover:text-zinc-200 transition-colors flex-shrink-0 mt-0.5", children: /* @__PURE__ */ jsx148(CloseIcon2, {}) })
|
|
39218
|
+
] }),
|
|
39219
|
+
/* @__PURE__ */ jsxs109("div", { className: "space-y-2.5", children: [
|
|
39220
|
+
available.length === 0 && /* @__PURE__ */ jsx148("p", { className: "text-sm text-zinc-500 text-center py-6", children: "No formats available yet" }),
|
|
39221
|
+
available.map((fmt) => {
|
|
39222
|
+
const url = formats[fmt.key];
|
|
39223
|
+
const isDownloading = downloadingKey === fmt.key;
|
|
39224
|
+
return /* @__PURE__ */ jsxs109(
|
|
39225
|
+
"button",
|
|
39226
|
+
{
|
|
39227
|
+
type: "button",
|
|
39228
|
+
disabled: Boolean(downloadingKey),
|
|
39229
|
+
onClick: () => handleDownload(fmt.key, url, fmt.ext),
|
|
39230
|
+
className: cn(
|
|
39231
|
+
"flex w-full items-center gap-3.5 p-3.5 rounded-xl border transition-all text-left",
|
|
39232
|
+
"hover:brightness-110 disabled:opacity-60 disabled:cursor-not-allowed",
|
|
39233
|
+
fmt.accent.bg
|
|
39234
|
+
),
|
|
39235
|
+
children: [
|
|
39236
|
+
/* @__PURE__ */ jsx148("span", { className: "text-xl flex-shrink-0", children: fmt.emoji }),
|
|
39237
|
+
/* @__PURE__ */ jsxs109("div", { className: "flex-1 min-w-0", children: [
|
|
39238
|
+
/* @__PURE__ */ jsx148("p", { className: cn("text-sm font-semibold", fmt.accent.text), children: isDownloading ? `Downloading ${fmt.label}...` : fmt.label }),
|
|
39239
|
+
/* @__PURE__ */ jsx148("p", { className: "text-xs text-zinc-500 mt-0.5 leading-relaxed", children: isDownloading ? "Please wait while the file is being prepared." : fmt.desc })
|
|
39240
|
+
] }),
|
|
39241
|
+
/* @__PURE__ */ jsx148("span", { className: cn("flex-shrink-0", fmt.accent.text), children: /* @__PURE__ */ jsx148(DownloadIcon2, {}) })
|
|
39242
|
+
]
|
|
39243
|
+
},
|
|
39244
|
+
fmt.key
|
|
39245
|
+
);
|
|
39246
|
+
})
|
|
39247
|
+
] }),
|
|
39248
|
+
/* @__PURE__ */ jsx148("p", { className: "text-xs text-zinc-600 mt-4 text-center", children: "Download links expire in 7 days" })
|
|
39249
|
+
] })
|
|
39250
|
+
] });
|
|
39251
|
+
};
|
|
39252
|
+
var FullscreenPreviewModal = ({ url, title, onClose }) => {
|
|
39253
|
+
useEffect7(() => {
|
|
39254
|
+
const onKey = (e) => {
|
|
39255
|
+
if (e.key === "Escape") onClose();
|
|
39256
|
+
};
|
|
39257
|
+
document.addEventListener("keydown", onKey);
|
|
39258
|
+
return () => document.removeEventListener("keydown", onKey);
|
|
39259
|
+
}, [onClose]);
|
|
39260
|
+
useEffect7(() => {
|
|
39261
|
+
document.body.style.overflow = "hidden";
|
|
39262
|
+
return () => {
|
|
39263
|
+
document.body.style.overflow = "";
|
|
39264
|
+
};
|
|
39265
|
+
}, []);
|
|
39266
|
+
return /* @__PURE__ */ jsxs109("div", { className: "fixed inset-0 z-50 bg-black flex flex-col", children: [
|
|
39267
|
+
/* @__PURE__ */ jsxs109("div", { className: "flex items-center justify-between gap-4 px-4 h-11 bg-zinc-950/90 border-b border-zinc-800/60 flex-shrink-0", children: [
|
|
39268
|
+
/* @__PURE__ */ jsxs109("div", { className: "flex items-center gap-3 min-w-0", children: [
|
|
39269
|
+
/* @__PURE__ */ jsx148("span", { className: "text-violet-400 flex-shrink-0", children: /* @__PURE__ */ jsx148(DocumentIcon, {}) }),
|
|
39270
|
+
/* @__PURE__ */ jsx148("span", { className: "text-sm font-medium text-zinc-300 truncate", children: title })
|
|
39271
|
+
] }),
|
|
39272
|
+
/* @__PURE__ */ jsxs109(
|
|
39273
|
+
"button",
|
|
39274
|
+
{
|
|
39275
|
+
onClick: onClose,
|
|
39276
|
+
className: "flex items-center gap-1.5 px-3 h-7 rounded-lg border border-zinc-700 bg-zinc-800 hover:border-zinc-500 text-zinc-400 hover:text-zinc-200 text-xs transition-colors",
|
|
39277
|
+
children: [
|
|
39278
|
+
/* @__PURE__ */ jsx148(CloseIcon2, {}),
|
|
39279
|
+
/* @__PURE__ */ jsx148("span", { children: "ESC" })
|
|
39280
|
+
]
|
|
39281
|
+
}
|
|
39282
|
+
)
|
|
39283
|
+
] }),
|
|
39284
|
+
/* @__PURE__ */ jsx148("div", { className: "flex-1 relative bg-white overflow-auto", children: /* @__PURE__ */ jsx148(
|
|
39285
|
+
"iframe",
|
|
39286
|
+
{
|
|
39287
|
+
src: url,
|
|
39288
|
+
title,
|
|
39289
|
+
className: "absolute inset-0 w-full h-full border-0",
|
|
39290
|
+
sandbox: "allow-same-origin"
|
|
39291
|
+
}
|
|
39292
|
+
) })
|
|
39293
|
+
] });
|
|
39294
|
+
};
|
|
39295
|
+
var ResearchReportJobCard = ({
|
|
39296
|
+
job_id: _job_id,
|
|
39297
|
+
title: initialTitle,
|
|
39298
|
+
status: initialStatus,
|
|
39299
|
+
topic: _initialTopic,
|
|
39300
|
+
depth: initialDepth,
|
|
39301
|
+
section_count: initialSectionCount,
|
|
39302
|
+
source_count: initialSourceCount,
|
|
39303
|
+
word_count: initialWordCount,
|
|
39304
|
+
executive_summary: initialSummary,
|
|
39305
|
+
key_findings: _initialFindings,
|
|
39306
|
+
formats: initialFormats = {},
|
|
39307
|
+
theme: initialTheme,
|
|
39308
|
+
error: initialError,
|
|
39309
|
+
pollUrl,
|
|
39310
|
+
authToken,
|
|
39311
|
+
className,
|
|
39312
|
+
onComplete,
|
|
39313
|
+
onFailed
|
|
39314
|
+
}) => {
|
|
39315
|
+
const [status, setStatus] = useState11(initialStatus);
|
|
39316
|
+
const [title, setTitle] = useState11(initialTitle);
|
|
39317
|
+
const [depth, setDepth] = useState11(initialDepth || "");
|
|
39318
|
+
const [sectionCount, setSectionCount] = useState11(initialSectionCount ?? 0);
|
|
39319
|
+
const [sourceCount, setSourceCount] = useState11(initialSourceCount ?? 0);
|
|
39320
|
+
const [wordCount, setWordCount] = useState11(initialWordCount ?? 0);
|
|
39321
|
+
const [summary, setSummary] = useState11(initialSummary || "");
|
|
39322
|
+
const [formats, setFormats] = useState11(initialFormats);
|
|
39323
|
+
const [theme, setTheme] = useState11(initialTheme || DEFAULT_THEME);
|
|
39324
|
+
const [error, setError] = useState11(initialError);
|
|
39325
|
+
const [showExport, setShowExport] = useState11(false);
|
|
39326
|
+
const [showPreview, setShowPreview] = useState11(false);
|
|
39327
|
+
const [previewScale, setPreviewScale] = useState11(1);
|
|
39328
|
+
const previewRef = useRef6(null);
|
|
39329
|
+
const intervalRef = useRef6(null);
|
|
39330
|
+
const onCompleteRef = useRef6(onComplete);
|
|
39331
|
+
const onFailedRef = useRef6(onFailed);
|
|
39332
|
+
const hasNotifiedRef = useRef6(false);
|
|
39333
|
+
onCompleteRef.current = onComplete;
|
|
39334
|
+
onFailedRef.current = onFailed;
|
|
39335
|
+
const isTerminal = status === "complete" || status === "failed";
|
|
39336
|
+
const primaryColor = theme?.primary || DEFAULT_THEME.primary;
|
|
39337
|
+
const hasHTML = Boolean(formats.html_url);
|
|
39338
|
+
const updateScale = useCallback5(() => {
|
|
39339
|
+
if (previewRef.current) {
|
|
39340
|
+
setPreviewScale(previewRef.current.offsetWidth / 800);
|
|
39341
|
+
}
|
|
39342
|
+
}, []);
|
|
39343
|
+
useEffect7(() => {
|
|
39344
|
+
updateScale();
|
|
39345
|
+
if (typeof ResizeObserver === "undefined") return;
|
|
39346
|
+
const ro = new ResizeObserver(updateScale);
|
|
39347
|
+
if (previewRef.current) ro.observe(previewRef.current);
|
|
39348
|
+
return () => ro.disconnect();
|
|
39349
|
+
}, [updateScale, formats.html_url]);
|
|
39350
|
+
useEffect7(() => {
|
|
39351
|
+
if (isTerminal || !pollUrl) return;
|
|
39352
|
+
const poll = async () => {
|
|
39353
|
+
try {
|
|
39354
|
+
const headers = {};
|
|
39355
|
+
if (authToken) {
|
|
39356
|
+
headers["Authorization"] = `Bearer ${authToken}`;
|
|
39357
|
+
}
|
|
39358
|
+
const res = await fetch(pollUrl, { headers });
|
|
39359
|
+
if (!res.ok) return;
|
|
39360
|
+
const data = await res.json();
|
|
39361
|
+
const newStatus = data.status;
|
|
39362
|
+
setStatus(newStatus);
|
|
39363
|
+
if (newStatus === "complete" && data.output) {
|
|
39364
|
+
const output = data.output;
|
|
39365
|
+
setTitle(output.title || initialTitle);
|
|
39366
|
+
setDepth(output.depth || "");
|
|
39367
|
+
setSectionCount(output.section_count || 0);
|
|
39368
|
+
setSourceCount(output.source_count || 0);
|
|
39369
|
+
setWordCount(output.word_count || 0);
|
|
39370
|
+
setSummary(output.executive_summary || "");
|
|
39371
|
+
setFormats(output.formats || {});
|
|
39372
|
+
if (output.theme) {
|
|
39373
|
+
setTheme(output.theme);
|
|
39374
|
+
}
|
|
39375
|
+
if (!hasNotifiedRef.current && onCompleteRef.current) {
|
|
39376
|
+
hasNotifiedRef.current = true;
|
|
39377
|
+
onCompleteRef.current(output);
|
|
39378
|
+
}
|
|
39379
|
+
}
|
|
39380
|
+
if (newStatus === "failed") {
|
|
39381
|
+
const errorMsg = data.error || "Job failed";
|
|
39382
|
+
setError(errorMsg);
|
|
39383
|
+
if (!hasNotifiedRef.current && onFailedRef.current) {
|
|
39384
|
+
hasNotifiedRef.current = true;
|
|
39385
|
+
onFailedRef.current(errorMsg);
|
|
39386
|
+
}
|
|
39387
|
+
}
|
|
39388
|
+
} catch {
|
|
39389
|
+
}
|
|
39390
|
+
};
|
|
39391
|
+
poll();
|
|
39392
|
+
intervalRef.current = setInterval(poll, 3e3);
|
|
39393
|
+
return () => {
|
|
39394
|
+
if (intervalRef.current) clearInterval(intervalRef.current);
|
|
39395
|
+
};
|
|
39396
|
+
}, [isTerminal, pollUrl, authToken, initialTitle]);
|
|
39397
|
+
useEffect7(() => {
|
|
39398
|
+
if (isTerminal && intervalRef.current) {
|
|
39399
|
+
clearInterval(intervalRef.current);
|
|
39400
|
+
intervalRef.current = null;
|
|
39401
|
+
}
|
|
39402
|
+
}, [isTerminal]);
|
|
39403
|
+
const formatWordCount = (count) => {
|
|
39404
|
+
if (count >= 1e3) return `${(count / 1e3).toFixed(1)}k`;
|
|
39405
|
+
return count.toString();
|
|
39406
|
+
};
|
|
39407
|
+
if (status === "pending" || status === "running") {
|
|
39408
|
+
return /* @__PURE__ */ jsx148("div", { className: cn("w-full", className), children: /* @__PURE__ */ jsxs109("div", { className: "relative overflow-hidden rounded-xl border border-zinc-200/70 dark:border-zinc-800/70 bg-zinc-100 dark:bg-zinc-900 aspect-[4/3]", children: [
|
|
39409
|
+
/* @__PURE__ */ jsxs109("div", { className: "absolute inset-0 p-[8%] flex flex-col", children: [
|
|
39410
|
+
/* @__PURE__ */ jsx148("div", { className: "h-[14px] w-[55%] rounded bg-zinc-300 dark:bg-zinc-700 animate-pulse mb-4" }),
|
|
39411
|
+
/* @__PURE__ */ jsx148("div", { className: "h-[10px] w-[35%] rounded bg-zinc-200 dark:bg-zinc-800 animate-pulse mb-6", style: { animationDelay: "80ms" } }),
|
|
39412
|
+
/* @__PURE__ */ jsxs109("div", { className: "space-y-2.5 flex-1", children: [
|
|
39413
|
+
/* @__PURE__ */ jsx148("div", { className: "h-[8px] w-[90%] rounded bg-zinc-200 dark:bg-zinc-800 animate-pulse", style: { animationDelay: "160ms" } }),
|
|
39414
|
+
/* @__PURE__ */ jsx148("div", { className: "h-[8px] w-[85%] rounded bg-zinc-200 dark:bg-zinc-800 animate-pulse", style: { animationDelay: "240ms" } }),
|
|
39415
|
+
/* @__PURE__ */ jsx148("div", { className: "h-[8px] w-[75%] rounded bg-zinc-200 dark:bg-zinc-800 animate-pulse", style: { animationDelay: "320ms" } }),
|
|
39416
|
+
/* @__PURE__ */ jsx148("div", { className: "h-[8px] w-[80%] rounded bg-zinc-200 dark:bg-zinc-800 animate-pulse", style: { animationDelay: "400ms" } }),
|
|
39417
|
+
/* @__PURE__ */ jsx148("div", { className: "h-[8px] w-[60%] rounded bg-zinc-200 dark:bg-zinc-800 animate-pulse", style: { animationDelay: "480ms" } })
|
|
39418
|
+
] })
|
|
39419
|
+
] }),
|
|
39420
|
+
/* @__PURE__ */ jsx148("div", { className: "absolute inset-0 -translate-x-full animate-[shimmer_2s_ease-in-out_infinite] bg-gradient-to-r from-transparent via-white/10 to-transparent" })
|
|
39421
|
+
] }) });
|
|
39422
|
+
}
|
|
39423
|
+
if (status === "failed") {
|
|
39424
|
+
return /* @__PURE__ */ jsx148("div", { className: cn("w-full", className), children: /* @__PURE__ */ jsx148("div", { className: "bg-red-950/20 border border-red-800/25 rounded-2xl p-5", children: /* @__PURE__ */ jsxs109("div", { className: "flex items-start gap-3", children: [
|
|
39425
|
+
/* @__PURE__ */ jsx148("span", { className: "text-red-400 text-base mt-0.5 flex-shrink-0", children: "\u26A0" }),
|
|
39426
|
+
/* @__PURE__ */ jsxs109("div", { children: [
|
|
39427
|
+
/* @__PURE__ */ jsx148("p", { className: "text-sm font-semibold text-red-300", children: "Research report generation failed" }),
|
|
39428
|
+
/* @__PURE__ */ jsx148("p", { className: "text-xs text-red-400/60 mt-1 leading-relaxed", children: error || "An unexpected error occurred. Please try again." })
|
|
39429
|
+
] })
|
|
39430
|
+
] }) }) });
|
|
39431
|
+
}
|
|
39432
|
+
return /* @__PURE__ */ jsxs109(Fragment6, { children: [
|
|
39433
|
+
/* @__PURE__ */ jsx148("div", { className: cn("w-full", className), children: /* @__PURE__ */ jsxs109("div", { className: "bg-zinc-900 border border-zinc-800 rounded-2xl overflow-hidden", children: [
|
|
39434
|
+
/* @__PURE__ */ jsx148(
|
|
39435
|
+
"div",
|
|
39436
|
+
{
|
|
39437
|
+
className: "h-[3px]",
|
|
39438
|
+
style: {
|
|
39439
|
+
background: `linear-gradient(90deg, ${primaryColor}, ${theme?.secondary || "#a78bfa"}, ${theme?.accent || "#c4b5fd"})`
|
|
39440
|
+
}
|
|
39441
|
+
}
|
|
39442
|
+
),
|
|
39443
|
+
/* @__PURE__ */ jsxs109("div", { className: "p-5", children: [
|
|
39444
|
+
/* @__PURE__ */ jsxs109("div", { className: "flex items-start gap-3", children: [
|
|
39445
|
+
/* @__PURE__ */ jsx148(
|
|
39446
|
+
"div",
|
|
39447
|
+
{
|
|
39448
|
+
className: "w-10 h-10 rounded-xl flex items-center justify-center flex-shrink-0",
|
|
39449
|
+
style: {
|
|
39450
|
+
backgroundColor: `${primaryColor}15`,
|
|
39451
|
+
borderColor: `${primaryColor}30`,
|
|
39452
|
+
borderWidth: 1,
|
|
39453
|
+
color: primaryColor
|
|
39454
|
+
},
|
|
39455
|
+
children: /* @__PURE__ */ jsx148(DocumentIcon, {})
|
|
39456
|
+
}
|
|
39457
|
+
),
|
|
39458
|
+
/* @__PURE__ */ jsxs109("div", { className: "flex-1 min-w-0", children: [
|
|
39459
|
+
/* @__PURE__ */ jsx148("h3", { className: "text-sm font-semibold text-zinc-100 truncate leading-tight", children: title }),
|
|
39460
|
+
/* @__PURE__ */ jsxs109("p", { className: "text-xs text-zinc-500 mt-0.5", children: [
|
|
39461
|
+
depth && /* @__PURE__ */ jsx148("span", { className: "capitalize", children: depth }),
|
|
39462
|
+
depth && sectionCount > 0 && " \xB7 ",
|
|
39463
|
+
sectionCount > 0 && `${sectionCount} sections`,
|
|
39464
|
+
sourceCount > 0 && ` \xB7 ${sourceCount} sources`,
|
|
39465
|
+
wordCount > 0 && ` \xB7 ${formatWordCount(wordCount)} words`
|
|
39466
|
+
] })
|
|
39467
|
+
] }),
|
|
39468
|
+
/* @__PURE__ */ jsxs109("div", { className: "flex items-center gap-1.5 flex-shrink-0", children: [
|
|
39469
|
+
/* @__PURE__ */ jsxs109(
|
|
39470
|
+
"button",
|
|
39471
|
+
{
|
|
39472
|
+
onClick: () => setShowPreview(true),
|
|
39473
|
+
disabled: !hasHTML,
|
|
39474
|
+
title: "Preview report",
|
|
39475
|
+
className: "flex items-center gap-1.5 px-2.5 h-7 rounded-lg border border-zinc-700 bg-zinc-800 hover:border-zinc-500 text-zinc-400 hover:text-zinc-200 text-xs font-medium transition-colors disabled:opacity-30 disabled:cursor-not-allowed",
|
|
39476
|
+
children: [
|
|
39477
|
+
/* @__PURE__ */ jsx148(ExpandIcon2, {}),
|
|
39478
|
+
/* @__PURE__ */ jsx148("span", { children: "Preview" })
|
|
39479
|
+
]
|
|
39480
|
+
}
|
|
39481
|
+
),
|
|
39482
|
+
/* @__PURE__ */ jsxs109(
|
|
39483
|
+
"button",
|
|
39484
|
+
{
|
|
39485
|
+
onClick: () => setShowExport(true),
|
|
39486
|
+
className: "flex items-center gap-1.5 px-2.5 h-7 text-white text-xs font-medium rounded-lg transition-colors",
|
|
39487
|
+
style: { backgroundColor: primaryColor },
|
|
39488
|
+
onMouseEnter: (e) => e.currentTarget.style.filter = "brightness(1.15)",
|
|
39489
|
+
onMouseLeave: (e) => e.currentTarget.style.filter = "brightness(1)",
|
|
39490
|
+
children: [
|
|
39491
|
+
/* @__PURE__ */ jsx148(DownloadIcon2, {}),
|
|
39492
|
+
/* @__PURE__ */ jsx148("span", { children: "Export" })
|
|
39493
|
+
]
|
|
39494
|
+
}
|
|
39495
|
+
)
|
|
39496
|
+
] })
|
|
39497
|
+
] }),
|
|
39498
|
+
hasHTML && /* @__PURE__ */ jsx148("div", { className: "mt-4", children: /* @__PURE__ */ jsxs109(
|
|
39499
|
+
"div",
|
|
39500
|
+
{
|
|
39501
|
+
ref: previewRef,
|
|
39502
|
+
onClick: () => setShowPreview(true),
|
|
39503
|
+
className: "group relative overflow-hidden rounded-xl bg-white border border-zinc-800/50 cursor-pointer",
|
|
39504
|
+
style: { height: Math.round(previewScale * 400) },
|
|
39505
|
+
title: "Click to open fullscreen",
|
|
39506
|
+
children: [
|
|
39507
|
+
/* @__PURE__ */ jsx148(
|
|
39508
|
+
"iframe",
|
|
39509
|
+
{
|
|
39510
|
+
src: formats.html_url,
|
|
39511
|
+
title,
|
|
39512
|
+
sandbox: "allow-same-origin",
|
|
39513
|
+
style: {
|
|
39514
|
+
width: 800,
|
|
39515
|
+
height: 400,
|
|
39516
|
+
transform: `scale(${previewScale})`,
|
|
39517
|
+
transformOrigin: "top left",
|
|
39518
|
+
border: "none",
|
|
39519
|
+
pointerEvents: "none",
|
|
39520
|
+
display: "block"
|
|
39521
|
+
}
|
|
39522
|
+
}
|
|
39523
|
+
),
|
|
39524
|
+
/* @__PURE__ */ jsx148("div", { className: "absolute inset-0 flex items-center justify-center bg-black/0 group-hover:bg-black/30 transition-colors", children: /* @__PURE__ */ jsxs109("span", { className: "opacity-0 group-hover:opacity-100 transition-opacity flex items-center gap-2 bg-zinc-900/80 backdrop-blur-sm border border-zinc-700 rounded-lg px-3 py-1.5 text-xs text-zinc-200 font-medium", children: [
|
|
39525
|
+
/* @__PURE__ */ jsx148(ExpandIcon2, {}),
|
|
39526
|
+
"Open fullscreen"
|
|
39527
|
+
] }) })
|
|
39528
|
+
]
|
|
39529
|
+
}
|
|
39530
|
+
) }),
|
|
39531
|
+
!hasHTML && summary && /* @__PURE__ */ jsx148("div", { className: "mt-4 pt-4 border-t border-zinc-800/60", children: /* @__PURE__ */ jsx148("p", { className: "text-sm text-zinc-400 leading-relaxed line-clamp-3", children: summary }) })
|
|
39532
|
+
] })
|
|
39533
|
+
] }) }),
|
|
39534
|
+
showExport && /* @__PURE__ */ jsx148(ExportModal2, { formats, title, onClose: () => setShowExport(false) }),
|
|
39535
|
+
showPreview && hasHTML && /* @__PURE__ */ jsx148(
|
|
39536
|
+
FullscreenPreviewModal,
|
|
39537
|
+
{
|
|
39538
|
+
url: formats.html_url,
|
|
39539
|
+
title,
|
|
39540
|
+
onClose: () => setShowPreview(false)
|
|
39541
|
+
}
|
|
39542
|
+
)
|
|
39543
|
+
] });
|
|
39544
|
+
};
|
|
39545
|
+
|
|
39156
39546
|
// src/molecules/creator-discovery/CampaignSeedCard/CampaignSeedCard.tsx
|
|
39157
|
-
import
|
|
39547
|
+
import React108, { useMemo as useMemo6 } from "react";
|
|
39158
39548
|
|
|
39159
39549
|
// src/molecules/creator-discovery/SearchSpecCard/CustomFieldRenderers.tsx
|
|
39160
|
-
import { useState as
|
|
39550
|
+
import { useState as useState12, useRef as useRef7, useEffect as useEffect8, useMemo as useMemo5 } from "react";
|
|
39161
39551
|
|
|
39162
39552
|
// src/lib/countries.ts
|
|
39163
39553
|
var countries = [
|
|
@@ -39364,15 +39754,15 @@ var countriesWithFlags = Object.fromEntries(
|
|
|
39364
39754
|
);
|
|
39365
39755
|
|
|
39366
39756
|
// src/molecules/creator-discovery/SearchSpecCard/CustomFieldRenderers.tsx
|
|
39367
|
-
import { jsx as
|
|
39757
|
+
import { jsx as jsx149, jsxs as jsxs110 } from "react/jsx-runtime";
|
|
39368
39758
|
var CountrySelectEdit = ({
|
|
39369
39759
|
value,
|
|
39370
39760
|
onChange
|
|
39371
39761
|
}) => {
|
|
39372
|
-
const [isDropdownOpen, setIsDropdownOpen] =
|
|
39373
|
-
const [searchTerm, setSearchTerm] =
|
|
39374
|
-
const dropdownRef =
|
|
39375
|
-
|
|
39762
|
+
const [isDropdownOpen, setIsDropdownOpen] = useState12(false);
|
|
39763
|
+
const [searchTerm, setSearchTerm] = useState12("");
|
|
39764
|
+
const dropdownRef = useRef7(null);
|
|
39765
|
+
useEffect8(() => {
|
|
39376
39766
|
const handleClickOutside = (event) => {
|
|
39377
39767
|
if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {
|
|
39378
39768
|
setIsDropdownOpen(false);
|
|
@@ -39391,16 +39781,16 @@ var CountrySelectEdit = ({
|
|
|
39391
39781
|
}
|
|
39392
39782
|
return [];
|
|
39393
39783
|
}, [value]);
|
|
39394
|
-
return /* @__PURE__ */
|
|
39395
|
-
/* @__PURE__ */
|
|
39396
|
-
/* @__PURE__ */
|
|
39784
|
+
return /* @__PURE__ */ jsxs110("div", { className: "space-y-3", children: [
|
|
39785
|
+
/* @__PURE__ */ jsxs110("div", { className: "relative", ref: dropdownRef, children: [
|
|
39786
|
+
/* @__PURE__ */ jsxs110(
|
|
39397
39787
|
"div",
|
|
39398
39788
|
{
|
|
39399
39789
|
className: "flex-1 bg-background border border-border rounded-md px-3 py-2 text-sm cursor-pointer flex items-center justify-between font-medium hover:border-purple500 transition-colors",
|
|
39400
39790
|
onClick: () => setIsDropdownOpen(!isDropdownOpen),
|
|
39401
39791
|
children: [
|
|
39402
|
-
/* @__PURE__ */
|
|
39403
|
-
/* @__PURE__ */
|
|
39792
|
+
/* @__PURE__ */ jsx149("span", { className: "text-foreground", children: inputValue.length > 0 ? `${inputValue.length} ${inputValue.length === 1 ? "country" : "countries"} selected` : "Select countries..." }),
|
|
39793
|
+
/* @__PURE__ */ jsx149(
|
|
39404
39794
|
ChevronDown,
|
|
39405
39795
|
{
|
|
39406
39796
|
className: cn(
|
|
@@ -39412,8 +39802,8 @@ var CountrySelectEdit = ({
|
|
|
39412
39802
|
]
|
|
39413
39803
|
}
|
|
39414
39804
|
),
|
|
39415
|
-
isDropdownOpen && /* @__PURE__ */
|
|
39416
|
-
/* @__PURE__ */
|
|
39805
|
+
isDropdownOpen && /* @__PURE__ */ jsxs110("div", { className: "relative z-10 top-full left-0 right-0 mt-1 bg-background border border-border rounded-lg shadow-xl z-50 max-h-60 overflow-hidden animate-in fade-in slide-in-from-top-1", children: [
|
|
39806
|
+
/* @__PURE__ */ jsx149("div", { className: "p-2 border-b border-border", children: /* @__PURE__ */ jsx149(
|
|
39417
39807
|
"input",
|
|
39418
39808
|
{
|
|
39419
39809
|
type: "text",
|
|
@@ -39424,9 +39814,9 @@ var CountrySelectEdit = ({
|
|
|
39424
39814
|
onClick: (e) => e.stopPropagation()
|
|
39425
39815
|
}
|
|
39426
39816
|
) }),
|
|
39427
|
-
/* @__PURE__ */
|
|
39817
|
+
/* @__PURE__ */ jsx149("div", { className: "max-h-40 overflow-y-auto p-1", children: countries.filter(
|
|
39428
39818
|
(country) => country.name.toLowerCase().includes(searchTerm.toLowerCase()) || country.code.toLowerCase().includes(searchTerm.toLowerCase())
|
|
39429
|
-
).map((country) => /* @__PURE__ */
|
|
39819
|
+
).map((country) => /* @__PURE__ */ jsxs110(
|
|
39430
39820
|
"div",
|
|
39431
39821
|
{
|
|
39432
39822
|
className: cn(
|
|
@@ -39447,30 +39837,30 @@ var CountrySelectEdit = ({
|
|
|
39447
39837
|
}
|
|
39448
39838
|
},
|
|
39449
39839
|
children: [
|
|
39450
|
-
/* @__PURE__ */
|
|
39451
|
-
/* @__PURE__ */
|
|
39452
|
-
/* @__PURE__ */
|
|
39840
|
+
/* @__PURE__ */ jsxs110("div", { className: "flex items-center gap-2", children: [
|
|
39841
|
+
/* @__PURE__ */ jsx149("span", { className: "text-sm text-foreground", children: country.name }),
|
|
39842
|
+
/* @__PURE__ */ jsx149("span", { className: "text-xs text-muted-foreground font-mono", children: country.code })
|
|
39453
39843
|
] }),
|
|
39454
|
-
inputValue.includes(country.code) && /* @__PURE__ */
|
|
39844
|
+
inputValue.includes(country.code) && /* @__PURE__ */ jsx149(Check, { className: "h-4 w-4 text-purple500" })
|
|
39455
39845
|
]
|
|
39456
39846
|
},
|
|
39457
39847
|
country.code
|
|
39458
39848
|
)) })
|
|
39459
39849
|
] })
|
|
39460
39850
|
] }),
|
|
39461
|
-
inputValue.length > 0 && /* @__PURE__ */
|
|
39851
|
+
inputValue.length > 0 && /* @__PURE__ */ jsx149("div", { className: "flex flex-wrap gap-1.5", children: inputValue.map((countryCode) => /* @__PURE__ */ jsxs110(
|
|
39462
39852
|
Badge2,
|
|
39463
39853
|
{
|
|
39464
39854
|
className: "flex items-center gap-1 px-2 py-0.5 bg-grayPill border border-gray400 rounded-md text-white text-xs font-medium",
|
|
39465
39855
|
children: [
|
|
39466
39856
|
countryCode,
|
|
39467
|
-
/* @__PURE__ */
|
|
39857
|
+
/* @__PURE__ */ jsxs110(
|
|
39468
39858
|
"button",
|
|
39469
39859
|
{
|
|
39470
39860
|
onClick: () => onChange(inputValue.filter((c) => c !== countryCode)),
|
|
39471
39861
|
className: "hover:bg-purple200 rounded-full p-0.5 transition-colors",
|
|
39472
39862
|
children: [
|
|
39473
|
-
/* @__PURE__ */
|
|
39863
|
+
/* @__PURE__ */ jsx149(X, { className: "h-3 w-3" }),
|
|
39474
39864
|
" "
|
|
39475
39865
|
]
|
|
39476
39866
|
}
|
|
@@ -39488,13 +39878,13 @@ var CountrySelectDisplay = ({ value }) => {
|
|
|
39488
39878
|
return [];
|
|
39489
39879
|
}, [value]);
|
|
39490
39880
|
if (displayValues.length === 0) {
|
|
39491
|
-
return /* @__PURE__ */
|
|
39881
|
+
return /* @__PURE__ */ jsx149("span", { className: "text-muted-foreground italic text-sm", children: "Not specified" });
|
|
39492
39882
|
}
|
|
39493
|
-
return /* @__PURE__ */
|
|
39883
|
+
return /* @__PURE__ */ jsx149("div", { className: "flex flex-wrap gap-2 pt-1", children: displayValues.map((item) => {
|
|
39494
39884
|
const country = countries.find(
|
|
39495
39885
|
(c) => c.code.toLowerCase() === item.toLowerCase() || c.name.toLowerCase() === item.toLowerCase()
|
|
39496
39886
|
);
|
|
39497
|
-
return /* @__PURE__ */
|
|
39887
|
+
return /* @__PURE__ */ jsx149(
|
|
39498
39888
|
"div",
|
|
39499
39889
|
{
|
|
39500
39890
|
className: "flex items-center gap-1.5 px-2 py-0.5 bg-grayPill border border-gray400 rounded-md text-foreground text-xs font-medium",
|
|
@@ -39528,22 +39918,22 @@ var KeywordBundlesEdit = ({
|
|
|
39528
39918
|
});
|
|
39529
39919
|
});
|
|
39530
39920
|
const sortedPriorities = Object.keys(groups).map((n) => parseInt(n)).sort((a, b) => a - b);
|
|
39531
|
-
return /* @__PURE__ */
|
|
39532
|
-
/* @__PURE__ */
|
|
39533
|
-
/* @__PURE__ */
|
|
39921
|
+
return /* @__PURE__ */ jsx149("div", { className: "space-y-6 pt-2", children: sortedPriorities.map((priority) => /* @__PURE__ */ jsxs110("div", { className: "space-y-3", children: [
|
|
39922
|
+
/* @__PURE__ */ jsxs110("div", { className: "flex items-center gap-2", children: [
|
|
39923
|
+
/* @__PURE__ */ jsxs110("div", { className: "inline-block px-3 py-1 bg-purple200 hover:bg-purple200 text-purpleText text-sm font-medium rounded-md uppercase", children: [
|
|
39534
39924
|
"Priority ",
|
|
39535
39925
|
priority
|
|
39536
39926
|
] }),
|
|
39537
|
-
/* @__PURE__ */
|
|
39927
|
+
/* @__PURE__ */ jsx149("div", { className: "h-px flex-1 bg-white/10" })
|
|
39538
39928
|
] }),
|
|
39539
|
-
groups[priority].map(({ bundle, index: bundleIndex }) => /* @__PURE__ */
|
|
39929
|
+
groups[priority].map(({ bundle, index: bundleIndex }) => /* @__PURE__ */ jsx149(
|
|
39540
39930
|
"div",
|
|
39541
39931
|
{
|
|
39542
39932
|
className: "bg-gray-50/50 border border-gray-100 rounded-xl p-4 transition-all hover:bg-gray-50 hover:border-gray-200 shadow-sm",
|
|
39543
|
-
children: /* @__PURE__ */
|
|
39544
|
-
/* @__PURE__ */
|
|
39545
|
-
/* @__PURE__ */
|
|
39546
|
-
/* @__PURE__ */
|
|
39933
|
+
children: /* @__PURE__ */ jsxs110("div", { className: "flex flex-col gap-3", children: [
|
|
39934
|
+
/* @__PURE__ */ jsx149("label", { className: "text-[10px] font-bold text-gray-400 uppercase tracking-widest pl-1", children: "Keywords" }),
|
|
39935
|
+
/* @__PURE__ */ jsxs110("div", { className: "space-y-3", children: [
|
|
39936
|
+
/* @__PURE__ */ jsx149("div", { className: "flex flex-wrap gap-1.5", children: Array.isArray(bundle.keywords) && bundle.keywords.map((keyword, kIndex) => /* @__PURE__ */ jsxs110(
|
|
39547
39937
|
"div",
|
|
39548
39938
|
{
|
|
39549
39939
|
className: "flex items-center gap-1.5 px-2 py-0.5 bg-grayPill border border-gray400 rounded-md text-white text-xs font-medium hover:bg-red-900/40 hover:border-red-500 transition-all cursor-pointer group",
|
|
@@ -39560,12 +39950,12 @@ var KeywordBundlesEdit = ({
|
|
|
39560
39950
|
},
|
|
39561
39951
|
children: [
|
|
39562
39952
|
keyword,
|
|
39563
|
-
/* @__PURE__ */
|
|
39953
|
+
/* @__PURE__ */ jsx149("span", { className: "ml-1 opacity-60 group-hover:opacity-100 transition-opacity", children: "\xD7" })
|
|
39564
39954
|
]
|
|
39565
39955
|
},
|
|
39566
39956
|
kIndex
|
|
39567
39957
|
)) }),
|
|
39568
|
-
/* @__PURE__ */
|
|
39958
|
+
/* @__PURE__ */ jsx149("div", { className: "flex gap-2", children: /* @__PURE__ */ jsx149(
|
|
39569
39959
|
"input",
|
|
39570
39960
|
{
|
|
39571
39961
|
type: "text",
|
|
@@ -39589,9 +39979,9 @@ var KeywordBundlesEdit = ({
|
|
|
39589
39979
|
}
|
|
39590
39980
|
) })
|
|
39591
39981
|
] }),
|
|
39592
|
-
/* @__PURE__ */
|
|
39593
|
-
/* @__PURE__ */
|
|
39594
|
-
/* @__PURE__ */
|
|
39982
|
+
/* @__PURE__ */ jsxs110("div", { className: "flex flex-col gap-1.5 mt-1", children: [
|
|
39983
|
+
/* @__PURE__ */ jsx149("label", { className: "text-[10px] font-bold text-gray-400 uppercase tracking-widest pl-1", children: "Priority Level (1-5)" }),
|
|
39984
|
+
/* @__PURE__ */ jsx149(
|
|
39595
39985
|
"input",
|
|
39596
39986
|
{
|
|
39597
39987
|
type: "number",
|
|
@@ -39619,7 +40009,7 @@ var KeywordBundlesEdit = ({
|
|
|
39619
40009
|
var KeywordBundlesDisplay = ({ value }) => {
|
|
39620
40010
|
const bundles = Array.isArray(value) ? value : [];
|
|
39621
40011
|
if (bundles.length === 0)
|
|
39622
|
-
return /* @__PURE__ */
|
|
40012
|
+
return /* @__PURE__ */ jsx149("span", { className: "text-gray-500 italic text-sm", children: "Not specified" });
|
|
39623
40013
|
const groups = {};
|
|
39624
40014
|
bundles.forEach((b, idx) => {
|
|
39625
40015
|
const p = Number(b?.priority) || idx + 1;
|
|
@@ -39632,17 +40022,17 @@ var KeywordBundlesDisplay = ({ value }) => {
|
|
|
39632
40022
|
groups[p].push(...keywords);
|
|
39633
40023
|
});
|
|
39634
40024
|
const sortedPriorities = Object.keys(groups).map((n) => parseInt(n)).sort((a, b) => a - b);
|
|
39635
|
-
return /* @__PURE__ */
|
|
40025
|
+
return /* @__PURE__ */ jsx149("div", { className: "space-y-4 pt-2", children: sortedPriorities.map((priority) => {
|
|
39636
40026
|
const deduped = Array.from(new Set(groups[priority]));
|
|
39637
|
-
return /* @__PURE__ */
|
|
39638
|
-
/* @__PURE__ */
|
|
39639
|
-
/* @__PURE__ */
|
|
40027
|
+
return /* @__PURE__ */ jsxs110("div", { className: "space-y-3", children: [
|
|
40028
|
+
/* @__PURE__ */ jsxs110("div", { className: "flex items-center gap-2", children: [
|
|
40029
|
+
/* @__PURE__ */ jsxs110("div", { className: "inline-block px-3 py-1 bg-purple200 hover:bg-purple200 text-purpleText text-sm font-medium rounded-md uppercase", children: [
|
|
39640
40030
|
"Priority ",
|
|
39641
40031
|
priority
|
|
39642
40032
|
] }),
|
|
39643
|
-
/* @__PURE__ */
|
|
40033
|
+
/* @__PURE__ */ jsx149("div", { className: "h-px flex-1 bg-white/10" })
|
|
39644
40034
|
] }),
|
|
39645
|
-
/* @__PURE__ */
|
|
40035
|
+
/* @__PURE__ */ jsx149("div", { className: "flex flex-wrap gap-2 pt-1", children: deduped.map((keyword) => /* @__PURE__ */ jsx149(
|
|
39646
40036
|
"div",
|
|
39647
40037
|
{
|
|
39648
40038
|
className: "flex items-center gap-1.5 px-2 py-0.5 bg-grayPill border border-gray400 rounded-md text-white text-xs font-medium",
|
|
@@ -39680,12 +40070,12 @@ var PlatformSelectEdit = ({
|
|
|
39680
40070
|
const options = useMemo5(() => {
|
|
39681
40071
|
return DEFAULT_PLATFORMS;
|
|
39682
40072
|
}, []);
|
|
39683
|
-
return /* @__PURE__ */
|
|
40073
|
+
return /* @__PURE__ */ jsx149("div", { className: "flex flex-wrap gap-4 py-2", children: options.map((platform) => /* @__PURE__ */ jsxs110(
|
|
39684
40074
|
"label",
|
|
39685
40075
|
{
|
|
39686
40076
|
className: "flex items-center gap-2 cursor-pointer group",
|
|
39687
40077
|
children: [
|
|
39688
|
-
/* @__PURE__ */
|
|
40078
|
+
/* @__PURE__ */ jsx149(
|
|
39689
40079
|
"div",
|
|
39690
40080
|
{
|
|
39691
40081
|
className: cn(
|
|
@@ -39693,10 +40083,10 @@ var PlatformSelectEdit = ({
|
|
|
39693
40083
|
isSelected(platform) ? "bg-purple-600 border-purple-600" : "border-gray-300 group-hover:border-purple-400"
|
|
39694
40084
|
),
|
|
39695
40085
|
onClick: () => togglePlatform(platform),
|
|
39696
|
-
children: isSelected(platform) && /* @__PURE__ */
|
|
40086
|
+
children: isSelected(platform) && /* @__PURE__ */ jsx149(Check, { className: "h-3.5 w-3.5 text-white stroke-[3]" })
|
|
39697
40087
|
}
|
|
39698
40088
|
),
|
|
39699
|
-
/* @__PURE__ */
|
|
40089
|
+
/* @__PURE__ */ jsx149("span", { className: "text-sm font-medium text-foreground select-none", children: platform })
|
|
39700
40090
|
]
|
|
39701
40091
|
},
|
|
39702
40092
|
platform
|
|
@@ -39711,9 +40101,9 @@ var PlatformSelectDisplay = ({ value }) => {
|
|
|
39711
40101
|
return [];
|
|
39712
40102
|
}, [value]);
|
|
39713
40103
|
if (displayValues.length === 0) {
|
|
39714
|
-
return /* @__PURE__ */
|
|
40104
|
+
return /* @__PURE__ */ jsx149("span", { className: "text-muted-foreground italic text-sm", children: "Not specified" });
|
|
39715
40105
|
}
|
|
39716
|
-
return /* @__PURE__ */
|
|
40106
|
+
return /* @__PURE__ */ jsx149("div", { className: "flex flex-wrap gap-2 pt-1", children: displayValues.map((platform) => /* @__PURE__ */ jsx149(
|
|
39717
40107
|
"div",
|
|
39718
40108
|
{
|
|
39719
40109
|
className: "flex items-center gap-1.5 px-2 py-0.5 bg-grayPill border border-gray400 rounded-md text-foreground text-xs font-medium",
|
|
@@ -39724,21 +40114,21 @@ var PlatformSelectDisplay = ({ value }) => {
|
|
|
39724
40114
|
};
|
|
39725
40115
|
|
|
39726
40116
|
// src/molecules/creator-discovery/CampaignSeedCard/CampaignSeedCard.tsx
|
|
39727
|
-
import { jsx as
|
|
40117
|
+
import { jsx as jsx150, jsxs as jsxs111 } from "react/jsx-runtime";
|
|
39728
40118
|
var ObjectDisplay = ({ value }) => {
|
|
39729
40119
|
if (!value || typeof value !== "object") return null;
|
|
39730
|
-
return /* @__PURE__ */
|
|
39731
|
-
/* @__PURE__ */
|
|
40120
|
+
return /* @__PURE__ */ jsx150("div", { className: "space-y-1 pt-1", children: Object.entries(value).map(([k, v]) => /* @__PURE__ */ jsxs111("div", { className: "flex gap-2 text-sm", children: [
|
|
40121
|
+
/* @__PURE__ */ jsxs111("span", { className: "text-muted-foreground capitalize min-w-[120px]", children: [
|
|
39732
40122
|
k.replace(/_/g, " "),
|
|
39733
40123
|
":"
|
|
39734
40124
|
] }),
|
|
39735
|
-
/* @__PURE__ */
|
|
40125
|
+
/* @__PURE__ */ jsx150("span", { className: "text-foreground font-medium", children: Array.isArray(v) ? v.join(", ") : String(v) })
|
|
39736
40126
|
] }, k)) });
|
|
39737
40127
|
};
|
|
39738
40128
|
var StringArrayDisplay = ({ value }) => {
|
|
39739
40129
|
if (!Array.isArray(value) || value.length === 0)
|
|
39740
|
-
return /* @__PURE__ */
|
|
39741
|
-
return /* @__PURE__ */
|
|
40130
|
+
return /* @__PURE__ */ jsx150("span", { className: "text-muted-foreground italic text-sm", children: "Not specified" });
|
|
40131
|
+
return /* @__PURE__ */ jsx150("div", { className: "flex flex-wrap gap-2 pt-1", children: value.map((item) => /* @__PURE__ */ jsx150(
|
|
39742
40132
|
"div",
|
|
39743
40133
|
{
|
|
39744
40134
|
className: "flex items-center gap-1.5 px-2 py-0.5 bg-grayPill border border-gray400 rounded-md text-foreground text-xs font-medium",
|
|
@@ -39756,8 +40146,8 @@ function buildCampaignSeedFields(data) {
|
|
|
39756
40146
|
key,
|
|
39757
40147
|
label: "Keyword Bundles",
|
|
39758
40148
|
type: "custom",
|
|
39759
|
-
renderDisplay: (v) => /* @__PURE__ */
|
|
39760
|
-
renderEdit: (v, onChange) => /* @__PURE__ */
|
|
40149
|
+
renderDisplay: (v) => /* @__PURE__ */ jsx150(KeywordBundlesDisplay, { value: v }),
|
|
40150
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ jsx150(
|
|
39761
40151
|
Textarea,
|
|
39762
40152
|
{
|
|
39763
40153
|
value: Array.isArray(v) ? v.map((b) => `${(b.keywords || []).join(", ")} (Priority: ${b.priority || 1})`).join("\n") : String(v || ""),
|
|
@@ -39789,8 +40179,8 @@ function buildCampaignSeedFields(data) {
|
|
|
39789
40179
|
key,
|
|
39790
40180
|
label: "Geography",
|
|
39791
40181
|
type: "custom",
|
|
39792
|
-
renderDisplay: (v) => /* @__PURE__ */
|
|
39793
|
-
renderEdit: (v, onChange) => /* @__PURE__ */
|
|
40182
|
+
renderDisplay: (v) => /* @__PURE__ */ jsx150(CountrySelectDisplay, { value: v }),
|
|
40183
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ jsx150(CountrySelectEdit, { value: v, onChange })
|
|
39794
40184
|
};
|
|
39795
40185
|
}
|
|
39796
40186
|
if (key === "platforms" || key === "target_platforms" || key === "targetPlatforms") {
|
|
@@ -39798,8 +40188,8 @@ function buildCampaignSeedFields(data) {
|
|
|
39798
40188
|
key,
|
|
39799
40189
|
label: "Platforms",
|
|
39800
40190
|
type: "custom",
|
|
39801
|
-
renderDisplay: (v) => /* @__PURE__ */
|
|
39802
|
-
renderEdit: (v, onChange) => /* @__PURE__ */
|
|
40191
|
+
renderDisplay: (v) => /* @__PURE__ */ jsx150(PlatformSelectDisplay, { value: v }),
|
|
40192
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ jsx150(
|
|
39803
40193
|
PlatformSelectEdit,
|
|
39804
40194
|
{
|
|
39805
40195
|
value: v,
|
|
@@ -39814,7 +40204,7 @@ function buildCampaignSeedFields(data) {
|
|
|
39814
40204
|
key,
|
|
39815
40205
|
label,
|
|
39816
40206
|
type: "custom",
|
|
39817
|
-
renderDisplay: (v) => /* @__PURE__ */
|
|
40207
|
+
renderDisplay: (v) => /* @__PURE__ */ jsx150(StringArrayDisplay, { value: v })
|
|
39818
40208
|
};
|
|
39819
40209
|
}
|
|
39820
40210
|
if (typeof value === "object" && value !== null && !Array.isArray(value) && "min" in value && "max" in value) {
|
|
@@ -39825,9 +40215,9 @@ function buildCampaignSeedFields(data) {
|
|
|
39825
40215
|
type: "custom",
|
|
39826
40216
|
renderDisplay: (v) => {
|
|
39827
40217
|
if (typeof v === "object" && v !== null) {
|
|
39828
|
-
return /* @__PURE__ */
|
|
40218
|
+
return /* @__PURE__ */ jsx150("span", { className: "text-foreground font-medium", children: `${v.min?.toLocaleString()} - ${v.max?.toLocaleString()}` });
|
|
39829
40219
|
}
|
|
39830
|
-
return /* @__PURE__ */
|
|
40220
|
+
return /* @__PURE__ */ jsx150("span", { className: "text-foreground font-medium", children: v });
|
|
39831
40221
|
}
|
|
39832
40222
|
};
|
|
39833
40223
|
}
|
|
@@ -39837,8 +40227,8 @@ function buildCampaignSeedFields(data) {
|
|
|
39837
40227
|
key,
|
|
39838
40228
|
label,
|
|
39839
40229
|
type: "custom",
|
|
39840
|
-
renderDisplay: (v) => /* @__PURE__ */
|
|
39841
|
-
renderEdit: (v, onChange) => /* @__PURE__ */
|
|
40230
|
+
renderDisplay: (v) => /* @__PURE__ */ jsx150(ObjectDisplay, { value: v }),
|
|
40231
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ jsx150(
|
|
39842
40232
|
Textarea,
|
|
39843
40233
|
{
|
|
39844
40234
|
value: Object.entries(v || {}).map(([k, val]) => `${k.replace(/_/g, " ")}: ${val}`).join("\n"),
|
|
@@ -39863,7 +40253,7 @@ function buildCampaignSeedFields(data) {
|
|
|
39863
40253
|
return generated;
|
|
39864
40254
|
});
|
|
39865
40255
|
}
|
|
39866
|
-
var CampaignSeedCard =
|
|
40256
|
+
var CampaignSeedCard = React108.memo(
|
|
39867
40257
|
({
|
|
39868
40258
|
selectionStatus,
|
|
39869
40259
|
isLatestMessage = true,
|
|
@@ -39886,7 +40276,7 @@ var CampaignSeedCard = React107.memo(
|
|
|
39886
40276
|
});
|
|
39887
40277
|
};
|
|
39888
40278
|
const effectiveIsLatest = isLatestMessage && !hasUserResponded;
|
|
39889
|
-
return /* @__PURE__ */
|
|
40279
|
+
return /* @__PURE__ */ jsx150("div", { className: "flex flex-col gap-2", children: /* @__PURE__ */ jsx150(
|
|
39890
40280
|
FormCard,
|
|
39891
40281
|
{
|
|
39892
40282
|
...formCardProps,
|
|
@@ -39898,9 +40288,9 @@ var CampaignSeedCard = React107.memo(
|
|
|
39898
40288
|
showTimeline: true,
|
|
39899
40289
|
isLatestMessage: effectiveIsLatest,
|
|
39900
40290
|
className,
|
|
39901
|
-
footer: !effectiveIsLatest && selectionStatus ? /* @__PURE__ */
|
|
39902
|
-
/* @__PURE__ */
|
|
39903
|
-
/* @__PURE__ */
|
|
40291
|
+
footer: !effectiveIsLatest && selectionStatus ? /* @__PURE__ */ jsxs111("div", { className: "flex justify-end items-center gap-1 text-green-600 text-[10px] font-semibold py-2 pr-4", children: [
|
|
40292
|
+
/* @__PURE__ */ jsx150(CircleCheck, { className: "h-3 w-3" }),
|
|
40293
|
+
/* @__PURE__ */ jsx150("span", { children: selectionStatus === "agent" ? "Suggested by Agent" : "Selected by you" })
|
|
39904
40294
|
] }) : formCardProps.footer
|
|
39905
40295
|
}
|
|
39906
40296
|
) });
|
|
@@ -39909,22 +40299,22 @@ var CampaignSeedCard = React107.memo(
|
|
|
39909
40299
|
CampaignSeedCard.displayName = "CampaignSeedCard";
|
|
39910
40300
|
|
|
39911
40301
|
// src/molecules/creator-discovery/SearchSpecCard/SearchSpecCard.tsx
|
|
39912
|
-
import
|
|
39913
|
-
import { jsx as
|
|
40302
|
+
import React109, { useMemo as useMemo7 } from "react";
|
|
40303
|
+
import { jsx as jsx151, jsxs as jsxs112 } from "react/jsx-runtime";
|
|
39914
40304
|
var ObjectDisplay2 = ({ value }) => {
|
|
39915
40305
|
if (!value || typeof value !== "object") return null;
|
|
39916
|
-
return /* @__PURE__ */
|
|
39917
|
-
/* @__PURE__ */
|
|
40306
|
+
return /* @__PURE__ */ jsx151("div", { className: "space-y-1 pt-1", children: Object.entries(value).map(([k, v]) => /* @__PURE__ */ jsxs112("div", { className: "flex gap-2 text-sm", children: [
|
|
40307
|
+
/* @__PURE__ */ jsxs112("span", { className: "text-muted-foreground capitalize min-w-[120px]", children: [
|
|
39918
40308
|
k.replace(/_/g, " "),
|
|
39919
40309
|
":"
|
|
39920
40310
|
] }),
|
|
39921
|
-
/* @__PURE__ */
|
|
40311
|
+
/* @__PURE__ */ jsx151("span", { className: "text-foreground font-medium", children: Array.isArray(v) ? v.join(", ") : String(v) })
|
|
39922
40312
|
] }, k)) });
|
|
39923
40313
|
};
|
|
39924
40314
|
var StringArrayDisplay2 = ({ value }) => {
|
|
39925
40315
|
if (!Array.isArray(value) || value.length === 0)
|
|
39926
|
-
return /* @__PURE__ */
|
|
39927
|
-
return /* @__PURE__ */
|
|
40316
|
+
return /* @__PURE__ */ jsx151("span", { className: "text-muted-foreground italic text-sm", children: "Not specified" });
|
|
40317
|
+
return /* @__PURE__ */ jsx151("div", { className: "flex flex-wrap gap-2 pt-1", children: value.map((item) => /* @__PURE__ */ jsx151(
|
|
39928
40318
|
"div",
|
|
39929
40319
|
{
|
|
39930
40320
|
className: "flex items-center gap-2 px-3 py-1 bg-grayPill border border-foreground rounded-md text-foreground text-sm font-grotesk font-medium",
|
|
@@ -39942,8 +40332,8 @@ function buildSearchSpecFields(data) {
|
|
|
39942
40332
|
key,
|
|
39943
40333
|
label: "Keyword Bundles",
|
|
39944
40334
|
type: "custom",
|
|
39945
|
-
renderDisplay: (v) => /* @__PURE__ */
|
|
39946
|
-
renderEdit: (v, onChange) => /* @__PURE__ */
|
|
40335
|
+
renderDisplay: (v) => /* @__PURE__ */ jsx151(KeywordBundlesDisplay, { value: v }),
|
|
40336
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ jsx151(KeywordBundlesEdit, { value: v, onChange })
|
|
39947
40337
|
};
|
|
39948
40338
|
}
|
|
39949
40339
|
if (key === "geography") {
|
|
@@ -39951,8 +40341,8 @@ function buildSearchSpecFields(data) {
|
|
|
39951
40341
|
key,
|
|
39952
40342
|
label: "Geography",
|
|
39953
40343
|
type: "custom",
|
|
39954
|
-
renderDisplay: (v) => /* @__PURE__ */
|
|
39955
|
-
renderEdit: (v, onChange) => /* @__PURE__ */
|
|
40344
|
+
renderDisplay: (v) => /* @__PURE__ */ jsx151(CountrySelectDisplay, { value: v }),
|
|
40345
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ jsx151(CountrySelectEdit, { value: v, onChange })
|
|
39956
40346
|
};
|
|
39957
40347
|
}
|
|
39958
40348
|
if (key === "platforms" && Array.isArray(value)) {
|
|
@@ -39963,8 +40353,8 @@ function buildSearchSpecFields(data) {
|
|
|
39963
40353
|
config: {
|
|
39964
40354
|
options: data.platform_options || data.available_platforms || data.platforms_list || []
|
|
39965
40355
|
},
|
|
39966
|
-
renderDisplay: (v) => /* @__PURE__ */
|
|
39967
|
-
renderEdit: (v, onChange) => /* @__PURE__ */
|
|
40356
|
+
renderDisplay: (v) => /* @__PURE__ */ jsx151(PlatformSelectDisplay, { value: v }),
|
|
40357
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ jsx151(
|
|
39968
40358
|
PlatformSelectEdit,
|
|
39969
40359
|
{
|
|
39970
40360
|
value: v,
|
|
@@ -39978,8 +40368,8 @@ function buildSearchSpecFields(data) {
|
|
|
39978
40368
|
key,
|
|
39979
40369
|
label: "Exclude Keywords",
|
|
39980
40370
|
type: "custom",
|
|
39981
|
-
renderDisplay: (v) => /* @__PURE__ */
|
|
39982
|
-
renderEdit: (v, onChange) => /* @__PURE__ */
|
|
40371
|
+
renderDisplay: (v) => /* @__PURE__ */ jsx151(StringArrayDisplay2, { value: v }),
|
|
40372
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ jsx151(
|
|
39983
40373
|
Textarea,
|
|
39984
40374
|
{
|
|
39985
40375
|
value: Array.isArray(v) ? v.join(", ") : String(v || ""),
|
|
@@ -39999,8 +40389,8 @@ function buildSearchSpecFields(data) {
|
|
|
39999
40389
|
key,
|
|
40000
40390
|
label,
|
|
40001
40391
|
type: "custom",
|
|
40002
|
-
renderDisplay: (v) => /* @__PURE__ */
|
|
40003
|
-
renderEdit: (v, onChange) => /* @__PURE__ */
|
|
40392
|
+
renderDisplay: (v) => /* @__PURE__ */ jsx151(ObjectDisplay2, { value: v }),
|
|
40393
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ jsx151(
|
|
40004
40394
|
Textarea,
|
|
40005
40395
|
{
|
|
40006
40396
|
value: Object.entries(v || {}).map(([k, val]) => `${k.replace(/_/g, " ")}: ${val}`).join("\n"),
|
|
@@ -40025,7 +40415,7 @@ function buildSearchSpecFields(data) {
|
|
|
40025
40415
|
return generated;
|
|
40026
40416
|
});
|
|
40027
40417
|
}
|
|
40028
|
-
var SearchSpecCard =
|
|
40418
|
+
var SearchSpecCard = React109.memo(
|
|
40029
40419
|
({
|
|
40030
40420
|
selectionStatus,
|
|
40031
40421
|
isLatestMessage = true,
|
|
@@ -40053,7 +40443,7 @@ var SearchSpecCard = React108.memo(
|
|
|
40053
40443
|
});
|
|
40054
40444
|
};
|
|
40055
40445
|
const effectiveIsLatest = isLatestMessage && !hasUserResponded;
|
|
40056
|
-
return /* @__PURE__ */
|
|
40446
|
+
return /* @__PURE__ */ jsx151("div", { className: "flex flex-col gap-2", children: /* @__PURE__ */ jsx151(
|
|
40057
40447
|
FormCard,
|
|
40058
40448
|
{
|
|
40059
40449
|
...formCardProps,
|
|
@@ -40064,9 +40454,9 @@ var SearchSpecCard = React108.memo(
|
|
|
40064
40454
|
onProceed: handleProceed,
|
|
40065
40455
|
isLatestMessage: effectiveIsLatest,
|
|
40066
40456
|
className,
|
|
40067
|
-
footer: !effectiveIsLatest && selectionStatus ? /* @__PURE__ */
|
|
40068
|
-
/* @__PURE__ */
|
|
40069
|
-
/* @__PURE__ */
|
|
40457
|
+
footer: !effectiveIsLatest && selectionStatus ? /* @__PURE__ */ jsxs112("div", { className: "flex justify-end items-center gap-1 text-green-600 text-[10px] font-semibold py-1", children: [
|
|
40458
|
+
/* @__PURE__ */ jsx151(CircleCheck, { className: "h-3 w-3" }),
|
|
40459
|
+
/* @__PURE__ */ jsx151("span", { children: selectionStatus === "agent" ? "Selected by Agent" : "Selected by User" })
|
|
40070
40460
|
] }) : formCardProps.footer
|
|
40071
40461
|
}
|
|
40072
40462
|
) });
|
|
@@ -40075,7 +40465,7 @@ var SearchSpecCard = React108.memo(
|
|
|
40075
40465
|
SearchSpecCard.displayName = "SearchSpecCard";
|
|
40076
40466
|
|
|
40077
40467
|
// src/molecules/creator-discovery/MCQCard/MCQCard.tsx
|
|
40078
|
-
import
|
|
40468
|
+
import React110 from "react";
|
|
40079
40469
|
|
|
40080
40470
|
// src/molecules/creator-discovery/MCQCard/defaultFetchers.ts
|
|
40081
40471
|
function getBackendOrigin() {
|
|
@@ -40175,8 +40565,8 @@ async function defaultPersistSelection(sessionId, questionKey, value) {
|
|
|
40175
40565
|
}
|
|
40176
40566
|
|
|
40177
40567
|
// src/molecules/creator-discovery/MCQCard/MCQCard.tsx
|
|
40178
|
-
import { jsx as
|
|
40179
|
-
var MCQCard =
|
|
40568
|
+
import { jsx as jsx152, jsxs as jsxs113 } from "react/jsx-runtime";
|
|
40569
|
+
var MCQCard = React110.memo(
|
|
40180
40570
|
({
|
|
40181
40571
|
question,
|
|
40182
40572
|
options,
|
|
@@ -40201,16 +40591,16 @@ var MCQCard = React109.memo(
|
|
|
40201
40591
|
const resolvedOptions = options || allProps.Options || allProps.opts || {};
|
|
40202
40592
|
const resolvedRecommended = recommended || allProps.Recommended || allProps.rec;
|
|
40203
40593
|
console.log("[MCQCard] FULL PROPS:", { allProps, resolvedQuestion, resolvedOptions: Object.keys(resolvedOptions || {}), resolvedRecommended });
|
|
40204
|
-
const [selectedOption, setSelectedOption] =
|
|
40205
|
-
const [isProceeded, setIsProceeded] =
|
|
40206
|
-
const fetchedSessionRef =
|
|
40207
|
-
|
|
40594
|
+
const [selectedOption, setSelectedOption] = React110.useState(propsSelectedOption);
|
|
40595
|
+
const [isProceeded, setIsProceeded] = React110.useState(false);
|
|
40596
|
+
const fetchedSessionRef = React110.useRef("");
|
|
40597
|
+
React110.useEffect(() => {
|
|
40208
40598
|
if (propsSelectedOption) {
|
|
40209
40599
|
setSelectedOption(propsSelectedOption);
|
|
40210
40600
|
setIsProceeded(true);
|
|
40211
40601
|
}
|
|
40212
40602
|
}, [propsSelectedOption]);
|
|
40213
|
-
const buildQuestionKey =
|
|
40603
|
+
const buildQuestionKey = React110.useCallback((sid, question2) => {
|
|
40214
40604
|
let hash = 2166136261;
|
|
40215
40605
|
for (let i = 0; i < question2.length; i++) {
|
|
40216
40606
|
hash ^= question2.charCodeAt(i);
|
|
@@ -40218,7 +40608,7 @@ var MCQCard = React109.memo(
|
|
|
40218
40608
|
}
|
|
40219
40609
|
return `mcq_${sid}_${hash.toString(36)}`;
|
|
40220
40610
|
}, []);
|
|
40221
|
-
|
|
40611
|
+
React110.useEffect(() => {
|
|
40222
40612
|
if (!sessionId || !resolvedQuestion) return;
|
|
40223
40613
|
const fetchKey = `${sessionId}::${resolvedQuestion}`;
|
|
40224
40614
|
if (fetchedSessionRef.current === fetchKey) return;
|
|
@@ -40281,7 +40671,7 @@ A: ${label}`);
|
|
|
40281
40671
|
key,
|
|
40282
40672
|
typeof val === "string" ? val : typeof val === "object" && val !== null ? val.label || val.description || val.id || JSON.stringify(val) : String(val ?? "")
|
|
40283
40673
|
]) : [];
|
|
40284
|
-
return /* @__PURE__ */
|
|
40674
|
+
return /* @__PURE__ */ jsxs113(
|
|
40285
40675
|
"div",
|
|
40286
40676
|
{
|
|
40287
40677
|
className: cn(
|
|
@@ -40289,11 +40679,11 @@ A: ${label}`);
|
|
|
40289
40679
|
className
|
|
40290
40680
|
),
|
|
40291
40681
|
children: [
|
|
40292
|
-
/* @__PURE__ */
|
|
40293
|
-
/* @__PURE__ */
|
|
40682
|
+
/* @__PURE__ */ jsx152("div", { className: "mb-4", children: /* @__PURE__ */ jsx152("p", { className: "text-sm text-cardText", children: resolvedQuestion || "Select an option:" }) }),
|
|
40683
|
+
/* @__PURE__ */ jsx152("div", { className: "space-y-2.5 mb-4", children: optionsEntries.map(([key, label]) => {
|
|
40294
40684
|
const isSelected = selectedOption === key;
|
|
40295
40685
|
const isRecommended = key === recommended;
|
|
40296
|
-
return /* @__PURE__ */
|
|
40686
|
+
return /* @__PURE__ */ jsx152(
|
|
40297
40687
|
"div",
|
|
40298
40688
|
{
|
|
40299
40689
|
onClick: (e) => handleOptionClick(key, e),
|
|
@@ -40304,8 +40694,8 @@ A: ${label}`);
|
|
|
40304
40694
|
!selectedOption && !isOptionsDisabled && "hover:border-gray500",
|
|
40305
40695
|
(isLoading || isOptionsDisabled) && "opacity-50 cursor-not-allowed"
|
|
40306
40696
|
),
|
|
40307
|
-
children: /* @__PURE__ */
|
|
40308
|
-
/* @__PURE__ */
|
|
40697
|
+
children: /* @__PURE__ */ jsxs113("div", { className: "flex items-start gap-3", children: [
|
|
40698
|
+
/* @__PURE__ */ jsx152("div", { className: "mt-0.5 flex-shrink-0", children: /* @__PURE__ */ jsx152(
|
|
40309
40699
|
"div",
|
|
40310
40700
|
{
|
|
40311
40701
|
className: cn(
|
|
@@ -40315,19 +40705,19 @@ A: ${label}`);
|
|
|
40315
40705
|
!selectedOption && !isOptionsDisabled && "hover:border-gold"
|
|
40316
40706
|
)
|
|
40317
40707
|
),
|
|
40318
|
-
children: isSelected && /* @__PURE__ */
|
|
40708
|
+
children: isSelected && /* @__PURE__ */ jsx152("div", { className: "w-2 h-2 rounded-full bg-gold" })
|
|
40319
40709
|
}
|
|
40320
40710
|
) }),
|
|
40321
|
-
/* @__PURE__ */
|
|
40322
|
-
isRecommended && /* @__PURE__ */
|
|
40323
|
-
/* @__PURE__ */
|
|
40711
|
+
/* @__PURE__ */ jsxs113("div", { className: "flex-1 min-w-0", children: [
|
|
40712
|
+
isRecommended && /* @__PURE__ */ jsx152("p", { className: "text-xs font-semibold text-gold mb-1", children: "Recommended" }),
|
|
40713
|
+
/* @__PURE__ */ jsx152("p", { className: "text-sm text-cardText", children: label })
|
|
40324
40714
|
] })
|
|
40325
40715
|
] })
|
|
40326
40716
|
},
|
|
40327
40717
|
key
|
|
40328
40718
|
);
|
|
40329
40719
|
}) }),
|
|
40330
|
-
/* @__PURE__ */
|
|
40720
|
+
/* @__PURE__ */ jsx152("div", { className: "flex justify-end", children: /* @__PURE__ */ jsx152(
|
|
40331
40721
|
"button",
|
|
40332
40722
|
{
|
|
40333
40723
|
onClick: handleProceed,
|
|
@@ -40348,8 +40738,8 @@ A: ${label}`);
|
|
|
40348
40738
|
MCQCard.displayName = "MCQCard";
|
|
40349
40739
|
|
|
40350
40740
|
// src/molecules/creator-discovery/PlatformIconGroup/PlatformIconGroup.tsx
|
|
40351
|
-
import { jsx as
|
|
40352
|
-
var TikTokIcon = ({ className }) => /* @__PURE__ */
|
|
40741
|
+
import { jsx as jsx153 } from "react/jsx-runtime";
|
|
40742
|
+
var TikTokIcon = ({ className }) => /* @__PURE__ */ jsx153(Video, { className });
|
|
40353
40743
|
var PlatformIconGroup = ({
|
|
40354
40744
|
platforms,
|
|
40355
40745
|
className
|
|
@@ -40382,10 +40772,10 @@ var PlatformIconGroup = ({
|
|
|
40382
40772
|
return "text-gray-500 bg-gray-50 border-gray-100";
|
|
40383
40773
|
}
|
|
40384
40774
|
};
|
|
40385
|
-
return /* @__PURE__ */
|
|
40775
|
+
return /* @__PURE__ */ jsx153("div", { className: cn("flex gap-2", className), children: platforms.map((p, i) => {
|
|
40386
40776
|
const Icon3 = getIcon(p.platform);
|
|
40387
40777
|
if (!Icon3) return null;
|
|
40388
|
-
return /* @__PURE__ */
|
|
40778
|
+
return /* @__PURE__ */ jsx153(
|
|
40389
40779
|
"a",
|
|
40390
40780
|
{
|
|
40391
40781
|
href: p.url || "#",
|
|
@@ -40396,7 +40786,7 @@ var PlatformIconGroup = ({
|
|
|
40396
40786
|
"p-1.5 rounded-lg border transition-colors flex items-center justify-center",
|
|
40397
40787
|
getColors(p.platform)
|
|
40398
40788
|
),
|
|
40399
|
-
children: /* @__PURE__ */
|
|
40789
|
+
children: /* @__PURE__ */ jsx153(Icon3, { className: "w-4 h-4" })
|
|
40400
40790
|
},
|
|
40401
40791
|
i
|
|
40402
40792
|
);
|
|
@@ -40404,7 +40794,7 @@ var PlatformIconGroup = ({
|
|
|
40404
40794
|
};
|
|
40405
40795
|
|
|
40406
40796
|
// src/molecules/creator-discovery/CreatorProfileSummary/CreatorProfileSummary.tsx
|
|
40407
|
-
import { jsx as
|
|
40797
|
+
import { jsx as jsx154, jsxs as jsxs114 } from "react/jsx-runtime";
|
|
40408
40798
|
var CreatorProfileSummary = ({
|
|
40409
40799
|
avatarSrc,
|
|
40410
40800
|
name,
|
|
@@ -40412,7 +40802,7 @@ var CreatorProfileSummary = ({
|
|
|
40412
40802
|
engagementRate,
|
|
40413
40803
|
className
|
|
40414
40804
|
}) => {
|
|
40415
|
-
return /* @__PURE__ */
|
|
40805
|
+
return /* @__PURE__ */ jsxs114(
|
|
40416
40806
|
"div",
|
|
40417
40807
|
{
|
|
40418
40808
|
className: cn(
|
|
@@ -40420,7 +40810,7 @@ var CreatorProfileSummary = ({
|
|
|
40420
40810
|
className
|
|
40421
40811
|
),
|
|
40422
40812
|
children: [
|
|
40423
|
-
/* @__PURE__ */
|
|
40813
|
+
/* @__PURE__ */ jsx154(
|
|
40424
40814
|
AvatarAtom,
|
|
40425
40815
|
{
|
|
40426
40816
|
id: `avatar-${name}`,
|
|
@@ -40430,8 +40820,8 @@ var CreatorProfileSummary = ({
|
|
|
40430
40820
|
className: "w-12 h-12 ring-2 ring-purple-100"
|
|
40431
40821
|
}
|
|
40432
40822
|
),
|
|
40433
|
-
/* @__PURE__ */
|
|
40434
|
-
/* @__PURE__ */
|
|
40823
|
+
/* @__PURE__ */ jsxs114("div", { className: "flex flex-col flex-1", children: [
|
|
40824
|
+
/* @__PURE__ */ jsx154(
|
|
40435
40825
|
TextAtom,
|
|
40436
40826
|
{
|
|
40437
40827
|
id: `name-${name}`,
|
|
@@ -40441,14 +40831,14 @@ var CreatorProfileSummary = ({
|
|
|
40441
40831
|
className: "text-gray-900 leading-tight"
|
|
40442
40832
|
}
|
|
40443
40833
|
),
|
|
40444
|
-
/* @__PURE__ */
|
|
40445
|
-
followerCount && /* @__PURE__ */
|
|
40446
|
-
/* @__PURE__ */
|
|
40447
|
-
/* @__PURE__ */
|
|
40834
|
+
/* @__PURE__ */ jsxs114("div", { className: "flex gap-3 mt-1", children: [
|
|
40835
|
+
followerCount && /* @__PURE__ */ jsxs114("div", { className: "flex flex-col", children: [
|
|
40836
|
+
/* @__PURE__ */ jsx154("span", { className: "text-[10px] uppercase tracking-wider text-muted-foreground font-bold", children: "Followers" }),
|
|
40837
|
+
/* @__PURE__ */ jsx154("span", { className: "text-xs font-semibold text-purple-700", children: followerCount })
|
|
40448
40838
|
] }),
|
|
40449
|
-
engagementRate && /* @__PURE__ */
|
|
40450
|
-
/* @__PURE__ */
|
|
40451
|
-
/* @__PURE__ */
|
|
40839
|
+
engagementRate && /* @__PURE__ */ jsxs114("div", { className: "flex flex-col border-l border-purple-100 pl-3", children: [
|
|
40840
|
+
/* @__PURE__ */ jsx154("span", { className: "text-[10px] uppercase tracking-wider text-muted-foreground font-bold", children: "Engagement" }),
|
|
40841
|
+
/* @__PURE__ */ jsx154("span", { className: "text-xs font-semibold text-indigo-600", children: engagementRate })
|
|
40452
40842
|
] })
|
|
40453
40843
|
] })
|
|
40454
40844
|
] })
|
|
@@ -40458,13 +40848,13 @@ var CreatorProfileSummary = ({
|
|
|
40458
40848
|
};
|
|
40459
40849
|
|
|
40460
40850
|
// src/molecules/creator-discovery/AudienceMetricCard/AudienceMetricCard.tsx
|
|
40461
|
-
import { jsx as
|
|
40851
|
+
import { jsx as jsx155, jsxs as jsxs115 } from "react/jsx-runtime";
|
|
40462
40852
|
var AudienceMetricCard = ({
|
|
40463
40853
|
title,
|
|
40464
40854
|
metrics,
|
|
40465
40855
|
className
|
|
40466
40856
|
}) => {
|
|
40467
|
-
return /* @__PURE__ */
|
|
40857
|
+
return /* @__PURE__ */ jsxs115(
|
|
40468
40858
|
Card,
|
|
40469
40859
|
{
|
|
40470
40860
|
className: cn(
|
|
@@ -40472,13 +40862,13 @@ var AudienceMetricCard = ({
|
|
|
40472
40862
|
className
|
|
40473
40863
|
),
|
|
40474
40864
|
children: [
|
|
40475
|
-
/* @__PURE__ */
|
|
40476
|
-
/* @__PURE__ */
|
|
40477
|
-
/* @__PURE__ */
|
|
40478
|
-
/* @__PURE__ */
|
|
40479
|
-
/* @__PURE__ */
|
|
40865
|
+
/* @__PURE__ */ jsx155(CardHeader, { className: "pb-2", children: /* @__PURE__ */ jsx155(CardTitle, { className: "text-lg font-bold text-gray-900", children: title }) }),
|
|
40866
|
+
/* @__PURE__ */ jsx155(CardContent, { className: "space-y-4", children: metrics.map((metric, i) => /* @__PURE__ */ jsxs115("div", { className: "space-y-1.5", children: [
|
|
40867
|
+
/* @__PURE__ */ jsxs115("div", { className: "flex justify-between items-center text-sm", children: [
|
|
40868
|
+
/* @__PURE__ */ jsx155("span", { className: "font-medium text-gray-700", children: metric.label }),
|
|
40869
|
+
/* @__PURE__ */ jsx155("span", { className: "font-bold text-gray-900", children: metric.value })
|
|
40480
40870
|
] }),
|
|
40481
|
-
metric.percentage !== void 0 && /* @__PURE__ */
|
|
40871
|
+
metric.percentage !== void 0 && /* @__PURE__ */ jsx155(
|
|
40482
40872
|
ProgressAtom,
|
|
40483
40873
|
{
|
|
40484
40874
|
id: `progress-${i}`,
|
|
@@ -40495,8 +40885,8 @@ var AudienceMetricCard = ({
|
|
|
40495
40885
|
};
|
|
40496
40886
|
|
|
40497
40887
|
// src/molecules/creator-discovery/CreatorGridCard/CreatorGridCard.tsx
|
|
40498
|
-
import { jsx as
|
|
40499
|
-
var TikTokIcon2 = ({ className }) => /* @__PURE__ */
|
|
40888
|
+
import { jsx as jsx156, jsxs as jsxs116 } from "react/jsx-runtime";
|
|
40889
|
+
var TikTokIcon2 = ({ className }) => /* @__PURE__ */ jsx156(Video, { className });
|
|
40500
40890
|
var CreatorGridCard = ({
|
|
40501
40891
|
bannerSrc,
|
|
40502
40892
|
avatarSrc,
|
|
@@ -40524,7 +40914,7 @@ var CreatorGridCard = ({
|
|
|
40524
40914
|
const safePlatforms = Array.isArray(platforms) ? platforms : [];
|
|
40525
40915
|
const safeMetrics = Array.isArray(metrics) ? metrics : [];
|
|
40526
40916
|
const displayName = typeof name === "string" ? name : String(name || "");
|
|
40527
|
-
return /* @__PURE__ */
|
|
40917
|
+
return /* @__PURE__ */ jsxs116(
|
|
40528
40918
|
Card,
|
|
40529
40919
|
{
|
|
40530
40920
|
className: cn(
|
|
@@ -40532,43 +40922,43 @@ var CreatorGridCard = ({
|
|
|
40532
40922
|
className
|
|
40533
40923
|
),
|
|
40534
40924
|
children: [
|
|
40535
|
-
/* @__PURE__ */
|
|
40536
|
-
bannerSrc ? /* @__PURE__ */
|
|
40925
|
+
/* @__PURE__ */ jsxs116("div", { className: "relative h-32 w-full overflow-hidden", children: [
|
|
40926
|
+
bannerSrc ? /* @__PURE__ */ jsx156(
|
|
40537
40927
|
"img",
|
|
40538
40928
|
{
|
|
40539
40929
|
src: bannerSrc,
|
|
40540
40930
|
alt: displayName,
|
|
40541
40931
|
className: "h-full w-full object-cover transition-transform duration-500 group-hover:scale-110"
|
|
40542
40932
|
}
|
|
40543
|
-
) : /* @__PURE__ */
|
|
40544
|
-
/* @__PURE__ */
|
|
40933
|
+
) : /* @__PURE__ */ jsx156("div", { className: "h-full w-full bg-gradient-to-br from-purple-500 to-indigo-600" }),
|
|
40934
|
+
/* @__PURE__ */ jsx156("div", { className: "absolute inset-x-0 bottom-0 h-1/2 bg-gradient-to-t from-black/20 to-transparent" })
|
|
40545
40935
|
] }),
|
|
40546
|
-
/* @__PURE__ */
|
|
40547
|
-
/* @__PURE__ */
|
|
40548
|
-
/* @__PURE__ */
|
|
40549
|
-
/* @__PURE__ */
|
|
40936
|
+
/* @__PURE__ */ jsxs116(CardContent, { className: "relative pt-0 px-5 pb-6", children: [
|
|
40937
|
+
/* @__PURE__ */ jsx156("div", { className: "absolute -top-10 left-5", children: /* @__PURE__ */ jsxs116(Avatar, { className: "h-20 w-20 border-4 border-[var(--card-background)] shadow-lg ring-2 ring-purple-100/20", children: [
|
|
40938
|
+
/* @__PURE__ */ jsx156(AvatarImage, { src: avatarSrc, alt: displayName }),
|
|
40939
|
+
/* @__PURE__ */ jsx156(AvatarFallback, { className: "bg-purple-500/10 text-purple-500 font-bold text-xl", children: displayName.charAt(0) || "?" })
|
|
40550
40940
|
] }) }),
|
|
40551
|
-
/* @__PURE__ */
|
|
40552
|
-
/* @__PURE__ */
|
|
40553
|
-
/* @__PURE__ */
|
|
40941
|
+
/* @__PURE__ */ jsxs116("div", { className: "mt-12 flex flex-col gap-1", children: [
|
|
40942
|
+
/* @__PURE__ */ jsx156("h3", { className: "text-xl font-bold text-[var(--foreground)] truncate", children: displayName }),
|
|
40943
|
+
/* @__PURE__ */ jsxs116("p", { className: "text-sm text-[var(--foreground)]/60 font-medium", children: [
|
|
40554
40944
|
"@",
|
|
40555
40945
|
handle
|
|
40556
40946
|
] })
|
|
40557
40947
|
] }),
|
|
40558
|
-
/* @__PURE__ */
|
|
40948
|
+
/* @__PURE__ */ jsx156("div", { className: "mt-4 flex gap-2", children: safePlatforms.map((p, i) => {
|
|
40559
40949
|
const Icon3 = getIcon(p);
|
|
40560
|
-
return Icon3 ? /* @__PURE__ */
|
|
40950
|
+
return Icon3 ? /* @__PURE__ */ jsx156(
|
|
40561
40951
|
"div",
|
|
40562
40952
|
{
|
|
40563
40953
|
className: "p-1.5 rounded-lg bg-[var(--foreground)]/5 text-[var(--foreground)]/60 hover:text-purple-500 hover:bg-purple-500/10 transition-colors",
|
|
40564
|
-
children: /* @__PURE__ */
|
|
40954
|
+
children: /* @__PURE__ */ jsx156(Icon3, { className: "h-4 w-4" })
|
|
40565
40955
|
},
|
|
40566
40956
|
typeof p === "string" ? p : i
|
|
40567
40957
|
) : null;
|
|
40568
40958
|
}) }),
|
|
40569
|
-
/* @__PURE__ */
|
|
40570
|
-
/* @__PURE__ */
|
|
40571
|
-
/* @__PURE__ */
|
|
40959
|
+
/* @__PURE__ */ jsx156("div", { className: "mt-6 grid grid-cols-2 gap-4 border-t border-[var(--border-color)] pt-4", children: safeMetrics.map((m, i) => /* @__PURE__ */ jsxs116("div", { className: "flex flex-col", children: [
|
|
40960
|
+
/* @__PURE__ */ jsx156("span", { className: "text-[10px] font-bold uppercase tracking-wider text-[var(--foreground)]/40", children: m.label }),
|
|
40961
|
+
/* @__PURE__ */ jsx156("span", { className: "text-sm font-bold text-[var(--primary-color)]", children: m.value })
|
|
40572
40962
|
] }, i)) })
|
|
40573
40963
|
] })
|
|
40574
40964
|
]
|
|
@@ -40577,15 +40967,15 @@ var CreatorGridCard = ({
|
|
|
40577
40967
|
};
|
|
40578
40968
|
|
|
40579
40969
|
// src/molecules/creator-discovery/BrandAffinityGroup/BrandAffinityGroup.tsx
|
|
40580
|
-
import { jsx as
|
|
40970
|
+
import { jsx as jsx157, jsxs as jsxs117 } from "react/jsx-runtime";
|
|
40581
40971
|
var BrandAffinityGroup = ({
|
|
40582
40972
|
brands,
|
|
40583
40973
|
className
|
|
40584
40974
|
}) => {
|
|
40585
|
-
return /* @__PURE__ */
|
|
40586
|
-
/* @__PURE__ */
|
|
40587
|
-
/* @__PURE__ */
|
|
40588
|
-
/* @__PURE__ */
|
|
40975
|
+
return /* @__PURE__ */ jsxs117("div", { className: cn("flex flex-col gap-3", className), children: [
|
|
40976
|
+
/* @__PURE__ */ jsx157("h5", { className: "text-[10px] font-bold uppercase tracking-widest text-muted-foreground", children: "Recent Collaborations" }),
|
|
40977
|
+
/* @__PURE__ */ jsx157("div", { className: "flex flex-wrap gap-4 items-center", children: brands.map((brand, i) => /* @__PURE__ */ jsxs117("div", { className: "group relative", children: [
|
|
40978
|
+
/* @__PURE__ */ jsx157("div", { className: "h-10 w-10 overflow-hidden rounded-xl bg-white border border-gray-100 p-1.5 flex items-center justify-center grayscale hover:grayscale-0 transition-all duration-300 hover:scale-110 shadow-sm hover:shadow-md", children: /* @__PURE__ */ jsx157(
|
|
40589
40979
|
"img",
|
|
40590
40980
|
{
|
|
40591
40981
|
src: brand.logoSrc,
|
|
@@ -40593,18 +40983,18 @@ var BrandAffinityGroup = ({
|
|
|
40593
40983
|
className: "max-h-full max-w-full object-contain"
|
|
40594
40984
|
}
|
|
40595
40985
|
) }),
|
|
40596
|
-
/* @__PURE__ */
|
|
40986
|
+
/* @__PURE__ */ jsx157("div", { className: "absolute -bottom-6 left-1/2 -translate-x-1/2 px-2 py-0.5 bg-gray-900 text-white text-[10px] rounded opacity-0 group-hover:opacity-100 transition-opacity whitespace-nowrap z-50 pointer-events-none", children: brand.name })
|
|
40597
40987
|
] }, i)) })
|
|
40598
40988
|
] });
|
|
40599
40989
|
};
|
|
40600
40990
|
|
|
40601
40991
|
// src/molecules/creator-discovery/ContentPreviewGallery/ContentPreviewGallery.tsx
|
|
40602
|
-
import { jsx as
|
|
40992
|
+
import { jsx as jsx158, jsxs as jsxs118 } from "react/jsx-runtime";
|
|
40603
40993
|
var ContentPreviewGallery = ({
|
|
40604
40994
|
items,
|
|
40605
40995
|
className
|
|
40606
40996
|
}) => {
|
|
40607
|
-
return /* @__PURE__ */
|
|
40997
|
+
return /* @__PURE__ */ jsx158("div", { className: cn("grid grid-cols-2 gap-2", className), children: items.map((item, i) => /* @__PURE__ */ jsxs118(
|
|
40608
40998
|
"a",
|
|
40609
40999
|
{
|
|
40610
41000
|
href: item.url || "#",
|
|
@@ -40612,7 +41002,7 @@ var ContentPreviewGallery = ({
|
|
|
40612
41002
|
rel: "noopener noreferrer",
|
|
40613
41003
|
className: "group relative aspect-square overflow-hidden rounded-2xl bg-gray-100",
|
|
40614
41004
|
children: [
|
|
40615
|
-
/* @__PURE__ */
|
|
41005
|
+
/* @__PURE__ */ jsx158(
|
|
40616
41006
|
"img",
|
|
40617
41007
|
{
|
|
40618
41008
|
src: item.thumbnail,
|
|
@@ -40620,8 +41010,8 @@ var ContentPreviewGallery = ({
|
|
|
40620
41010
|
className: "h-full w-full object-cover transition-transform duration-500 group-hover:scale-110"
|
|
40621
41011
|
}
|
|
40622
41012
|
),
|
|
40623
|
-
item.type === "video" && /* @__PURE__ */
|
|
40624
|
-
/* @__PURE__ */
|
|
41013
|
+
item.type === "video" && /* @__PURE__ */ jsx158("div", { className: "absolute inset-0 flex items-center justify-center bg-black/10 group-hover:bg-black/20 transition-colors", children: /* @__PURE__ */ jsx158("div", { className: "rounded-full bg-white/30 backdrop-blur-md p-3 text-white ring-1 ring-white/50", children: /* @__PURE__ */ jsx158(Play, { className: "h-6 w-6 fill-white" }) }) }),
|
|
41014
|
+
/* @__PURE__ */ jsx158("div", { className: "absolute inset-0 ring-1 ring-inset ring-black/10 rounded-2xl" })
|
|
40625
41015
|
]
|
|
40626
41016
|
},
|
|
40627
41017
|
i
|
|
@@ -40629,10 +41019,10 @@ var ContentPreviewGallery = ({
|
|
|
40629
41019
|
};
|
|
40630
41020
|
|
|
40631
41021
|
// src/molecules/creator-discovery/AudienceDemographicsCard/AudienceDemographicsCard.tsx
|
|
40632
|
-
import { jsx as
|
|
41022
|
+
import { jsx as jsx159, jsxs as jsxs119 } from "react/jsx-runtime";
|
|
40633
41023
|
var AudienceDemographicsCard = ({ title, data, config, demographicType, className }) => {
|
|
40634
41024
|
const chartType = demographicType === "location" ? "bar" : "pie";
|
|
40635
|
-
return /* @__PURE__ */
|
|
41025
|
+
return /* @__PURE__ */ jsxs119(
|
|
40636
41026
|
Card,
|
|
40637
41027
|
{
|
|
40638
41028
|
className: cn(
|
|
@@ -40640,8 +41030,8 @@ var AudienceDemographicsCard = ({ title, data, config, demographicType, classNam
|
|
|
40640
41030
|
className
|
|
40641
41031
|
),
|
|
40642
41032
|
children: [
|
|
40643
|
-
/* @__PURE__ */
|
|
40644
|
-
/* @__PURE__ */
|
|
41033
|
+
/* @__PURE__ */ jsx159(CardHeader, { className: "pb-2", children: /* @__PURE__ */ jsx159(CardTitle, { className: "text-lg font-bold text-gray-900", children: title }) }),
|
|
41034
|
+
/* @__PURE__ */ jsx159(CardContent, { children: /* @__PURE__ */ jsx159("div", { className: "h-[250px] w-full", children: /* @__PURE__ */ jsx159(
|
|
40645
41035
|
ChartAtom,
|
|
40646
41036
|
{
|
|
40647
41037
|
type: "chart",
|
|
@@ -40660,7 +41050,7 @@ var AudienceDemographicsCard = ({ title, data, config, demographicType, classNam
|
|
|
40660
41050
|
};
|
|
40661
41051
|
|
|
40662
41052
|
// src/molecules/creator-discovery/GrowthChartCard/GrowthChartCard.tsx
|
|
40663
|
-
import { jsx as
|
|
41053
|
+
import { jsx as jsx160, jsxs as jsxs120 } from "react/jsx-runtime";
|
|
40664
41054
|
var GrowthChartCard = ({
|
|
40665
41055
|
title,
|
|
40666
41056
|
data,
|
|
@@ -40669,7 +41059,7 @@ var GrowthChartCard = ({
|
|
|
40669
41059
|
period,
|
|
40670
41060
|
className
|
|
40671
41061
|
}) => {
|
|
40672
|
-
return /* @__PURE__ */
|
|
41062
|
+
return /* @__PURE__ */ jsxs120(
|
|
40673
41063
|
Card,
|
|
40674
41064
|
{
|
|
40675
41065
|
className: cn(
|
|
@@ -40677,15 +41067,15 @@ var GrowthChartCard = ({
|
|
|
40677
41067
|
className
|
|
40678
41068
|
),
|
|
40679
41069
|
children: [
|
|
40680
|
-
/* @__PURE__ */
|
|
40681
|
-
/* @__PURE__ */
|
|
40682
|
-
/* @__PURE__ */
|
|
40683
|
-
/* @__PURE__ */
|
|
41070
|
+
/* @__PURE__ */ jsxs120(CardHeader, { className: "flex flex-row items-center justify-between pb-2 space-y-0", children: [
|
|
41071
|
+
/* @__PURE__ */ jsxs120("div", { children: [
|
|
41072
|
+
/* @__PURE__ */ jsx160(CardTitle, { className: "text-lg font-bold text-gray-900", children: title }),
|
|
41073
|
+
/* @__PURE__ */ jsx160("p", { className: "text-xs text-muted-foreground", children: period })
|
|
40684
41074
|
] }),
|
|
40685
|
-
/* @__PURE__ */
|
|
41075
|
+
/* @__PURE__ */ jsx160("div", { className: "bg-green-50 p-2 rounded-xl", children: /* @__PURE__ */ jsx160(TrendingUp, { className: "w-4 h-4 text-green-600" }) })
|
|
40686
41076
|
] }),
|
|
40687
|
-
/* @__PURE__ */
|
|
40688
|
-
/* @__PURE__ */
|
|
41077
|
+
/* @__PURE__ */ jsxs120(CardContent, { children: [
|
|
41078
|
+
/* @__PURE__ */ jsx160("div", { className: "h-[200px] w-full mt-4", children: /* @__PURE__ */ jsx160(
|
|
40689
41079
|
ChartAtom,
|
|
40690
41080
|
{
|
|
40691
41081
|
type: "chart",
|
|
@@ -40698,9 +41088,9 @@ var GrowthChartCard = ({
|
|
|
40698
41088
|
showLegend: false
|
|
40699
41089
|
}
|
|
40700
41090
|
) }),
|
|
40701
|
-
/* @__PURE__ */
|
|
40702
|
-
/* @__PURE__ */
|
|
40703
|
-
/* @__PURE__ */
|
|
41091
|
+
/* @__PURE__ */ jsxs120("div", { className: "mt-4 flex items-center justify-between", children: [
|
|
41092
|
+
/* @__PURE__ */ jsx160("span", { className: "text-sm font-medium text-gray-500", children: metric }),
|
|
41093
|
+
/* @__PURE__ */ jsx160("span", { className: "text-sm font-bold text-purple-600", children: "+12.5%" })
|
|
40704
41094
|
] })
|
|
40705
41095
|
] })
|
|
40706
41096
|
]
|
|
@@ -40709,24 +41099,24 @@ var GrowthChartCard = ({
|
|
|
40709
41099
|
};
|
|
40710
41100
|
|
|
40711
41101
|
// src/molecules/creator-discovery/TopPostsGrid/TopPostsGrid.tsx
|
|
40712
|
-
import { jsx as
|
|
41102
|
+
import { jsx as jsx161, jsxs as jsxs121 } from "react/jsx-runtime";
|
|
40713
41103
|
var TopPostsGrid = ({
|
|
40714
41104
|
posts,
|
|
40715
41105
|
className
|
|
40716
41106
|
}) => {
|
|
40717
|
-
return /* @__PURE__ */
|
|
41107
|
+
return /* @__PURE__ */ jsx161(
|
|
40718
41108
|
"div",
|
|
40719
41109
|
{
|
|
40720
41110
|
className: cn(
|
|
40721
41111
|
"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",
|
|
40722
41112
|
className
|
|
40723
41113
|
),
|
|
40724
|
-
children: posts.map((post, i) => /* @__PURE__ */
|
|
41114
|
+
children: posts.map((post, i) => /* @__PURE__ */ jsxs121(
|
|
40725
41115
|
"div",
|
|
40726
41116
|
{
|
|
40727
41117
|
className: "group relative aspect-square overflow-hidden rounded-2xl bg-gray-100 border border-purple-50",
|
|
40728
41118
|
children: [
|
|
40729
|
-
/* @__PURE__ */
|
|
41119
|
+
/* @__PURE__ */ jsx161(
|
|
40730
41120
|
"img",
|
|
40731
41121
|
{
|
|
40732
41122
|
src: post.thumbnail,
|
|
@@ -40734,25 +41124,25 @@ var TopPostsGrid = ({
|
|
|
40734
41124
|
className: "h-full w-full object-cover transition-transform duration-500 group-hover:scale-110"
|
|
40735
41125
|
}
|
|
40736
41126
|
),
|
|
40737
|
-
/* @__PURE__ */
|
|
40738
|
-
/* @__PURE__ */
|
|
40739
|
-
/* @__PURE__ */
|
|
40740
|
-
/* @__PURE__ */
|
|
41127
|
+
/* @__PURE__ */ jsxs121("div", { className: "absolute inset-0 bg-gradient-to-t from-black/80 via-black/20 to-transparent opacity-0 group-hover:opacity-100 transition-opacity p-4 flex flex-col justify-end", children: [
|
|
41128
|
+
/* @__PURE__ */ jsxs121("div", { className: "flex items-center gap-4 text-white text-xs font-bold", children: [
|
|
41129
|
+
/* @__PURE__ */ jsxs121("span", { className: "flex items-center gap-1", children: [
|
|
41130
|
+
/* @__PURE__ */ jsx161(Heart, { className: "w-3 h-3 fill-white" }),
|
|
40741
41131
|
" ",
|
|
40742
41132
|
post.likes
|
|
40743
41133
|
] }),
|
|
40744
|
-
/* @__PURE__ */
|
|
40745
|
-
/* @__PURE__ */
|
|
41134
|
+
/* @__PURE__ */ jsxs121("span", { className: "flex items-center gap-1", children: [
|
|
41135
|
+
/* @__PURE__ */ jsx161(MessageCircle, { className: "w-3 h-3 fill-white" }),
|
|
40746
41136
|
" ",
|
|
40747
41137
|
post.comments
|
|
40748
41138
|
] }),
|
|
40749
|
-
/* @__PURE__ */
|
|
40750
|
-
/* @__PURE__ */
|
|
41139
|
+
/* @__PURE__ */ jsxs121("span", { className: "flex items-center gap-1", children: [
|
|
41140
|
+
/* @__PURE__ */ jsx161(ChartColumn, { className: "w-3 h-3" }),
|
|
40751
41141
|
" ",
|
|
40752
41142
|
post.engagement
|
|
40753
41143
|
] })
|
|
40754
41144
|
] }),
|
|
40755
|
-
/* @__PURE__ */
|
|
41145
|
+
/* @__PURE__ */ jsx161("span", { className: "text-[10px] text-gray-300 mt-2", children: post.date })
|
|
40756
41146
|
] })
|
|
40757
41147
|
]
|
|
40758
41148
|
},
|
|
@@ -40763,7 +41153,7 @@ var TopPostsGrid = ({
|
|
|
40763
41153
|
};
|
|
40764
41154
|
|
|
40765
41155
|
// src/molecules/creator-discovery/CreatorActionHeader/CreatorActionHeader.tsx
|
|
40766
|
-
import { jsx as
|
|
41156
|
+
import { jsx as jsx162, jsxs as jsxs122 } from "react/jsx-runtime";
|
|
40767
41157
|
var CreatorActionHeader = ({
|
|
40768
41158
|
bannerSrc,
|
|
40769
41159
|
avatarSrc,
|
|
@@ -40772,7 +41162,7 @@ var CreatorActionHeader = ({
|
|
|
40772
41162
|
actions,
|
|
40773
41163
|
className
|
|
40774
41164
|
}) => {
|
|
40775
|
-
return /* @__PURE__ */
|
|
41165
|
+
return /* @__PURE__ */ jsxs122(
|
|
40776
41166
|
"div",
|
|
40777
41167
|
{
|
|
40778
41168
|
className: cn(
|
|
@@ -40780,8 +41170,8 @@ var CreatorActionHeader = ({
|
|
|
40780
41170
|
className
|
|
40781
41171
|
),
|
|
40782
41172
|
children: [
|
|
40783
|
-
/* @__PURE__ */
|
|
40784
|
-
bannerSrc && /* @__PURE__ */
|
|
41173
|
+
/* @__PURE__ */ jsxs122("div", { className: "h-48 w-full bg-gradient-to-r from-purple-100 to-indigo-100 relative", children: [
|
|
41174
|
+
bannerSrc && /* @__PURE__ */ jsx162(
|
|
40785
41175
|
"img",
|
|
40786
41176
|
{
|
|
40787
41177
|
src: bannerSrc,
|
|
@@ -40789,23 +41179,23 @@ var CreatorActionHeader = ({
|
|
|
40789
41179
|
alt: "Banner"
|
|
40790
41180
|
}
|
|
40791
41181
|
),
|
|
40792
|
-
/* @__PURE__ */
|
|
41182
|
+
/* @__PURE__ */ jsx162("div", { className: "absolute inset-0 bg-black/5" })
|
|
40793
41183
|
] }),
|
|
40794
|
-
/* @__PURE__ */
|
|
40795
|
-
/* @__PURE__ */
|
|
40796
|
-
/* @__PURE__ */
|
|
40797
|
-
/* @__PURE__ */
|
|
40798
|
-
/* @__PURE__ */
|
|
41184
|
+
/* @__PURE__ */ jsxs122("div", { className: "px-8 pb-8 flex flex-col md:flex-row md:items-end justify-between gap-6 -mt-12 relative z-10", children: [
|
|
41185
|
+
/* @__PURE__ */ jsxs122("div", { className: "flex flex-col md:flex-row items-start md:items-end gap-6", children: [
|
|
41186
|
+
/* @__PURE__ */ jsx162("div", { className: "p-2 bg-white rounded-[32px] shadow-lg", children: /* @__PURE__ */ jsxs122(Avatar, { className: "h-32 w-32 rounded-[24px] border-4 border-white", children: [
|
|
41187
|
+
/* @__PURE__ */ jsx162(AvatarImage, { src: avatarSrc, className: "rounded-[24px]" }),
|
|
41188
|
+
/* @__PURE__ */ jsx162(AvatarFallback, { className: "rounded-[24px] bg-purple-50 text-purple-600 text-3xl font-bold", children: name.charAt(0) })
|
|
40799
41189
|
] }) }),
|
|
40800
|
-
/* @__PURE__ */
|
|
40801
|
-
/* @__PURE__ */
|
|
40802
|
-
/* @__PURE__ */
|
|
41190
|
+
/* @__PURE__ */ jsxs122("div", { className: "mb-2", children: [
|
|
41191
|
+
/* @__PURE__ */ jsx162("h1", { className: "text-3xl font-bold text-gray-900 tracking-tight", children: name }),
|
|
41192
|
+
/* @__PURE__ */ jsxs122("p", { className: "text-purple-600 font-medium tracking-wide", children: [
|
|
40803
41193
|
"@",
|
|
40804
41194
|
handle
|
|
40805
41195
|
] })
|
|
40806
41196
|
] })
|
|
40807
41197
|
] }),
|
|
40808
|
-
/* @__PURE__ */
|
|
41198
|
+
/* @__PURE__ */ jsx162("div", { className: "flex items-center gap-3 mb-2", children: actions.map((action, i) => /* @__PURE__ */ jsx162(
|
|
40809
41199
|
Button,
|
|
40810
41200
|
{
|
|
40811
41201
|
variant: action.variant || "default",
|
|
@@ -40824,9 +41214,9 @@ var CreatorActionHeader = ({
|
|
|
40824
41214
|
};
|
|
40825
41215
|
|
|
40826
41216
|
// src/molecules/creator-discovery/CreatorSearchBox/CreatorSearch.tsx
|
|
40827
|
-
import
|
|
40828
|
-
import { jsx as
|
|
40829
|
-
var CreatorSearch =
|
|
41217
|
+
import React111, { useMemo as useMemo8 } from "react";
|
|
41218
|
+
import { jsx as jsx163, jsxs as jsxs123 } from "react/jsx-runtime";
|
|
41219
|
+
var CreatorSearch = React111.memo(
|
|
40830
41220
|
({
|
|
40831
41221
|
selectionStatus,
|
|
40832
41222
|
isLatestMessage = true,
|
|
@@ -40843,7 +41233,7 @@ var CreatorSearch = React110.memo(
|
|
|
40843
41233
|
...field,
|
|
40844
41234
|
renderDisplay: (val) => {
|
|
40845
41235
|
const platforms = Array.isArray(val) ? val : [val];
|
|
40846
|
-
return /* @__PURE__ */
|
|
41236
|
+
return /* @__PURE__ */ jsx163("div", { className: "flex flex-wrap gap-2", children: platforms.map((p) => /* @__PURE__ */ jsx163(
|
|
40847
41237
|
BadgeAtom,
|
|
40848
41238
|
{
|
|
40849
41239
|
id: `platform-${p}`,
|
|
@@ -40860,13 +41250,13 @@ var CreatorSearch = React110.memo(
|
|
|
40860
41250
|
if (field.key === "geography") {
|
|
40861
41251
|
return {
|
|
40862
41252
|
...field,
|
|
40863
|
-
renderDisplay: (val) => /* @__PURE__ */
|
|
41253
|
+
renderDisplay: (val) => /* @__PURE__ */ jsx163(CountrySelectDisplay, { value: val })
|
|
40864
41254
|
};
|
|
40865
41255
|
}
|
|
40866
41256
|
if (field.key === "keywordBundles") {
|
|
40867
41257
|
return {
|
|
40868
41258
|
...field,
|
|
40869
|
-
renderDisplay: (val) => /* @__PURE__ */
|
|
41259
|
+
renderDisplay: (val) => /* @__PURE__ */ jsx163(KeywordBundlesDisplay, { value: val })
|
|
40870
41260
|
};
|
|
40871
41261
|
}
|
|
40872
41262
|
if (field.key === "followerRange") {
|
|
@@ -40874,9 +41264,9 @@ var CreatorSearch = React110.memo(
|
|
|
40874
41264
|
...field,
|
|
40875
41265
|
renderDisplay: (val) => {
|
|
40876
41266
|
if (typeof val === "object" && val !== null) {
|
|
40877
|
-
return /* @__PURE__ */
|
|
41267
|
+
return /* @__PURE__ */ jsx163("span", { className: "text-white font-medium", children: `${val.min?.toLocaleString()} - ${val.max?.toLocaleString()} followers` });
|
|
40878
41268
|
}
|
|
40879
|
-
return /* @__PURE__ */
|
|
41269
|
+
return /* @__PURE__ */ jsxs123("span", { className: "text-white font-medium", children: [
|
|
40880
41270
|
val,
|
|
40881
41271
|
" followers"
|
|
40882
41272
|
] });
|
|
@@ -40886,7 +41276,7 @@ var CreatorSearch = React110.memo(
|
|
|
40886
41276
|
if (field.key === "initialCreators") {
|
|
40887
41277
|
return {
|
|
40888
41278
|
...field,
|
|
40889
|
-
renderDisplay: (val) => /* @__PURE__ */
|
|
41279
|
+
renderDisplay: (val) => /* @__PURE__ */ jsxs123("span", { className: "text-white font-medium", children: [
|
|
40890
41280
|
val,
|
|
40891
41281
|
" creators"
|
|
40892
41282
|
] })
|
|
@@ -40895,7 +41285,7 @@ var CreatorSearch = React110.memo(
|
|
|
40895
41285
|
return field;
|
|
40896
41286
|
});
|
|
40897
41287
|
}, [providedFields, data]);
|
|
40898
|
-
return /* @__PURE__ */
|
|
41288
|
+
return /* @__PURE__ */ jsx163("div", { className: "flex flex-col gap-2", children: /* @__PURE__ */ jsx163(
|
|
40899
41289
|
FormCard,
|
|
40900
41290
|
{
|
|
40901
41291
|
...formCardProps,
|
|
@@ -40904,9 +41294,9 @@ var CreatorSearch = React110.memo(
|
|
|
40904
41294
|
fields,
|
|
40905
41295
|
showTimeline: true,
|
|
40906
41296
|
className: cn("font-noto", className),
|
|
40907
|
-
footer: !isLatestMessage && selectionStatus ? /* @__PURE__ */
|
|
40908
|
-
/* @__PURE__ */
|
|
40909
|
-
/* @__PURE__ */
|
|
41297
|
+
footer: !isLatestMessage && selectionStatus ? /* @__PURE__ */ jsxs123("div", { className: "flex justify-end items-center gap-1.5 text-green-600 text-[10px] font-semibold py-4 pr-6", children: [
|
|
41298
|
+
/* @__PURE__ */ jsx163(CircleCheck, { className: "h-3.5 w-3.5" }),
|
|
41299
|
+
/* @__PURE__ */ jsx163("span", { children: selectionStatus === "agent" ? "Suggested by Agent" : "Selected by you" })
|
|
40910
41300
|
] }) : formCardProps.footer
|
|
40911
41301
|
}
|
|
40912
41302
|
) });
|
|
@@ -40915,10 +41305,10 @@ var CreatorSearch = React110.memo(
|
|
|
40915
41305
|
CreatorSearch.displayName = "CreatorSearch";
|
|
40916
41306
|
|
|
40917
41307
|
// src/molecules/creator-discovery/CampaignConceptCard/CampaignConceptCard.tsx
|
|
40918
|
-
import
|
|
41308
|
+
import React112, { useMemo as useMemo9, useState as useState13 } from "react";
|
|
40919
41309
|
import { motion, AnimatePresence } from "framer-motion";
|
|
40920
|
-
import { jsx as
|
|
40921
|
-
var CampaignConceptCard =
|
|
41310
|
+
import { jsx as jsx164, jsxs as jsxs124 } from "react/jsx-runtime";
|
|
41311
|
+
var CampaignConceptCard = React112.memo(
|
|
40922
41312
|
({
|
|
40923
41313
|
index,
|
|
40924
41314
|
isRecommended,
|
|
@@ -40934,7 +41324,7 @@ var CampaignConceptCard = React111.memo(
|
|
|
40934
41324
|
onAction,
|
|
40935
41325
|
...formCardProps
|
|
40936
41326
|
}) => {
|
|
40937
|
-
const [internalIsOpen, setInternalIsOpen] =
|
|
41327
|
+
const [internalIsOpen, setInternalIsOpen] = useState13(false);
|
|
40938
41328
|
const isOpen = controlledIsOpen !== void 0 ? controlledIsOpen : internalIsOpen;
|
|
40939
41329
|
const handleToggle = () => {
|
|
40940
41330
|
if (onToggle) {
|
|
@@ -40990,39 +41380,39 @@ var CampaignConceptCard = React111.memo(
|
|
|
40990
41380
|
label: "Budget Allocation",
|
|
40991
41381
|
renderDisplay: (val) => {
|
|
40992
41382
|
if (!val)
|
|
40993
|
-
return /* @__PURE__ */
|
|
41383
|
+
return /* @__PURE__ */ jsx164("span", { className: "text-muted-foreground text-sm", children: "-" });
|
|
40994
41384
|
if (Array.isArray(val)) {
|
|
40995
|
-
return /* @__PURE__ */
|
|
41385
|
+
return /* @__PURE__ */ jsx164("div", { className: "space-y-2", children: val.map((item, idx) => {
|
|
40996
41386
|
const label = item?.label ?? item?.key ?? `Item ${idx + 1}`;
|
|
40997
41387
|
const value = item?.value ?? item;
|
|
40998
|
-
return /* @__PURE__ */
|
|
40999
|
-
/* @__PURE__ */
|
|
41388
|
+
return /* @__PURE__ */ jsxs124("div", { className: "flex items-center gap-2", children: [
|
|
41389
|
+
/* @__PURE__ */ jsxs124("span", { className: "text-muted-foreground font-medium", children: [
|
|
41000
41390
|
idx + 1,
|
|
41001
41391
|
"."
|
|
41002
41392
|
] }),
|
|
41003
|
-
/* @__PURE__ */
|
|
41004
|
-
/* @__PURE__ */
|
|
41005
|
-
/* @__PURE__ */
|
|
41393
|
+
/* @__PURE__ */ jsx164("span", { className: "inline-flex items-center bg-black border border-cardBorder px-2 py-0.5 text-cardText text-xs font-medium rounded-md", children: String(label) }),
|
|
41394
|
+
/* @__PURE__ */ jsx164("span", { className: "text-cardText", children: "=" }),
|
|
41395
|
+
/* @__PURE__ */ jsx164("span", { className: "inline-flex items-center bg-black border border-cardBorder px-2 py-1 text-cardText text-sm rounded-md font-grotesk font-medium", children: formatVal(value) })
|
|
41006
41396
|
] }, idx);
|
|
41007
41397
|
}) });
|
|
41008
41398
|
}
|
|
41009
41399
|
if (typeof val === "object") {
|
|
41010
41400
|
const entries = Object.entries(val);
|
|
41011
41401
|
if (entries.length === 0)
|
|
41012
|
-
return /* @__PURE__ */
|
|
41013
|
-
return /* @__PURE__ */
|
|
41014
|
-
/* @__PURE__ */
|
|
41402
|
+
return /* @__PURE__ */ jsx164("span", { className: "text-muted-foreground text-sm", children: "-" });
|
|
41403
|
+
return /* @__PURE__ */ jsx164("div", { className: "space-y-2", children: entries.map(([k, v], idx) => /* @__PURE__ */ jsxs124("div", { className: "flex items-center gap-2", children: [
|
|
41404
|
+
/* @__PURE__ */ jsxs124("span", { className: "text-muted-foreground font-medium", children: [
|
|
41015
41405
|
idx + 1,
|
|
41016
41406
|
"."
|
|
41017
41407
|
] }),
|
|
41018
|
-
/* @__PURE__ */
|
|
41019
|
-
/* @__PURE__ */
|
|
41020
|
-
/* @__PURE__ */
|
|
41408
|
+
/* @__PURE__ */ jsx164("span", { className: "inline-flex items-center bg-black border border-cardBorder px-2 py-0.5 text-cardText text-xs font-medium rounded-md", children: formatKey(k) }),
|
|
41409
|
+
/* @__PURE__ */ jsx164("span", { className: "text-cardText", children: "=" }),
|
|
41410
|
+
/* @__PURE__ */ jsx164("span", { className: "inline-flex items-center bg-black border border-cardBorder px-2 py-1 text-cardText text-sm rounded-md font-grotesk font-medium", children: formatVal(v) })
|
|
41021
41411
|
] }, k)) });
|
|
41022
41412
|
}
|
|
41023
|
-
return /* @__PURE__ */
|
|
41413
|
+
return /* @__PURE__ */ jsx164("span", { className: "text-muted-foreground text-sm", children: String(val) });
|
|
41024
41414
|
},
|
|
41025
|
-
renderEdit: (v, onChange) => /* @__PURE__ */
|
|
41415
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ jsx164(
|
|
41026
41416
|
Textarea,
|
|
41027
41417
|
{
|
|
41028
41418
|
value: typeof v === "object" ? Object.entries(v || {}).map(([k, val]) => `${k.replace(/_/g, " ")}: ${val}`).join("\n") : String(v || ""),
|
|
@@ -41047,8 +41437,8 @@ var CampaignConceptCard = React111.memo(
|
|
|
41047
41437
|
return {
|
|
41048
41438
|
...field,
|
|
41049
41439
|
label: "Geography",
|
|
41050
|
-
renderDisplay: (v) => /* @__PURE__ */
|
|
41051
|
-
renderEdit: (v, onChange) => /* @__PURE__ */
|
|
41440
|
+
renderDisplay: (v) => /* @__PURE__ */ jsx164(CountrySelectDisplay, { value: v }),
|
|
41441
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ jsx164(CountrySelectEdit, { value: v, onChange })
|
|
41052
41442
|
};
|
|
41053
41443
|
}
|
|
41054
41444
|
if (field.key === "estimatedCreators" || field.key === "estimated_creators") {
|
|
@@ -41057,11 +41447,11 @@ var CampaignConceptCard = React111.memo(
|
|
|
41057
41447
|
label: "Estimated Creators",
|
|
41058
41448
|
renderDisplay: (val) => {
|
|
41059
41449
|
if (!val)
|
|
41060
|
-
return /* @__PURE__ */
|
|
41450
|
+
return /* @__PURE__ */ jsx164("span", { className: "text-muted-foreground text-sm", children: "-" });
|
|
41061
41451
|
const displayValue = typeof val === "object" && !Array.isArray(val) ? `${val.min ?? 0}-${val.max ?? 0}` : String(val);
|
|
41062
|
-
return /* @__PURE__ */
|
|
41452
|
+
return /* @__PURE__ */ jsx164("span", { className: "text-cardText text-sm", children: displayValue });
|
|
41063
41453
|
},
|
|
41064
|
-
renderEdit: (v, onChange) => /* @__PURE__ */
|
|
41454
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ jsx164(
|
|
41065
41455
|
Input,
|
|
41066
41456
|
{
|
|
41067
41457
|
value: typeof v === "object" ? `${v.min ?? 0}-${v.max ?? 0}` : String(v || ""),
|
|
@@ -41084,8 +41474,8 @@ var CampaignConceptCard = React111.memo(
|
|
|
41084
41474
|
return {
|
|
41085
41475
|
...field,
|
|
41086
41476
|
label: field.label || "Primary KPI",
|
|
41087
|
-
renderDisplay: (val) => /* @__PURE__ */
|
|
41088
|
-
renderEdit: (v, onChange) => /* @__PURE__ */
|
|
41477
|
+
renderDisplay: (val) => /* @__PURE__ */ jsx164("span", { className: "text-cardText text-sm", children: val ? String(val) : "-" }),
|
|
41478
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ jsx164(
|
|
41089
41479
|
Input,
|
|
41090
41480
|
{
|
|
41091
41481
|
value: String(v || ""),
|
|
@@ -41102,9 +41492,9 @@ var CampaignConceptCard = React111.memo(
|
|
|
41102
41492
|
label: field.label || "Secondary KPIs",
|
|
41103
41493
|
renderDisplay: (val) => {
|
|
41104
41494
|
const display = Array.isArray(val) ? val.map(String).join(", ") : val ? String(val) : "-";
|
|
41105
|
-
return /* @__PURE__ */
|
|
41495
|
+
return /* @__PURE__ */ jsx164("span", { className: "text-cardText text-sm", children: display });
|
|
41106
41496
|
},
|
|
41107
|
-
renderEdit: (v, onChange) => /* @__PURE__ */
|
|
41497
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ jsx164(
|
|
41108
41498
|
Textarea,
|
|
41109
41499
|
{
|
|
41110
41500
|
value: Array.isArray(v) ? v.join(", ") : String(v || ""),
|
|
@@ -41121,15 +41511,15 @@ var CampaignConceptCard = React111.memo(
|
|
|
41121
41511
|
if (field.key === "platforms" || field.key === "target_platforms" || field.key === "targetPlatforms") {
|
|
41122
41512
|
return {
|
|
41123
41513
|
...field,
|
|
41124
|
-
renderDisplay: (v) => /* @__PURE__ */
|
|
41125
|
-
renderEdit: (v, onChange) => /* @__PURE__ */
|
|
41514
|
+
renderDisplay: (v) => /* @__PURE__ */ jsx164(PlatformSelectDisplay, { value: v }),
|
|
41515
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ jsx164(PlatformSelectEdit, { value: v, onChange })
|
|
41126
41516
|
};
|
|
41127
41517
|
}
|
|
41128
41518
|
if (field.key === "description" || field.key === "creator_strategy" || field.key === "creatorStrategy") {
|
|
41129
41519
|
return {
|
|
41130
41520
|
...field,
|
|
41131
41521
|
type: "textarea",
|
|
41132
|
-
renderDisplay: (val) => /* @__PURE__ */
|
|
41522
|
+
renderDisplay: (val) => /* @__PURE__ */ jsx164("span", { className: "text-cardText text-sm leading-relaxed", children: val ? String(val) : "-" })
|
|
41133
41523
|
};
|
|
41134
41524
|
}
|
|
41135
41525
|
return {
|
|
@@ -41137,10 +41527,10 @@ var CampaignConceptCard = React111.memo(
|
|
|
41137
41527
|
renderDisplay: (val) => {
|
|
41138
41528
|
if (Array.isArray(val)) {
|
|
41139
41529
|
if (val.length === 0)
|
|
41140
|
-
return /* @__PURE__ */
|
|
41141
|
-
return /* @__PURE__ */
|
|
41530
|
+
return /* @__PURE__ */ jsx164("span", { className: "text-muted-foreground text-sm", children: "-" });
|
|
41531
|
+
return /* @__PURE__ */ jsx164("div", { className: "flex flex-wrap gap-2 pt-1", children: val.map((item, idx) => {
|
|
41142
41532
|
const label = typeof item === "object" && item !== null ? item.label || item.value || item.name || JSON.stringify(item) : String(item);
|
|
41143
|
-
return /* @__PURE__ */
|
|
41533
|
+
return /* @__PURE__ */ jsx164(
|
|
41144
41534
|
"span",
|
|
41145
41535
|
{
|
|
41146
41536
|
className: "inline-flex items-center bg-black border border-cardBorder px-2 py-0.5 text-cardText text-xs font-medium rounded-md",
|
|
@@ -41151,14 +41541,14 @@ var CampaignConceptCard = React111.memo(
|
|
|
41151
41541
|
}) });
|
|
41152
41542
|
}
|
|
41153
41543
|
if (typeof val === "object" && val !== null) {
|
|
41154
|
-
return /* @__PURE__ */
|
|
41544
|
+
return /* @__PURE__ */ jsx164("div", { className: "text-muted-foreground text-xs font-mono bg-paperBackground p-2 rounded mt-1 overflow-auto max-h-24", children: Object.entries(val).map(([k, v]) => `${k.replace(/_/g, " ")}: ${v}`).join("\n") });
|
|
41155
41545
|
}
|
|
41156
|
-
return /* @__PURE__ */
|
|
41546
|
+
return /* @__PURE__ */ jsx164("span", { className: "text-cardText text-sm", children: val !== void 0 && val !== null ? String(val) : "-" });
|
|
41157
41547
|
}
|
|
41158
41548
|
};
|
|
41159
41549
|
});
|
|
41160
41550
|
}, [providedFields, data]);
|
|
41161
|
-
return /* @__PURE__ */
|
|
41551
|
+
return /* @__PURE__ */ jsxs124(
|
|
41162
41552
|
"div",
|
|
41163
41553
|
{
|
|
41164
41554
|
className: cn(
|
|
@@ -41167,31 +41557,31 @@ var CampaignConceptCard = React111.memo(
|
|
|
41167
41557
|
className
|
|
41168
41558
|
),
|
|
41169
41559
|
children: [
|
|
41170
|
-
/* @__PURE__ */
|
|
41560
|
+
/* @__PURE__ */ jsxs124(
|
|
41171
41561
|
"div",
|
|
41172
41562
|
{
|
|
41173
41563
|
className: "px-4 py-2.5 relative flex items-center justify-between cursor-pointer select-none",
|
|
41174
41564
|
onClick: handleToggle,
|
|
41175
41565
|
children: [
|
|
41176
|
-
/* @__PURE__ */
|
|
41177
|
-
/* @__PURE__ */
|
|
41566
|
+
/* @__PURE__ */ jsxs124("div", { className: "flex-1", children: [
|
|
41567
|
+
/* @__PURE__ */ jsxs124("h3", { className: "text-cardText font-semibold text-sm", children: [
|
|
41178
41568
|
"Concept ",
|
|
41179
41569
|
index !== void 0 ? index : "",
|
|
41180
41570
|
" :",
|
|
41181
41571
|
" ",
|
|
41182
41572
|
typeof cardTitle === "object" ? JSON.stringify(cardTitle) : String(cardTitle)
|
|
41183
41573
|
] }),
|
|
41184
|
-
/* @__PURE__ */
|
|
41185
|
-
isRecommended && /* @__PURE__ */
|
|
41186
|
-
!effectiveIsLatest && selectionStatus && /* @__PURE__ */
|
|
41574
|
+
/* @__PURE__ */ jsxs124("div", { className: "flex flex-wrap gap-2", children: [
|
|
41575
|
+
isRecommended && /* @__PURE__ */ jsx164("span", { className: "text-[10px] font-semibold uppercase tracking-widest text-gold", children: "Recommended" }),
|
|
41576
|
+
!effectiveIsLatest && selectionStatus && /* @__PURE__ */ jsx164("span", { className: "text-[10px] font-semibold uppercase tracking-widest text-gold", children: selectionStatus === "agent" ? "Selected by Agent" : "Selected by You" })
|
|
41187
41577
|
] })
|
|
41188
41578
|
] }),
|
|
41189
|
-
/* @__PURE__ */
|
|
41579
|
+
/* @__PURE__ */ jsx164(
|
|
41190
41580
|
"div",
|
|
41191
41581
|
{
|
|
41192
41582
|
className: "flex items-center gap-2 ml-3",
|
|
41193
41583
|
onClick: (e) => e.stopPropagation(),
|
|
41194
|
-
children: /* @__PURE__ */
|
|
41584
|
+
children: /* @__PURE__ */ jsx164(
|
|
41195
41585
|
"button",
|
|
41196
41586
|
{
|
|
41197
41587
|
onClick: (e) => {
|
|
@@ -41202,7 +41592,7 @@ var CampaignConceptCard = React111.memo(
|
|
|
41202
41592
|
className: "p-2 bg-cardSurface hover:bg-gray200 text-cardText rounded-lg",
|
|
41203
41593
|
"aria-label": isOpen ? "Collapse" : "Expand",
|
|
41204
41594
|
title: isOpen ? "Collapse" : "Expand",
|
|
41205
|
-
children: /* @__PURE__ */
|
|
41595
|
+
children: /* @__PURE__ */ jsx164(
|
|
41206
41596
|
ChevronDown,
|
|
41207
41597
|
{
|
|
41208
41598
|
className: `h-4 w-4 transition-transform ${isOpen ? "rotate-0" : "-rotate-90"}`
|
|
@@ -41215,7 +41605,7 @@ var CampaignConceptCard = React111.memo(
|
|
|
41215
41605
|
]
|
|
41216
41606
|
}
|
|
41217
41607
|
),
|
|
41218
|
-
/* @__PURE__ */
|
|
41608
|
+
/* @__PURE__ */ jsx164(AnimatePresence, { initial: false, children: isOpen && /* @__PURE__ */ jsx164(
|
|
41219
41609
|
motion.div,
|
|
41220
41610
|
{
|
|
41221
41611
|
initial: { height: 0, opacity: 0 },
|
|
@@ -41223,8 +41613,8 @@ var CampaignConceptCard = React111.memo(
|
|
|
41223
41613
|
exit: { height: 0, opacity: 0 },
|
|
41224
41614
|
transition: { duration: 0.2, ease: "easeIn" },
|
|
41225
41615
|
className: "overflow-hidden",
|
|
41226
|
-
children: /* @__PURE__ */
|
|
41227
|
-
/* @__PURE__ */
|
|
41616
|
+
children: /* @__PURE__ */ jsxs124("div", { className: "px-3 py-2 w-full relative", children: [
|
|
41617
|
+
/* @__PURE__ */ jsx164(
|
|
41228
41618
|
"div",
|
|
41229
41619
|
{
|
|
41230
41620
|
className: "absolute left-[48px] top-[70px] bottom-[40px] w-[2px]",
|
|
@@ -41233,7 +41623,7 @@ var CampaignConceptCard = React111.memo(
|
|
|
41233
41623
|
}
|
|
41234
41624
|
}
|
|
41235
41625
|
),
|
|
41236
|
-
/* @__PURE__ */
|
|
41626
|
+
/* @__PURE__ */ jsx164(
|
|
41237
41627
|
FormCard,
|
|
41238
41628
|
{
|
|
41239
41629
|
...formCardProps,
|
|
@@ -41247,9 +41637,9 @@ var CampaignConceptCard = React111.memo(
|
|
|
41247
41637
|
hideTitle: true,
|
|
41248
41638
|
hideCopyButton: true,
|
|
41249
41639
|
className: "bg-transparent border-none shadow-none mb-0 p-0",
|
|
41250
|
-
footer: !effectiveIsLatest && selectionStatus ? /* @__PURE__ */
|
|
41251
|
-
/* @__PURE__ */
|
|
41252
|
-
/* @__PURE__ */
|
|
41640
|
+
footer: !effectiveIsLatest && selectionStatus ? /* @__PURE__ */ jsxs124("div", { className: "flex justify-end items-center gap-1 text-green-600 text-[10px] font-semibold py-2 pr-4", children: [
|
|
41641
|
+
/* @__PURE__ */ jsx164(CircleCheck, { className: "h-3.5 w-3.5" }),
|
|
41642
|
+
/* @__PURE__ */ jsx164("span", { children: selectionStatus === "agent" ? "Selected by Agent" : "Selected by You" })
|
|
41253
41643
|
] }) : formCardProps.footer
|
|
41254
41644
|
}
|
|
41255
41645
|
)
|
|
@@ -41265,14 +41655,14 @@ var CampaignConceptCard = React111.memo(
|
|
|
41265
41655
|
CampaignConceptCard.displayName = "CampaignConceptCard";
|
|
41266
41656
|
|
|
41267
41657
|
// src/molecules/creator-discovery/CreatorWidget/CreatorWidget.tsx
|
|
41268
|
-
import { useCallback as
|
|
41658
|
+
import { useCallback as useCallback9, useState as useState21, memo } from "react";
|
|
41269
41659
|
|
|
41270
41660
|
// src/molecules/creator-discovery/CreatorWidget/CreatorImageList.tsx
|
|
41271
|
-
import { useEffect as
|
|
41272
|
-
import { Fragment as
|
|
41661
|
+
import { useEffect as useEffect9, useState as useState14 } from "react";
|
|
41662
|
+
import { Fragment as Fragment7, jsx as jsx165, jsxs as jsxs125 } from "react/jsx-runtime";
|
|
41273
41663
|
function useMediaQuery(query) {
|
|
41274
|
-
const [matches, setMatches] =
|
|
41275
|
-
|
|
41664
|
+
const [matches, setMatches] = useState14(false);
|
|
41665
|
+
useEffect9(() => {
|
|
41276
41666
|
const media = window.matchMedia(query);
|
|
41277
41667
|
const listener = () => setMatches(media.matches);
|
|
41278
41668
|
listener();
|
|
@@ -41290,8 +41680,8 @@ function CreatorImage({
|
|
|
41290
41680
|
const processedCount = Math.floor(creatorsPercentage / 100 * totalCreators);
|
|
41291
41681
|
const isProcessed = idx < processedCount;
|
|
41292
41682
|
const isCurrentlyProcessing = idx === processedCount;
|
|
41293
|
-
return /* @__PURE__ */
|
|
41294
|
-
/* @__PURE__ */
|
|
41683
|
+
return /* @__PURE__ */ jsxs125("div", { className: "relative w-8 h-8", children: [
|
|
41684
|
+
/* @__PURE__ */ jsx165(
|
|
41295
41685
|
"img",
|
|
41296
41686
|
{
|
|
41297
41687
|
src: img,
|
|
@@ -41299,9 +41689,9 @@ function CreatorImage({
|
|
|
41299
41689
|
className: `w-8 h-8 rounded-full border-2 ${isProcessed ? "border-green-600" : "border-foreground"} object-cover transition-all duration-300`
|
|
41300
41690
|
}
|
|
41301
41691
|
),
|
|
41302
|
-
!isProcessed && /* @__PURE__ */
|
|
41303
|
-
isCurrentlyProcessing && /* @__PURE__ */
|
|
41304
|
-
/* @__PURE__ */
|
|
41692
|
+
!isProcessed && /* @__PURE__ */ jsx165("div", { className: "absolute inset-0 bg-black/50 rounded-full pointer-events-none" }),
|
|
41693
|
+
isCurrentlyProcessing && /* @__PURE__ */ jsxs125(Fragment7, { children: [
|
|
41694
|
+
/* @__PURE__ */ jsx165(
|
|
41305
41695
|
"div",
|
|
41306
41696
|
{
|
|
41307
41697
|
className: "absolute inset-0 bg-black/50 rounded-full pointer-events-none",
|
|
@@ -41317,7 +41707,7 @@ function CreatorImage({
|
|
|
41317
41707
|
}
|
|
41318
41708
|
}
|
|
41319
41709
|
),
|
|
41320
|
-
/* @__PURE__ */
|
|
41710
|
+
/* @__PURE__ */ jsx165("div", { className: "absolute inset-0 rounded-full border-2 border-[#9CA3AF]/30 pointer-events-none" })
|
|
41321
41711
|
] })
|
|
41322
41712
|
] });
|
|
41323
41713
|
}
|
|
@@ -41330,8 +41720,8 @@ function CreatorImageList({
|
|
|
41330
41720
|
const isMobile = useMediaQuery("(max-width: 640px)");
|
|
41331
41721
|
const isTablet = useMediaQuery("(min-width: 641px) and (max-width: 1024px)");
|
|
41332
41722
|
const visibleCount = isMobile ? 7 : isTablet ? 10 : isAgentOutput ? 6 : 15;
|
|
41333
|
-
return /* @__PURE__ */
|
|
41334
|
-
creatorImages.slice(0, visibleCount).map((img, idx) => /* @__PURE__ */
|
|
41723
|
+
return /* @__PURE__ */ jsxs125("div", { className: "flex flex-nowrap sm:flex-wrap -space-x-2 w-fit", children: [
|
|
41724
|
+
creatorImages.slice(0, visibleCount).map((img, idx) => /* @__PURE__ */ jsx165(
|
|
41335
41725
|
CreatorImage,
|
|
41336
41726
|
{
|
|
41337
41727
|
img,
|
|
@@ -41341,7 +41731,7 @@ function CreatorImageList({
|
|
|
41341
41731
|
},
|
|
41342
41732
|
idx
|
|
41343
41733
|
)),
|
|
41344
|
-
creatorLength > visibleCount && /* @__PURE__ */
|
|
41734
|
+
creatorLength > visibleCount && /* @__PURE__ */ jsxs125(
|
|
41345
41735
|
"div",
|
|
41346
41736
|
{
|
|
41347
41737
|
className: `relative w-8 h-8 rounded-full text-white flex items-center justify-center text-sm font-medium border-2 ${initialCreatorsPercentage === 100 ? "border-green-600 bg-sliderFill" : "border-foreground bg-black/50"}`,
|
|
@@ -41355,28 +41745,28 @@ function CreatorImageList({
|
|
|
41355
41745
|
}
|
|
41356
41746
|
|
|
41357
41747
|
// src/molecules/creator-discovery/CreatorWidget/CreatorProgressBar.tsx
|
|
41358
|
-
import { useEffect as
|
|
41748
|
+
import { useEffect as useEffect10, useState as useState15 } from "react";
|
|
41359
41749
|
import { motion as motion2, AnimatePresence as AnimatePresence2 } from "framer-motion";
|
|
41360
|
-
import { jsx as
|
|
41750
|
+
import { jsx as jsx166, jsxs as jsxs126 } from "react/jsx-runtime";
|
|
41361
41751
|
function truncateName(name, maxLength) {
|
|
41362
41752
|
if (!name || name.length <= maxLength) return name || "";
|
|
41363
41753
|
return name.substring(0, maxLength) + "...";
|
|
41364
41754
|
}
|
|
41365
41755
|
function ProgressBar({ overallPercentage }) {
|
|
41366
|
-
const [showTooltip, setShowTooltip] =
|
|
41367
|
-
|
|
41756
|
+
const [showTooltip, setShowTooltip] = useState15(true);
|
|
41757
|
+
useEffect10(() => {
|
|
41368
41758
|
if (overallPercentage && overallPercentage >= 100) {
|
|
41369
41759
|
setShowTooltip(false);
|
|
41370
41760
|
}
|
|
41371
41761
|
}, [overallPercentage]);
|
|
41372
|
-
return /* @__PURE__ */
|
|
41762
|
+
return /* @__PURE__ */ jsx166("div", { className: "relative w-full", children: /* @__PURE__ */ jsx166("div", { className: "md:w-full dark:bg-purple500 bg-gray-200 rounded-full h-[6px]", children: /* @__PURE__ */ jsx166(
|
|
41373
41763
|
motion2.div,
|
|
41374
41764
|
{
|
|
41375
41765
|
className: "bg-purple100 h-[6px] rounded-full relative",
|
|
41376
41766
|
initial: { width: 0 },
|
|
41377
41767
|
animate: { width: `${overallPercentage}%` },
|
|
41378
41768
|
transition: { duration: 0.5, ease: "easeOut" },
|
|
41379
|
-
children: /* @__PURE__ */
|
|
41769
|
+
children: /* @__PURE__ */ jsx166(AnimatePresence2, { children: showTooltip && /* @__PURE__ */ jsxs126(
|
|
41380
41770
|
motion2.div,
|
|
41381
41771
|
{
|
|
41382
41772
|
initial: { opacity: 0, y: 5 },
|
|
@@ -41386,9 +41776,9 @@ function ProgressBar({ overallPercentage }) {
|
|
|
41386
41776
|
children: [
|
|
41387
41777
|
overallPercentage ? Math.round(overallPercentage) : 0,
|
|
41388
41778
|
"%",
|
|
41389
|
-
/* @__PURE__ */
|
|
41390
|
-
/* @__PURE__ */
|
|
41391
|
-
/* @__PURE__ */
|
|
41779
|
+
/* @__PURE__ */ jsxs126("div", { className: "absolute left-1/2 top-full -translate-x-1/2", children: [
|
|
41780
|
+
/* @__PURE__ */ jsx166("div", { className: "w-0 h-0 border-l-[6px] border-r-[6px] border-t-[6px] border-transparent border-t-gray300" }),
|
|
41781
|
+
/* @__PURE__ */ jsx166("div", { className: "absolute left-1/2 top-[-1px] -translate-x-1/2 w-0 h-0 border-l-[5px] border-r-[5px] border-t-[5px] border-transparent border-t-gray50" })
|
|
41392
41782
|
] })
|
|
41393
41783
|
]
|
|
41394
41784
|
}
|
|
@@ -41400,38 +41790,38 @@ function CreatorProgressBar({
|
|
|
41400
41790
|
statusDetails,
|
|
41401
41791
|
timeRemaining: _timeRemaining
|
|
41402
41792
|
}) {
|
|
41403
|
-
return /* @__PURE__ */
|
|
41404
|
-
/* @__PURE__ */
|
|
41405
|
-
/* @__PURE__ */
|
|
41793
|
+
return /* @__PURE__ */ jsxs126("div", { children: [
|
|
41794
|
+
/* @__PURE__ */ jsx166(ProgressBar, { overallPercentage: statusDetails?.overall_percentage }),
|
|
41795
|
+
/* @__PURE__ */ jsx166("div", { className: "dark:text-gray400 text-gray-500 text-xs mt-2", children: (statusDetails?.overall_percentage ?? 0) < 100 && /* @__PURE__ */ jsx166("span", { children: statusDetails?.thinking_message ? truncateName(statusDetails.thinking_message, 200) : "Processing..." }) })
|
|
41406
41796
|
] });
|
|
41407
41797
|
}
|
|
41408
41798
|
|
|
41409
41799
|
// src/molecules/creator-discovery/CreatorWidget/CreatorWidgetSkeleton.tsx
|
|
41410
|
-
import { jsx as
|
|
41800
|
+
import { jsx as jsx167, jsxs as jsxs127 } from "react/jsx-runtime";
|
|
41411
41801
|
function CreatorWidgetSkeleton() {
|
|
41412
|
-
return /* @__PURE__ */
|
|
41413
|
-
/* @__PURE__ */
|
|
41414
|
-
/* @__PURE__ */
|
|
41415
|
-
/* @__PURE__ */
|
|
41802
|
+
return /* @__PURE__ */ jsx167("div", { className: "bg-background dark:bg-gray50 rounded-[25px] border border-gray300 overflow-hidden shadow-sm w-full relative", children: /* @__PURE__ */ jsxs127("div", { className: "p-4 md:p-6 space-y-4", children: [
|
|
41803
|
+
/* @__PURE__ */ jsx167("div", { className: "flex flex-col md:flex-row md:items-center md:justify-between gap-4 relative", children: /* @__PURE__ */ jsxs127("div", { className: "flex flex-col gap-2 md:gap-4", children: [
|
|
41804
|
+
/* @__PURE__ */ jsx167("div", { className: "w-40 h-6 bg-purple200 rounded-md animate-pulse" }),
|
|
41805
|
+
/* @__PURE__ */ jsx167("div", { className: "w-64 h-7 bg-gray200 dark:bg-gray300 rounded animate-pulse" })
|
|
41416
41806
|
] }) }),
|
|
41417
|
-
/* @__PURE__ */
|
|
41418
|
-
/* @__PURE__ */
|
|
41419
|
-
/* @__PURE__ */
|
|
41807
|
+
/* @__PURE__ */ jsxs127("div", { className: "bg-paperBackground rounded-lg px-3 md:px-4 py-4 md:py-5 flex flex-col md:flex-row md:items-center md:justify-between gap-4 md:gap-0", children: [
|
|
41808
|
+
/* @__PURE__ */ jsxs127("div", { className: "flex flex-col gap-4 md:gap-6 min-w-0", children: [
|
|
41809
|
+
/* @__PURE__ */ jsx167("div", { className: "flex -space-x-2", children: Array.from({ length: 10 }).map((_, idx) => /* @__PURE__ */ jsx167(
|
|
41420
41810
|
"div",
|
|
41421
41811
|
{
|
|
41422
41812
|
className: "w-8 h-8 md:w-10 md:h-10 rounded-full border-2 border-gray300 bg-gray200 animate-pulse"
|
|
41423
41813
|
},
|
|
41424
41814
|
idx
|
|
41425
41815
|
)) }),
|
|
41426
|
-
/* @__PURE__ */
|
|
41816
|
+
/* @__PURE__ */ jsx167("div", { className: "space-y-2", children: /* @__PURE__ */ jsx167("div", { className: "w-full max-w-xs bg-gray200 rounded-full h-2 animate-pulse" }) })
|
|
41427
41817
|
] }),
|
|
41428
|
-
/* @__PURE__ */
|
|
41818
|
+
/* @__PURE__ */ jsx167("div", { className: "px-6 py-2 bg-gray200 rounded-[30px] animate-pulse h-10 w-48" })
|
|
41429
41819
|
] })
|
|
41430
41820
|
] }) });
|
|
41431
41821
|
}
|
|
41432
41822
|
|
|
41433
41823
|
// src/molecules/creator-discovery/CreatorWidget/CreatorCompactView.tsx
|
|
41434
|
-
import { Fragment as
|
|
41824
|
+
import { Fragment as Fragment8, jsx as jsx168, jsxs as jsxs128 } from "react/jsx-runtime";
|
|
41435
41825
|
function CreatorCompactView({
|
|
41436
41826
|
versions,
|
|
41437
41827
|
selectedVersion,
|
|
@@ -41448,16 +41838,16 @@ function CreatorCompactView({
|
|
|
41448
41838
|
const isComplete = versionStatus === "completed" || versionStatus === "complete";
|
|
41449
41839
|
const statusTitle = isComplete ? "Creator Search Complete" : versionStatus === "failed" ? "Creator Search Failed" : "Creator Search Processing";
|
|
41450
41840
|
if (isLoading) {
|
|
41451
|
-
return /* @__PURE__ */
|
|
41841
|
+
return /* @__PURE__ */ jsx168(CreatorWidgetSkeleton, {});
|
|
41452
41842
|
}
|
|
41453
|
-
return /* @__PURE__ */
|
|
41454
|
-
/* @__PURE__ */
|
|
41455
|
-
/* @__PURE__ */
|
|
41456
|
-
/* @__PURE__ */
|
|
41457
|
-
/* @__PURE__ */
|
|
41843
|
+
return /* @__PURE__ */ jsx168("div", { className: "bg-background dark:bg-gray100 rounded-[25px] border border-gray300 overflow-hidden shadow-sm w-full relative", children: /* @__PURE__ */ jsxs128("div", { className: "p-4 md:p-6 space-y-4", children: [
|
|
41844
|
+
/* @__PURE__ */ jsxs128("div", { className: "flex flex-col md:flex-row md:items-center md:justify-between gap-4 relative", children: [
|
|
41845
|
+
/* @__PURE__ */ jsxs128("div", { className: "flex flex-col gap-2 md:gap-4", children: [
|
|
41846
|
+
/* @__PURE__ */ jsx168("h4", { className: "w-fit rounded-md bg-purple200 px-2 py-[4px] text-xs font-medium text-purpleText", children: "VERIFIED CREATORS LIST" }),
|
|
41847
|
+
/* @__PURE__ */ jsx168("h3", { className: "text-gray900 md:text-lg font-bold", children: statusTitle })
|
|
41458
41848
|
] }),
|
|
41459
|
-
versions.length > 1 && /* @__PURE__ */
|
|
41460
|
-
/* @__PURE__ */
|
|
41849
|
+
versions.length > 1 && /* @__PURE__ */ jsx168("div", { className: "relative md:self-start", children: /* @__PURE__ */ jsxs128(DropdownMenu, { children: [
|
|
41850
|
+
/* @__PURE__ */ jsxs128(
|
|
41461
41851
|
DropdownMenuTrigger,
|
|
41462
41852
|
{
|
|
41463
41853
|
disabled: !isComplete,
|
|
@@ -41465,11 +41855,11 @@ function CreatorCompactView({
|
|
|
41465
41855
|
children: [
|
|
41466
41856
|
"Version ",
|
|
41467
41857
|
selectedVersion ?? "-",
|
|
41468
|
-
/* @__PURE__ */
|
|
41858
|
+
/* @__PURE__ */ jsx168(ChevronDown, { className: "w-3 h-3 md:w-4 md:h-4 transition-transform" })
|
|
41469
41859
|
]
|
|
41470
41860
|
}
|
|
41471
41861
|
),
|
|
41472
|
-
/* @__PURE__ */
|
|
41862
|
+
/* @__PURE__ */ jsx168(DropdownMenuContent, { className: "bg-gray25 border-2 border-gray400 min-w-[120px] max-h-[150px] overflow-y-auto", children: versions.map((v) => /* @__PURE__ */ jsxs128(
|
|
41473
41863
|
DropdownMenuItem,
|
|
41474
41864
|
{
|
|
41475
41865
|
onClick: () => onVersionSelect(v),
|
|
@@ -41483,12 +41873,12 @@ function CreatorCompactView({
|
|
|
41483
41873
|
)) })
|
|
41484
41874
|
] }) })
|
|
41485
41875
|
] }),
|
|
41486
|
-
/* @__PURE__ */
|
|
41487
|
-
/* @__PURE__ */
|
|
41488
|
-
/* @__PURE__ */
|
|
41489
|
-
] }) : /* @__PURE__ */
|
|
41490
|
-
/* @__PURE__ */
|
|
41491
|
-
/* @__PURE__ */
|
|
41876
|
+
/* @__PURE__ */ jsx168("div", { className: "bg-paperBackground rounded-lg px-3 md:px-4 py-4 md:py-5 flex flex-col md:flex-row md:items-center md:justify-between gap-4 md:gap-0", children: versionStatus === "failed" ? /* @__PURE__ */ jsxs128("div", { className: "flex flex-col items-center justify-center w-full py-6 md:py-8 text-center text-red-500", children: [
|
|
41877
|
+
/* @__PURE__ */ jsx168("p", { className: "text-base md:text-lg font-semibold mb-2", children: "Creator Search Failed" }),
|
|
41878
|
+
/* @__PURE__ */ jsx168("p", { className: "text-xs md:text-sm text-gray600 px-2", children: "Something went wrong while fetching creators. Please try again later or regenerate a new version." })
|
|
41879
|
+
] }) : /* @__PURE__ */ jsxs128(Fragment8, { children: [
|
|
41880
|
+
/* @__PURE__ */ jsxs128("div", { className: "flex flex-col gap-4 md:gap-6 min-w-0", children: [
|
|
41881
|
+
/* @__PURE__ */ jsx168(
|
|
41492
41882
|
CreatorImageList,
|
|
41493
41883
|
{
|
|
41494
41884
|
creatorImages,
|
|
@@ -41497,7 +41887,7 @@ function CreatorCompactView({
|
|
|
41497
41887
|
initialCreatorsPercentage: statusDetails?.social_fetch_percentage
|
|
41498
41888
|
}
|
|
41499
41889
|
),
|
|
41500
|
-
/* @__PURE__ */
|
|
41890
|
+
/* @__PURE__ */ jsx168(
|
|
41501
41891
|
CreatorProgressBar,
|
|
41502
41892
|
{
|
|
41503
41893
|
statusDetails,
|
|
@@ -41505,7 +41895,7 @@ function CreatorCompactView({
|
|
|
41505
41895
|
}
|
|
41506
41896
|
)
|
|
41507
41897
|
] }),
|
|
41508
|
-
/* @__PURE__ */
|
|
41898
|
+
/* @__PURE__ */ jsxs128(
|
|
41509
41899
|
"button",
|
|
41510
41900
|
{
|
|
41511
41901
|
className: `px-4 py-2 text-xs md:text-sm rounded-[30px] shadow flex items-center justify-center gap-2 w-full md:w-auto md:flex-shrink-0 whitespace-nowrap ${!isComplete ? "bg-gray300 text-gray500 border-2 border-gray300 cursor-not-allowed" : "bg-purpleLight dark:bg-purple200 text-purpleText2 dark:text-purpleText border-2 border-purple100 cursor-pointer hover:bg-purpleText1 dark:hover:bg-purple100 dark:hover:text-background"}`,
|
|
@@ -41515,7 +41905,7 @@ function CreatorCompactView({
|
|
|
41515
41905
|
"View ",
|
|
41516
41906
|
creatorLength,
|
|
41517
41907
|
" Verified Creators",
|
|
41518
|
-
/* @__PURE__ */
|
|
41908
|
+
/* @__PURE__ */ jsx168(Triangle, { className: "w-3 h-3 md:w-4 md:h-4 rotate-90 font-bold" })
|
|
41519
41909
|
]
|
|
41520
41910
|
}
|
|
41521
41911
|
)
|
|
@@ -41524,7 +41914,7 @@ function CreatorCompactView({
|
|
|
41524
41914
|
}
|
|
41525
41915
|
|
|
41526
41916
|
// src/molecules/creator-discovery/CreatorWidget/CreatorExpandedPanel.tsx
|
|
41527
|
-
import { useState as
|
|
41917
|
+
import { useState as useState19, useEffect as useEffect12, useCallback as useCallback7 } from "react";
|
|
41528
41918
|
import ReactDOM2 from "react-dom";
|
|
41529
41919
|
import { AnimatePresence as AnimatePresence4, motion as motion5 } from "framer-motion";
|
|
41530
41920
|
|
|
@@ -41806,7 +42196,7 @@ var normalizeToIso2 = (input) => {
|
|
|
41806
42196
|
};
|
|
41807
42197
|
|
|
41808
42198
|
// src/molecules/creator-discovery/CreatorWidget/EngagedAudienceDemographics.tsx
|
|
41809
|
-
import { jsx as
|
|
42199
|
+
import { jsx as jsx169, jsxs as jsxs129 } from "react/jsx-runtime";
|
|
41810
42200
|
function EngagedAudienceDemographics({
|
|
41811
42201
|
audienceDemographics
|
|
41812
42202
|
}) {
|
|
@@ -41824,31 +42214,31 @@ function EngagedAudienceDemographics({
|
|
|
41824
42214
|
if (hasAges) columns.push("1fr");
|
|
41825
42215
|
if (hasGenders) columns.push("0.4fr");
|
|
41826
42216
|
const gridTemplate = columns.join(" ");
|
|
41827
|
-
return /* @__PURE__ */
|
|
41828
|
-
/* @__PURE__ */
|
|
41829
|
-
/* @__PURE__ */
|
|
42217
|
+
return /* @__PURE__ */ jsxs129("div", { className: "flex flex-col gap-4", children: [
|
|
42218
|
+
/* @__PURE__ */ jsx169("div", { className: "text-purpleText text-xs", children: /* @__PURE__ */ jsx169("span", { className: "rounded-md bg-purple200 px-2 py-[4px] font-sans", children: "ENGAGED AUDIENCE" }) }),
|
|
42219
|
+
/* @__PURE__ */ jsxs129(
|
|
41830
42220
|
"div",
|
|
41831
42221
|
{
|
|
41832
42222
|
className: "flex flex-col sm:col-span-3 sm:grid gap-6",
|
|
41833
42223
|
style: { gridTemplateColumns: gridTemplate },
|
|
41834
42224
|
children: [
|
|
41835
|
-
hasCities && /* @__PURE__ */
|
|
41836
|
-
/* @__PURE__ */
|
|
41837
|
-
/* @__PURE__ */
|
|
41838
|
-
([code, value]) => /* @__PURE__ */
|
|
42225
|
+
hasCities && /* @__PURE__ */ jsxs129("div", { children: [
|
|
42226
|
+
/* @__PURE__ */ jsx169("h4", { className: "text-xs text-gray700 mb-3", children: "Cities" }),
|
|
42227
|
+
/* @__PURE__ */ jsx169("div", { className: "flex flex-col gap-3", children: Object.entries(audienceDemographics?.cities || {}).map(
|
|
42228
|
+
([code, value]) => /* @__PURE__ */ jsxs129(
|
|
41839
42229
|
"div",
|
|
41840
42230
|
{
|
|
41841
42231
|
className: "flex items-center gap-3 text-sm text-gray700",
|
|
41842
42232
|
children: [
|
|
41843
|
-
/* @__PURE__ */
|
|
41844
|
-
/* @__PURE__ */
|
|
42233
|
+
/* @__PURE__ */ jsx169("span", { className: "w-[90px]", children: /* @__PURE__ */ jsx169("div", { className: "flex gap-1 items-center", children: /* @__PURE__ */ jsx169("span", { children: code.split(",")[0] }) }) }),
|
|
42234
|
+
/* @__PURE__ */ jsx169("div", { className: "flex-1 bg-gray200 h-[6px] rounded-full overflow-hidden", children: /* @__PURE__ */ jsx169(
|
|
41845
42235
|
"div",
|
|
41846
42236
|
{
|
|
41847
42237
|
className: "h-[6px] bg-purple100 rounded-full",
|
|
41848
42238
|
style: { width: `${value}%` }
|
|
41849
42239
|
}
|
|
41850
42240
|
) }),
|
|
41851
|
-
/* @__PURE__ */
|
|
42241
|
+
/* @__PURE__ */ jsxs129("span", { className: "w-10 text-right font-medium", children: [
|
|
41852
42242
|
value,
|
|
41853
42243
|
"%"
|
|
41854
42244
|
] })
|
|
@@ -41858,29 +42248,29 @@ function EngagedAudienceDemographics({
|
|
|
41858
42248
|
)
|
|
41859
42249
|
) })
|
|
41860
42250
|
] }),
|
|
41861
|
-
hasCountries && /* @__PURE__ */
|
|
41862
|
-
/* @__PURE__ */
|
|
41863
|
-
/* @__PURE__ */
|
|
42251
|
+
hasCountries && /* @__PURE__ */ jsxs129("div", { children: [
|
|
42252
|
+
/* @__PURE__ */ jsx169("h4", { className: "text-xs text-gray700 mb-3", children: "Countries" }),
|
|
42253
|
+
/* @__PURE__ */ jsx169("div", { className: "flex flex-col gap-3", children: Object.entries(audienceDemographics?.countries || {}).map(
|
|
41864
42254
|
([code, value]) => {
|
|
41865
42255
|
const iso2 = normalizeToIso2(code);
|
|
41866
42256
|
const meta = codeToMeta[iso2];
|
|
41867
|
-
return /* @__PURE__ */
|
|
42257
|
+
return /* @__PURE__ */ jsxs129(
|
|
41868
42258
|
"div",
|
|
41869
42259
|
{
|
|
41870
42260
|
className: "flex items-center gap-3 text-sm text-gray700",
|
|
41871
42261
|
children: [
|
|
41872
|
-
/* @__PURE__ */
|
|
41873
|
-
/* @__PURE__ */
|
|
41874
|
-
/* @__PURE__ */
|
|
42262
|
+
/* @__PURE__ */ jsx169("span", { className: "w-10", children: /* @__PURE__ */ jsxs129("div", { className: "flex gap-1 items-center", children: [
|
|
42263
|
+
/* @__PURE__ */ jsx169("span", { className: "text-base", children: meta?.flag }),
|
|
42264
|
+
/* @__PURE__ */ jsx169("span", { children: code })
|
|
41875
42265
|
] }) }),
|
|
41876
|
-
/* @__PURE__ */
|
|
42266
|
+
/* @__PURE__ */ jsx169("div", { className: "flex-1 bg-gray200 h-[6px] rounded-full overflow-hidden", children: /* @__PURE__ */ jsx169(
|
|
41877
42267
|
"div",
|
|
41878
42268
|
{
|
|
41879
42269
|
className: "h-[6px] bg-purple100 rounded-full",
|
|
41880
42270
|
style: { width: `${value}%` }
|
|
41881
42271
|
}
|
|
41882
42272
|
) }),
|
|
41883
|
-
/* @__PURE__ */
|
|
42273
|
+
/* @__PURE__ */ jsxs129("span", { className: "w-10 text-right font-medium", children: [
|
|
41884
42274
|
value,
|
|
41885
42275
|
"%"
|
|
41886
42276
|
] })
|
|
@@ -41891,23 +42281,23 @@ function EngagedAudienceDemographics({
|
|
|
41891
42281
|
}
|
|
41892
42282
|
) })
|
|
41893
42283
|
] }),
|
|
41894
|
-
hasAges && /* @__PURE__ */
|
|
41895
|
-
/* @__PURE__ */
|
|
41896
|
-
/* @__PURE__ */
|
|
41897
|
-
([ageRange, value]) => /* @__PURE__ */
|
|
42284
|
+
hasAges && /* @__PURE__ */ jsxs129("div", { children: [
|
|
42285
|
+
/* @__PURE__ */ jsx169("h4", { className: "text-xs text-gray700 mb-3", children: "Ages" }),
|
|
42286
|
+
/* @__PURE__ */ jsx169("div", { className: "flex flex-col gap-3", children: Object.entries(audienceDemographics?.ages || {}).map(
|
|
42287
|
+
([ageRange, value]) => /* @__PURE__ */ jsxs129(
|
|
41898
42288
|
"div",
|
|
41899
42289
|
{
|
|
41900
42290
|
className: "flex items-center gap-3 text-sm text-gray700",
|
|
41901
42291
|
children: [
|
|
41902
|
-
/* @__PURE__ */
|
|
41903
|
-
/* @__PURE__ */
|
|
42292
|
+
/* @__PURE__ */ jsx169("span", { className: "w-12", children: ageRange }),
|
|
42293
|
+
/* @__PURE__ */ jsx169("div", { className: "flex-1 bg-gray200 h-[6px] rounded-full overflow-hidden", children: /* @__PURE__ */ jsx169(
|
|
41904
42294
|
"div",
|
|
41905
42295
|
{
|
|
41906
42296
|
className: "h-[6px] bg-purple100 rounded-full",
|
|
41907
42297
|
style: { width: `${value}%` }
|
|
41908
42298
|
}
|
|
41909
42299
|
) }),
|
|
41910
|
-
/* @__PURE__ */
|
|
42300
|
+
/* @__PURE__ */ jsxs129("span", { className: "w-10 text-right font-medium", children: [
|
|
41911
42301
|
value,
|
|
41912
42302
|
"%"
|
|
41913
42303
|
] })
|
|
@@ -41917,20 +42307,20 @@ function EngagedAudienceDemographics({
|
|
|
41917
42307
|
)
|
|
41918
42308
|
) })
|
|
41919
42309
|
] }),
|
|
41920
|
-
hasGenders && /* @__PURE__ */
|
|
41921
|
-
([gender, value]) => /* @__PURE__ */
|
|
42310
|
+
hasGenders && /* @__PURE__ */ jsx169("div", { className: "flex flex-col justify-center", children: /* @__PURE__ */ jsx169("div", { className: "flex sm:flex-col gap-3", children: Object.entries(audienceDemographics?.genders || {}).map(
|
|
42311
|
+
([gender, value]) => /* @__PURE__ */ jsxs129(
|
|
41922
42312
|
"div",
|
|
41923
42313
|
{
|
|
41924
42314
|
className: "flex flex-col justify-center text-sm",
|
|
41925
42315
|
children: [
|
|
41926
|
-
/* @__PURE__ */
|
|
41927
|
-
gender === "female" ? /* @__PURE__ */
|
|
41928
|
-
/* @__PURE__ */
|
|
42316
|
+
/* @__PURE__ */ jsxs129("div", { className: "flex items-center gap-1 mb-1", children: [
|
|
42317
|
+
gender === "female" ? /* @__PURE__ */ jsx169(Venus, { className: "text-red-500", strokeWidth: 3 }) : /* @__PURE__ */ jsx169(Mars, { className: "text-blue-500", strokeWidth: 3 }),
|
|
42318
|
+
/* @__PURE__ */ jsxs129("span", { className: "capitalize text-gray800 text-xl", children: [
|
|
41929
42319
|
value,
|
|
41930
42320
|
"%"
|
|
41931
42321
|
] })
|
|
41932
42322
|
] }),
|
|
41933
|
-
/* @__PURE__ */
|
|
42323
|
+
/* @__PURE__ */ jsx169("span", { className: "text-lg text-gray700", children: gender.charAt(0).toUpperCase() + gender.slice(1) })
|
|
41934
42324
|
]
|
|
41935
42325
|
},
|
|
41936
42326
|
gender
|
|
@@ -41943,40 +42333,40 @@ function EngagedAudienceDemographics({
|
|
|
41943
42333
|
}
|
|
41944
42334
|
|
|
41945
42335
|
// src/molecules/creator-discovery/CreatorWidget/PlatformIcons.tsx
|
|
41946
|
-
import { jsx as
|
|
42336
|
+
import { jsx as jsx170 } from "react/jsx-runtime";
|
|
41947
42337
|
function InstagramIcon({ className }) {
|
|
41948
|
-
return /* @__PURE__ */
|
|
42338
|
+
return /* @__PURE__ */ jsx170(
|
|
41949
42339
|
"svg",
|
|
41950
42340
|
{
|
|
41951
42341
|
className,
|
|
41952
42342
|
viewBox: "0 0 24 24",
|
|
41953
42343
|
fill: "currentColor",
|
|
41954
42344
|
xmlns: "http://www.w3.org/2000/svg",
|
|
41955
|
-
children: /* @__PURE__ */
|
|
42345
|
+
children: /* @__PURE__ */ jsx170("path", { d: "M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zM12 0C8.741 0 8.333.014 7.053.072 2.695.272.273 2.69.073 7.052.014 8.333 0 8.741 0 12c0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98C8.333 23.986 8.741 24 12 24c3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98C15.668.014 15.259 0 12 0zm0 5.838a6.162 6.162 0 100 12.324 6.162 6.162 0 000-12.324zM12 16a4 4 0 110-8 4 4 0 010 8zm6.406-11.845a1.44 1.44 0 100 2.881 1.44 1.44 0 000-2.881z" })
|
|
41956
42346
|
}
|
|
41957
42347
|
);
|
|
41958
42348
|
}
|
|
41959
42349
|
function YouTubeIcon({ className }) {
|
|
41960
|
-
return /* @__PURE__ */
|
|
42350
|
+
return /* @__PURE__ */ jsx170(
|
|
41961
42351
|
"svg",
|
|
41962
42352
|
{
|
|
41963
42353
|
className,
|
|
41964
42354
|
viewBox: "0 0 24 24",
|
|
41965
42355
|
fill: "currentColor",
|
|
41966
42356
|
xmlns: "http://www.w3.org/2000/svg",
|
|
41967
|
-
children: /* @__PURE__ */
|
|
42357
|
+
children: /* @__PURE__ */ jsx170("path", { d: "M23.498 6.186a3.016 3.016 0 00-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 00.502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 002.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 002.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z" })
|
|
41968
42358
|
}
|
|
41969
42359
|
);
|
|
41970
42360
|
}
|
|
41971
42361
|
function TikTokIcon3({ className }) {
|
|
41972
|
-
return /* @__PURE__ */
|
|
42362
|
+
return /* @__PURE__ */ jsx170(
|
|
41973
42363
|
"svg",
|
|
41974
42364
|
{
|
|
41975
42365
|
className,
|
|
41976
42366
|
viewBox: "0 0 24 24",
|
|
41977
42367
|
fill: "currentColor",
|
|
41978
42368
|
xmlns: "http://www.w3.org/2000/svg",
|
|
41979
|
-
children: /* @__PURE__ */
|
|
42369
|
+
children: /* @__PURE__ */ jsx170("path", { d: "M12.525.02c1.31-.02 2.61-.01 3.91-.02.08 1.53.63 3.09 1.75 4.17 1.12 1.11 2.7 1.62 4.24 1.79v4.03c-1.44-.05-2.89-.35-4.2-.97-.57-.26-1.1-.59-1.62-.93-.01 2.92.01 5.84-.02 8.75-.08 1.4-.54 2.79-1.35 3.94-1.31 1.92-3.58 3.17-5.91 3.21-1.43.08-2.86-.31-4.08-1.03-2.02-1.19-3.44-3.37-3.65-5.71-.02-.5-.03-1-.01-1.49.18-1.9 1.12-3.72 2.58-4.96 1.66-1.44 3.98-2.13 6.15-1.72.02 1.48-.04 2.96-.04 4.44-.99-.32-2.15-.23-3.02.37-.63.41-1.11 1.04-1.36 1.75-.21.51-.15 1.07-.14 1.61.24 1.64 1.82 3.02 3.5 2.87 1.12-.01 2.19-.66 2.77-1.61.19-.33.4-.67.41-1.06.1-1.79.06-3.57.07-5.36.01-4.03-.01-8.05.02-12.07z" })
|
|
41980
42370
|
}
|
|
41981
42371
|
);
|
|
41982
42372
|
}
|
|
@@ -42010,8 +42400,8 @@ function getPlatformIconColor(platform) {
|
|
|
42010
42400
|
}
|
|
42011
42401
|
|
|
42012
42402
|
// src/molecules/creator-discovery/CreatorWidget/PostCard.tsx
|
|
42013
|
-
import { useState as
|
|
42014
|
-
import { Fragment as
|
|
42403
|
+
import { useState as useState16 } from "react";
|
|
42404
|
+
import { Fragment as Fragment9, jsx as jsx171, jsxs as jsxs130 } from "react/jsx-runtime";
|
|
42015
42405
|
var formatFollowerCount = (count) => {
|
|
42016
42406
|
if (count >= 1e6) {
|
|
42017
42407
|
const millions = count / 1e6;
|
|
@@ -42024,15 +42414,15 @@ var formatFollowerCount = (count) => {
|
|
|
42024
42414
|
return Math.floor(count).toString();
|
|
42025
42415
|
};
|
|
42026
42416
|
function PostCard({ post, platformUsername }) {
|
|
42027
|
-
const [expanded, setExpanded] =
|
|
42028
|
-
const [errored, setErrored] =
|
|
42417
|
+
const [expanded, setExpanded] = useState16(false);
|
|
42418
|
+
const [errored, setErrored] = useState16(false);
|
|
42029
42419
|
const thumbnail = post.thumbnail_url || post.thumbnail || post.image || "";
|
|
42030
42420
|
const likes = post.engagement?.likes ?? post.likes ?? null;
|
|
42031
42421
|
const comments = post.engagement?.comments ?? post.comments ?? null;
|
|
42032
42422
|
const views = post.engagement?.views ?? post.engagement?.plays ?? post.views ?? post.plays ?? null;
|
|
42033
42423
|
const impressions = post.impressions ?? null;
|
|
42034
42424
|
const reach = post.reach ?? null;
|
|
42035
|
-
return /* @__PURE__ */
|
|
42425
|
+
return /* @__PURE__ */ jsxs130(
|
|
42036
42426
|
"div",
|
|
42037
42427
|
{
|
|
42038
42428
|
className: "rounded-xl overflow-hidden border border-gray500 bg-transparent shadow-sm cursor-pointer",
|
|
@@ -42041,7 +42431,7 @@ function PostCard({ post, platformUsername }) {
|
|
|
42041
42431
|
window.open(post.url, "_blank", "noopener,noreferrer");
|
|
42042
42432
|
},
|
|
42043
42433
|
children: [
|
|
42044
|
-
/* @__PURE__ */
|
|
42434
|
+
/* @__PURE__ */ jsx171("div", { className: "w-full aspect-square relative bg-gray25", children: thumbnail && !errored ? /* @__PURE__ */ jsx171(
|
|
42045
42435
|
"img",
|
|
42046
42436
|
{
|
|
42047
42437
|
src: thumbnail,
|
|
@@ -42049,55 +42439,55 @@ function PostCard({ post, platformUsername }) {
|
|
|
42049
42439
|
className: "w-full h-full object-cover",
|
|
42050
42440
|
onError: () => setErrored(true)
|
|
42051
42441
|
}
|
|
42052
|
-
) : /* @__PURE__ */
|
|
42053
|
-
/* @__PURE__ */
|
|
42054
|
-
/* @__PURE__ */
|
|
42055
|
-
likes !== null && /* @__PURE__ */
|
|
42056
|
-
/* @__PURE__ */
|
|
42442
|
+
) : /* @__PURE__ */ jsx171("div", { className: "w-full h-full flex items-center justify-center text-gray500 text-sm", children: "No preview" }) }),
|
|
42443
|
+
/* @__PURE__ */ jsxs130("div", { className: "p-3", children: [
|
|
42444
|
+
/* @__PURE__ */ jsxs130("div", { className: "flex items-center gap-4 text-sm text-gray600 mb-2", children: [
|
|
42445
|
+
likes !== null && /* @__PURE__ */ jsxs130("div", { className: "flex items-center gap-1", children: [
|
|
42446
|
+
/* @__PURE__ */ jsx171("span", { children: formatFollowerCount(likes) }),
|
|
42057
42447
|
" ",
|
|
42058
|
-
/* @__PURE__ */
|
|
42448
|
+
/* @__PURE__ */ jsx171(Heart, { size: 14 })
|
|
42059
42449
|
] }),
|
|
42060
|
-
comments !== null && /* @__PURE__ */
|
|
42061
|
-
/* @__PURE__ */
|
|
42450
|
+
comments !== null && /* @__PURE__ */ jsxs130("div", { className: "flex items-center gap-1", children: [
|
|
42451
|
+
/* @__PURE__ */ jsx171("span", { children: formatFollowerCount(comments) }),
|
|
42062
42452
|
" ",
|
|
42063
|
-
/* @__PURE__ */
|
|
42453
|
+
/* @__PURE__ */ jsx171(MessageCircle, { size: 14 })
|
|
42064
42454
|
] }),
|
|
42065
|
-
views !== null && /* @__PURE__ */
|
|
42066
|
-
/* @__PURE__ */
|
|
42455
|
+
views !== null && /* @__PURE__ */ jsxs130("div", { className: "flex items-center gap-1", children: [
|
|
42456
|
+
/* @__PURE__ */ jsx171("span", { children: formatFollowerCount(views) }),
|
|
42067
42457
|
" ",
|
|
42068
|
-
/* @__PURE__ */
|
|
42458
|
+
/* @__PURE__ */ jsx171(Eye, { size: 14 })
|
|
42069
42459
|
] })
|
|
42070
42460
|
] }),
|
|
42071
|
-
/* @__PURE__ */
|
|
42072
|
-
impressions !== null && /* @__PURE__ */
|
|
42073
|
-
/* @__PURE__ */
|
|
42461
|
+
/* @__PURE__ */ jsxs130("div", { className: "flex gap-4 text-sm text-gray800 mb-2", children: [
|
|
42462
|
+
impressions !== null && /* @__PURE__ */ jsxs130("div", { children: [
|
|
42463
|
+
/* @__PURE__ */ jsx171("span", { className: "text-gray500 font-bold", children: formatFollowerCount(impressions) }),
|
|
42074
42464
|
" ",
|
|
42075
42465
|
"est.Impressions"
|
|
42076
42466
|
] }),
|
|
42077
|
-
reach !== null && /* @__PURE__ */
|
|
42078
|
-
/* @__PURE__ */
|
|
42467
|
+
reach !== null && /* @__PURE__ */ jsxs130("div", { children: [
|
|
42468
|
+
/* @__PURE__ */ jsx171("span", { className: "text-gray500 font-bold", children: formatFollowerCount(reach) }),
|
|
42079
42469
|
" ",
|
|
42080
42470
|
"est.Reach"
|
|
42081
42471
|
] })
|
|
42082
42472
|
] }),
|
|
42083
|
-
/* @__PURE__ */
|
|
42084
|
-
platformUsername && /* @__PURE__ */
|
|
42473
|
+
/* @__PURE__ */ jsxs130("div", { className: "text-sm mb-1", children: [
|
|
42474
|
+
platformUsername && /* @__PURE__ */ jsxs130("div", { className: "text-md font-semibold text-gray500", children: [
|
|
42085
42475
|
"@",
|
|
42086
42476
|
platformUsername
|
|
42087
42477
|
] }),
|
|
42088
42478
|
["instagram", "tiktok"].includes(
|
|
42089
42479
|
post.platform?.toLowerCase() || ""
|
|
42090
|
-
) ? /* @__PURE__ */
|
|
42480
|
+
) ? /* @__PURE__ */ jsx171(Fragment9, { children: (() => {
|
|
42091
42481
|
const text = post.title || post.description || "";
|
|
42092
|
-
return /* @__PURE__ */
|
|
42093
|
-
/* @__PURE__ */
|
|
42482
|
+
return /* @__PURE__ */ jsxs130(Fragment9, { children: [
|
|
42483
|
+
/* @__PURE__ */ jsx171(
|
|
42094
42484
|
"div",
|
|
42095
42485
|
{
|
|
42096
42486
|
className: `text-gray900 font-light mt-2 text-sm ${!expanded ? "line-clamp-3" : ""}`,
|
|
42097
42487
|
children: text
|
|
42098
42488
|
}
|
|
42099
42489
|
),
|
|
42100
|
-
text.length > 100 && /* @__PURE__ */
|
|
42490
|
+
text.length > 100 && /* @__PURE__ */ jsx171(
|
|
42101
42491
|
"button",
|
|
42102
42492
|
{
|
|
42103
42493
|
onClick: (e) => {
|
|
@@ -42109,9 +42499,9 @@ function PostCard({ post, platformUsername }) {
|
|
|
42109
42499
|
}
|
|
42110
42500
|
)
|
|
42111
42501
|
] });
|
|
42112
|
-
})() }) : /* @__PURE__ */
|
|
42113
|
-
post.title && /* @__PURE__ */
|
|
42114
|
-
post.description && /* @__PURE__ */
|
|
42502
|
+
})() }) : /* @__PURE__ */ jsxs130(Fragment9, { children: [
|
|
42503
|
+
post.title && /* @__PURE__ */ jsx171("div", { className: "text-gray900 font-light", children: post.title }),
|
|
42504
|
+
post.description && /* @__PURE__ */ jsx171(
|
|
42115
42505
|
"div",
|
|
42116
42506
|
{
|
|
42117
42507
|
className: "mt-2 text-sm text-gray900 overflow-hidden font-light",
|
|
@@ -42119,7 +42509,7 @@ function PostCard({ post, platformUsername }) {
|
|
|
42119
42509
|
children: post.description
|
|
42120
42510
|
}
|
|
42121
42511
|
),
|
|
42122
|
-
post.description && post.description.length > 200 && /* @__PURE__ */
|
|
42512
|
+
post.description && post.description.length > 200 && /* @__PURE__ */ jsx171(
|
|
42123
42513
|
"button",
|
|
42124
42514
|
{
|
|
42125
42515
|
onClick: (e) => {
|
|
@@ -42139,7 +42529,7 @@ function PostCard({ post, platformUsername }) {
|
|
|
42139
42529
|
}
|
|
42140
42530
|
|
|
42141
42531
|
// src/molecules/creator-discovery/CreatorWidget/PlatformPostsSection.tsx
|
|
42142
|
-
import { jsx as
|
|
42532
|
+
import { jsx as jsx172, jsxs as jsxs131 } from "react/jsx-runtime";
|
|
42143
42533
|
var formatFollowerCount2 = (count) => {
|
|
42144
42534
|
if (count >= 1e6) {
|
|
42145
42535
|
const millions = count / 1e6;
|
|
@@ -42163,18 +42553,18 @@ function PlatformMetricsBanner({
|
|
|
42163
42553
|
const platformName = getPlatformName(platform);
|
|
42164
42554
|
const bgColor = getPlatformBgColor(platform);
|
|
42165
42555
|
const IconComponent = getPlatformIcon(platform);
|
|
42166
|
-
return /* @__PURE__ */
|
|
42556
|
+
return /* @__PURE__ */ jsxs131(
|
|
42167
42557
|
"div",
|
|
42168
42558
|
{
|
|
42169
42559
|
className: "\n flex overflow-x-auto gap-6 rounded-l-xl py-4 px-4 shadow-sm\n md:grid md:grid-cols-[0.5fr_1fr_1fr_1fr_1fr] md:items-center md:gap-0 md:px-0 md:ml-8\n ",
|
|
42170
42560
|
style: { backgroundColor: bgColor },
|
|
42171
42561
|
children: [
|
|
42172
|
-
/* @__PURE__ */
|
|
42173
|
-
/* @__PURE__ */
|
|
42174
|
-
/* @__PURE__ */
|
|
42562
|
+
/* @__PURE__ */ jsxs131("div", { className: "flex flex-col items-center min-w-[90px] md:min-w-0", children: [
|
|
42563
|
+
/* @__PURE__ */ jsx172(IconComponent, { className: "w-5 h-5 md:w-6 md:h-6 text-gray900" }),
|
|
42564
|
+
/* @__PURE__ */ jsx172("span", { className: "text-lg md:text-xl font-bold text-gray900", children: platform === "youtubeMetrics" ? formatFollowerCount2(metrics.subscribers || 0) : formatFollowerCount2(metrics.followers || 0) })
|
|
42175
42565
|
] }),
|
|
42176
|
-
/* @__PURE__ */
|
|
42177
|
-
/* @__PURE__ */
|
|
42566
|
+
/* @__PURE__ */ jsxs131("div", { className: "flex flex-col items-start min-w-[130px] md:min-w-0", children: [
|
|
42567
|
+
/* @__PURE__ */ jsxs131(
|
|
42178
42568
|
"span",
|
|
42179
42569
|
{
|
|
42180
42570
|
className: "text-base md:text-lg dark:text-white max-w-[90%] truncate cursor-default",
|
|
@@ -42185,22 +42575,22 @@ function PlatformMetricsBanner({
|
|
|
42185
42575
|
]
|
|
42186
42576
|
}
|
|
42187
42577
|
),
|
|
42188
|
-
/* @__PURE__ */
|
|
42578
|
+
/* @__PURE__ */ jsx172("span", { className: "text-xs md:text-sm text-gray900 opacity-90", children: platformName })
|
|
42189
42579
|
] }),
|
|
42190
|
-
/* @__PURE__ */
|
|
42191
|
-
/* @__PURE__ */
|
|
42580
|
+
/* @__PURE__ */ jsxs131("div", { className: "flex flex-col items-start min-w-[100px] md:min-w-0", children: [
|
|
42581
|
+
/* @__PURE__ */ jsxs131("span", { className: "text-sm md:text-md font-semibold text-gray900", children: [
|
|
42192
42582
|
(metrics.engagementRate * 100).toFixed(2),
|
|
42193
42583
|
"%"
|
|
42194
42584
|
] }),
|
|
42195
|
-
/* @__PURE__ */
|
|
42585
|
+
/* @__PURE__ */ jsx172("span", { className: "text-xs text-gray900 opacity-80", children: "Engagement Rate" })
|
|
42196
42586
|
] }),
|
|
42197
|
-
/* @__PURE__ */
|
|
42198
|
-
/* @__PURE__ */
|
|
42199
|
-
/* @__PURE__ */
|
|
42587
|
+
/* @__PURE__ */ jsxs131("div", { className: "flex flex-col items-start min-w-[100px] md:min-w-0", children: [
|
|
42588
|
+
/* @__PURE__ */ jsx172("span", { className: "text-sm md:text-md font-semibold text-gray900", children: Math.round(metrics.avgLikes)?.toLocaleString() }),
|
|
42589
|
+
/* @__PURE__ */ jsx172("span", { className: "text-xs text-gray900 opacity-80", children: "Avg Likes" })
|
|
42200
42590
|
] }),
|
|
42201
|
-
/* @__PURE__ */
|
|
42202
|
-
/* @__PURE__ */
|
|
42203
|
-
/* @__PURE__ */
|
|
42591
|
+
/* @__PURE__ */ jsxs131("div", { className: "flex flex-col items-start min-w-[100px] md:min-w-0", children: [
|
|
42592
|
+
/* @__PURE__ */ jsx172("span", { className: "text-sm md:text-md font-semibold text-gray900", children: Math.round(metrics.avgComments)?.toLocaleString() }),
|
|
42593
|
+
/* @__PURE__ */ jsx172("span", { className: "text-xs text-gray900 opacity-80", children: "Avg Comments" })
|
|
42204
42594
|
] })
|
|
42205
42595
|
]
|
|
42206
42596
|
}
|
|
@@ -42211,16 +42601,16 @@ function PlatformPostsSection({
|
|
|
42211
42601
|
posts = []
|
|
42212
42602
|
}) {
|
|
42213
42603
|
if (!platformMetrics) return null;
|
|
42214
|
-
return /* @__PURE__ */
|
|
42604
|
+
return /* @__PURE__ */ jsx172("div", { className: "flex flex-col gap-4", children: /* @__PURE__ */ jsx172("div", { className: "flex flex-col gap-8", children: Object.entries(platformMetrics || {}).map(
|
|
42215
42605
|
([platform, metrics]) => {
|
|
42216
42606
|
if (!metrics) return null;
|
|
42217
42607
|
if (metrics.followers === 0 && metrics.subscribers === 0)
|
|
42218
42608
|
return null;
|
|
42219
42609
|
const platformPosts = filterPostsByPlatform(posts, platform);
|
|
42220
42610
|
const platformUsername = metrics.username ?? metrics.channelName ?? "";
|
|
42221
|
-
return /* @__PURE__ */
|
|
42222
|
-
/* @__PURE__ */
|
|
42223
|
-
platformPosts.length > 0 && /* @__PURE__ */
|
|
42611
|
+
return /* @__PURE__ */ jsxs131("div", { className: "w-full flex flex-col gap-8", children: [
|
|
42612
|
+
/* @__PURE__ */ jsx172(PlatformMetricsBanner, { platform, metrics }),
|
|
42613
|
+
platformPosts.length > 0 && /* @__PURE__ */ jsx172("div", { className: "pr-6 sm:ml-8 sm:pr-7", children: /* @__PURE__ */ jsx172("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-4", children: platformPosts.map((post, idx) => /* @__PURE__ */ jsx172(
|
|
42224
42614
|
PostCard,
|
|
42225
42615
|
{
|
|
42226
42616
|
post,
|
|
@@ -42234,10 +42624,10 @@ function PlatformPostsSection({
|
|
|
42234
42624
|
}
|
|
42235
42625
|
|
|
42236
42626
|
// src/molecules/creator-discovery/CreatorWidget/BrandCollaborationsList.tsx
|
|
42237
|
-
import { useState as
|
|
42627
|
+
import { useState as useState17 } from "react";
|
|
42238
42628
|
import ReactDOM from "react-dom";
|
|
42239
42629
|
import { AnimatePresence as AnimatePresence3, motion as motion3 } from "framer-motion";
|
|
42240
|
-
import { Fragment as
|
|
42630
|
+
import { Fragment as Fragment10, jsx as jsx173, jsxs as jsxs132 } from "react/jsx-runtime";
|
|
42241
42631
|
var getSentimentRank = (score) => {
|
|
42242
42632
|
if (score >= 80) {
|
|
42243
42633
|
return {
|
|
@@ -42282,8 +42672,8 @@ function BrandMentionDetails({
|
|
|
42282
42672
|
) || [];
|
|
42283
42673
|
if (typeof window === "undefined") return null;
|
|
42284
42674
|
return ReactDOM.createPortal(
|
|
42285
|
-
/* @__PURE__ */
|
|
42286
|
-
/* @__PURE__ */
|
|
42675
|
+
/* @__PURE__ */ jsx173(AnimatePresence3, { mode: "sync", children: open && /* @__PURE__ */ jsxs132(Fragment10, { children: [
|
|
42676
|
+
/* @__PURE__ */ jsx173(
|
|
42287
42677
|
motion3.div,
|
|
42288
42678
|
{
|
|
42289
42679
|
initial: { opacity: 0 },
|
|
@@ -42298,7 +42688,7 @@ function BrandMentionDetails({
|
|
|
42298
42688
|
},
|
|
42299
42689
|
"brand-overlay"
|
|
42300
42690
|
),
|
|
42301
|
-
/* @__PURE__ */
|
|
42691
|
+
/* @__PURE__ */ jsxs132(
|
|
42302
42692
|
motion3.div,
|
|
42303
42693
|
{
|
|
42304
42694
|
initial: { opacity: 0, scale: 0.95 },
|
|
@@ -42308,42 +42698,42 @@ function BrandMentionDetails({
|
|
|
42308
42698
|
className: "fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 z-[90] w-full max-w-lg bg-background rounded-xl border border-gray300 shadow-2xl",
|
|
42309
42699
|
onClick: (e) => e.stopPropagation(),
|
|
42310
42700
|
children: [
|
|
42311
|
-
/* @__PURE__ */
|
|
42312
|
-
/* @__PURE__ */
|
|
42701
|
+
/* @__PURE__ */ jsxs132("div", { className: "flex justify-between items-center p-4 border-b border-gray300", children: [
|
|
42702
|
+
/* @__PURE__ */ jsxs132("h3", { className: "text-lg font-bold text-gray900", children: [
|
|
42313
42703
|
"Brand Mention Details: ",
|
|
42314
42704
|
selectedBrand
|
|
42315
42705
|
] }),
|
|
42316
|
-
/* @__PURE__ */
|
|
42706
|
+
/* @__PURE__ */ jsx173(
|
|
42317
42707
|
"button",
|
|
42318
42708
|
{
|
|
42319
42709
|
onClick: onClose,
|
|
42320
42710
|
className: "p-1 rounded-full hover:bg-gray200 transition-colors",
|
|
42321
|
-
children: /* @__PURE__ */
|
|
42711
|
+
children: /* @__PURE__ */ jsx173(X, { className: "w-4 h-4" })
|
|
42322
42712
|
}
|
|
42323
42713
|
)
|
|
42324
42714
|
] }),
|
|
42325
|
-
/* @__PURE__ */
|
|
42326
|
-
brandStats && /* @__PURE__ */
|
|
42327
|
-
/* @__PURE__ */
|
|
42328
|
-
/* @__PURE__ */
|
|
42329
|
-
/* @__PURE__ */
|
|
42330
|
-
/* @__PURE__ */
|
|
42331
|
-
/* @__PURE__ */
|
|
42715
|
+
/* @__PURE__ */ jsxs132("div", { className: "flex flex-col gap-6 max-h-[70vh] overflow-y-auto p-4", children: [
|
|
42716
|
+
brandStats && /* @__PURE__ */ jsxs132("div", { className: "bg-gray25 border-2 border-gray200 rounded-xl p-4", children: [
|
|
42717
|
+
/* @__PURE__ */ jsx173("h3", { className: "text-lg font-bold text-gray900 mb-4", children: "Overview" }),
|
|
42718
|
+
/* @__PURE__ */ jsxs132("div", { className: "grid grid-cols-2 gap-4", children: [
|
|
42719
|
+
/* @__PURE__ */ jsxs132("div", { className: "bg-background rounded-lg p-3", children: [
|
|
42720
|
+
/* @__PURE__ */ jsx173("div", { className: "text-xs text-gray600", children: "Total Mentions" }),
|
|
42721
|
+
/* @__PURE__ */ jsx173("div", { className: "text-2xl font-bold text-gray900", children: brandStats.mentions })
|
|
42332
42722
|
] }),
|
|
42333
|
-
/* @__PURE__ */
|
|
42334
|
-
/* @__PURE__ */
|
|
42335
|
-
/* @__PURE__ */
|
|
42723
|
+
/* @__PURE__ */ jsxs132("div", { className: "bg-background rounded-lg p-3", children: [
|
|
42724
|
+
/* @__PURE__ */ jsx173("div", { className: "text-xs text-gray600", children: "Posts Count" }),
|
|
42725
|
+
/* @__PURE__ */ jsx173("div", { className: "text-2xl font-bold text-gray900", children: brandStats.postCount })
|
|
42336
42726
|
] }),
|
|
42337
|
-
/* @__PURE__ */
|
|
42338
|
-
/* @__PURE__ */
|
|
42339
|
-
/* @__PURE__ */
|
|
42727
|
+
/* @__PURE__ */ jsxs132("div", { className: "bg-background rounded-lg p-3", children: [
|
|
42728
|
+
/* @__PURE__ */ jsx173("div", { className: "text-xs text-gray600", children: "Avg Engagement" }),
|
|
42729
|
+
/* @__PURE__ */ jsxs132("div", { className: "text-2xl font-bold text-gray900", children: [
|
|
42340
42730
|
brandStats.averageEngagementRate?.toFixed(2),
|
|
42341
42731
|
"%"
|
|
42342
42732
|
] })
|
|
42343
42733
|
] }),
|
|
42344
|
-
/* @__PURE__ */
|
|
42345
|
-
/* @__PURE__ */
|
|
42346
|
-
/* @__PURE__ */
|
|
42734
|
+
/* @__PURE__ */ jsxs132("div", { className: "bg-background rounded-lg p-3", children: [
|
|
42735
|
+
/* @__PURE__ */ jsx173("div", { className: "text-xs text-gray600", children: "Effectiveness" }),
|
|
42736
|
+
/* @__PURE__ */ jsxs132(
|
|
42347
42737
|
"div",
|
|
42348
42738
|
{
|
|
42349
42739
|
className: `text-2xl font-bold ${getSentimentRank(brandStats.effectivenessPercent).scoreColor}`,
|
|
@@ -42355,8 +42745,8 @@ function BrandMentionDetails({
|
|
|
42355
42745
|
)
|
|
42356
42746
|
] })
|
|
42357
42747
|
] }),
|
|
42358
|
-
/* @__PURE__ */
|
|
42359
|
-
(type, idx) => /* @__PURE__ */
|
|
42748
|
+
/* @__PURE__ */ jsx173("div", { className: "mt-3 flex gap-2 flex-wrap", children: brandStats.collaborationTypes?.map(
|
|
42749
|
+
(type, idx) => /* @__PURE__ */ jsx173(
|
|
42360
42750
|
"span",
|
|
42361
42751
|
{
|
|
42362
42752
|
className: "px-3 py-1 rounded-md text-xs font-medium bg-[#1D4324] text-[#72E285]",
|
|
@@ -42366,55 +42756,55 @@ function BrandMentionDetails({
|
|
|
42366
42756
|
)
|
|
42367
42757
|
) })
|
|
42368
42758
|
] }),
|
|
42369
|
-
/* @__PURE__ */
|
|
42370
|
-
/* @__PURE__ */
|
|
42759
|
+
/* @__PURE__ */ jsxs132("div", { children: [
|
|
42760
|
+
/* @__PURE__ */ jsxs132("h3", { className: "text-lg font-bold text-gray900 mb-3", children: [
|
|
42371
42761
|
"Individual Mentions (",
|
|
42372
42762
|
brandMentions.length,
|
|
42373
42763
|
")"
|
|
42374
42764
|
] }),
|
|
42375
|
-
/* @__PURE__ */
|
|
42765
|
+
/* @__PURE__ */ jsx173("div", { className: "flex flex-col gap-3", children: brandMentions.map((mention, index) => {
|
|
42376
42766
|
const IconComponent = getPlatformIcon(mention?.platform);
|
|
42377
|
-
return /* @__PURE__ */
|
|
42767
|
+
return /* @__PURE__ */ jsxs132(
|
|
42378
42768
|
"div",
|
|
42379
42769
|
{
|
|
42380
42770
|
className: "bg-gray50 border-2 border-gray200 rounded-xl p-4 hover:border-purple100 transition-colors",
|
|
42381
42771
|
children: [
|
|
42382
|
-
/* @__PURE__ */
|
|
42383
|
-
/* @__PURE__ */
|
|
42384
|
-
/* @__PURE__ */
|
|
42385
|
-
/* @__PURE__ */
|
|
42772
|
+
/* @__PURE__ */ jsxs132("div", { className: "flex items-center justify-between mb-3", children: [
|
|
42773
|
+
/* @__PURE__ */ jsxs132("div", { className: "flex items-center gap-2", children: [
|
|
42774
|
+
/* @__PURE__ */ jsx173(IconComponent, { className: "w-5 h-5 text-gray900" }),
|
|
42775
|
+
/* @__PURE__ */ jsx173("span", { className: "text-sm font-medium text-gray700 capitalize", children: mention.platform })
|
|
42386
42776
|
] }),
|
|
42387
|
-
/* @__PURE__ */
|
|
42388
|
-
/* @__PURE__ */
|
|
42389
|
-
/* @__PURE__ */
|
|
42777
|
+
/* @__PURE__ */ jsxs132("div", { className: "flex items-center gap-2", children: [
|
|
42778
|
+
/* @__PURE__ */ jsx173("span", { className: "px-2 py-1 rounded-md text-xs font-medium bg-[#1D4324] text-[#72E285]", children: mention.collaborationType }),
|
|
42779
|
+
/* @__PURE__ */ jsxs132("span", { className: "text-xs text-gray600", children: [
|
|
42390
42780
|
Math.round(mention.confidence * 100),
|
|
42391
42781
|
"% confidence"
|
|
42392
42782
|
] })
|
|
42393
42783
|
] })
|
|
42394
42784
|
] }),
|
|
42395
|
-
/* @__PURE__ */
|
|
42396
|
-
/* @__PURE__ */
|
|
42785
|
+
/* @__PURE__ */ jsxs132("div", { className: "mb-2", children: [
|
|
42786
|
+
/* @__PURE__ */ jsxs132("span", { className: "text-xs text-gray500", children: [
|
|
42397
42787
|
"Post ID:",
|
|
42398
42788
|
" "
|
|
42399
42789
|
] }),
|
|
42400
|
-
/* @__PURE__ */
|
|
42790
|
+
/* @__PURE__ */ jsx173("span", { className: "text-xs font-mono text-gray700", children: mention.post_id })
|
|
42401
42791
|
] }),
|
|
42402
|
-
/* @__PURE__ */
|
|
42403
|
-
/* @__PURE__ */
|
|
42404
|
-
/* @__PURE__ */
|
|
42792
|
+
/* @__PURE__ */ jsxs132("div", { className: "bg-background rounded-lg p-3 border border-gray300", children: [
|
|
42793
|
+
/* @__PURE__ */ jsx173("div", { className: "text-xs text-gray600 mb-1", children: "Evidence:" }),
|
|
42794
|
+
/* @__PURE__ */ jsxs132("p", { className: "text-sm text-gray800 italic", children: [
|
|
42405
42795
|
"\u201C",
|
|
42406
42796
|
mention.evidence,
|
|
42407
42797
|
"\u201D"
|
|
42408
42798
|
] })
|
|
42409
42799
|
] }),
|
|
42410
|
-
/* @__PURE__ */
|
|
42800
|
+
/* @__PURE__ */ jsxs132("div", { className: "mt-2 text-xs text-gray500", children: [
|
|
42411
42801
|
"Source:",
|
|
42412
42802
|
" ",
|
|
42413
|
-
/* @__PURE__ */
|
|
42414
|
-
mention.handle && /* @__PURE__ */
|
|
42803
|
+
/* @__PURE__ */ jsx173("span", { className: "font-medium", children: mention.source }),
|
|
42804
|
+
mention.handle && /* @__PURE__ */ jsxs132("span", { className: "ml-2", children: [
|
|
42415
42805
|
"Handle:",
|
|
42416
42806
|
" ",
|
|
42417
|
-
/* @__PURE__ */
|
|
42807
|
+
/* @__PURE__ */ jsx173("span", { className: "font-medium", children: mention.handle })
|
|
42418
42808
|
] })
|
|
42419
42809
|
] })
|
|
42420
42810
|
]
|
|
@@ -42423,7 +42813,7 @@ function BrandMentionDetails({
|
|
|
42423
42813
|
);
|
|
42424
42814
|
}) })
|
|
42425
42815
|
] }),
|
|
42426
|
-
brandMentions.length === 0 && /* @__PURE__ */
|
|
42816
|
+
brandMentions.length === 0 && /* @__PURE__ */ jsx173("div", { className: "text-center py-8 text-gray500", children: "No mentions found for this brand" })
|
|
42427
42817
|
] })
|
|
42428
42818
|
]
|
|
42429
42819
|
},
|
|
@@ -42436,16 +42826,16 @@ function BrandMentionDetails({
|
|
|
42436
42826
|
function BrandCollaborationsList({
|
|
42437
42827
|
brandBreakdown
|
|
42438
42828
|
}) {
|
|
42439
|
-
const [openDetails, setOpenDetails] =
|
|
42440
|
-
const [selectedBrand, setSelectedBrand] =
|
|
42829
|
+
const [openDetails, setOpenDetails] = useState17(false);
|
|
42830
|
+
const [selectedBrand, setSelectedBrand] = useState17("");
|
|
42441
42831
|
if (!brandBreakdown?.insights?.brandBreakdown || brandBreakdown.insights.brandBreakdown.length === 0) {
|
|
42442
42832
|
return null;
|
|
42443
42833
|
}
|
|
42444
|
-
return /* @__PURE__ */
|
|
42445
|
-
/* @__PURE__ */
|
|
42446
|
-
/* @__PURE__ */
|
|
42447
|
-
/* @__PURE__ */
|
|
42448
|
-
(item, index) => /* @__PURE__ */
|
|
42834
|
+
return /* @__PURE__ */ jsxs132(Fragment10, { children: [
|
|
42835
|
+
/* @__PURE__ */ jsxs132("div", { children: [
|
|
42836
|
+
/* @__PURE__ */ jsx173("div", { className: "text-purpleText text-xs mb-2", children: /* @__PURE__ */ jsx173("span", { className: "rounded-md bg-purple200 px-2 py-[4px] font-sans", children: "BRAND MENTIONS" }) }),
|
|
42837
|
+
/* @__PURE__ */ jsx173("div", { className: "flex flex-col gap-2 max-h-[220px] overflow-y-auto", children: brandBreakdown.insights.brandBreakdown.map(
|
|
42838
|
+
(item, index) => /* @__PURE__ */ jsxs132(
|
|
42449
42839
|
"div",
|
|
42450
42840
|
{
|
|
42451
42841
|
className: "flex gap-4 bg-gray50 border-2 border-gray25 rounded-xl px-3 py-3 shadow-sm cursor-pointer hover:border-purple100 transition-colors",
|
|
@@ -42455,17 +42845,17 @@ function BrandCollaborationsList({
|
|
|
42455
42845
|
setOpenDetails(true);
|
|
42456
42846
|
},
|
|
42457
42847
|
children: [
|
|
42458
|
-
/* @__PURE__ */
|
|
42459
|
-
/* @__PURE__ */
|
|
42460
|
-
/* @__PURE__ */
|
|
42461
|
-
/* @__PURE__ */
|
|
42462
|
-
/* @__PURE__ */
|
|
42463
|
-
/* @__PURE__ */
|
|
42848
|
+
/* @__PURE__ */ jsx173("div", { className: "w-10 h-10 rounded-full bg-gray200 flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx173("span", { className: "text-sm font-bold text-gray700", children: item.brand?.charAt(0)?.toUpperCase() || "?" }) }),
|
|
42849
|
+
/* @__PURE__ */ jsxs132("div", { className: "flex flex-col gap-1", children: [
|
|
42850
|
+
/* @__PURE__ */ jsx173("div", { className: "text-gray900 text-sm", children: item.brand }),
|
|
42851
|
+
/* @__PURE__ */ jsxs132("div", { className: "flex gap-2 text-xs text-gray600", children: [
|
|
42852
|
+
/* @__PURE__ */ jsxs132("div", { children: [
|
|
42853
|
+
/* @__PURE__ */ jsx173("span", { className: "text-gray900", children: item?.mentions }),
|
|
42464
42854
|
" ",
|
|
42465
42855
|
"Mention"
|
|
42466
42856
|
] }),
|
|
42467
|
-
/* @__PURE__ */
|
|
42468
|
-
/* @__PURE__ */
|
|
42857
|
+
/* @__PURE__ */ jsxs132("div", { children: [
|
|
42858
|
+
/* @__PURE__ */ jsx173(
|
|
42469
42859
|
"span",
|
|
42470
42860
|
{
|
|
42471
42861
|
className: `${getSentimentRank(item.effectivenessPercent).scoreColor} font-bold`,
|
|
@@ -42483,7 +42873,7 @@ function BrandCollaborationsList({
|
|
|
42483
42873
|
)
|
|
42484
42874
|
) })
|
|
42485
42875
|
] }),
|
|
42486
|
-
/* @__PURE__ */
|
|
42876
|
+
/* @__PURE__ */ jsx173(
|
|
42487
42877
|
BrandMentionDetails,
|
|
42488
42878
|
{
|
|
42489
42879
|
open: openDetails,
|
|
@@ -42496,9 +42886,9 @@ function BrandCollaborationsList({
|
|
|
42496
42886
|
}
|
|
42497
42887
|
|
|
42498
42888
|
// src/molecules/creator-discovery/CreatorWidget/CreatorGridView.tsx
|
|
42499
|
-
import { useState as
|
|
42889
|
+
import { useState as useState18, useMemo as useMemo10, useRef as useRef8, useCallback as useCallback6, useEffect as useEffect11 } from "react";
|
|
42500
42890
|
import { motion as motion4 } from "framer-motion";
|
|
42501
|
-
import { jsx as
|
|
42891
|
+
import { jsx as jsx174, jsxs as jsxs133 } from "react/jsx-runtime";
|
|
42502
42892
|
var formatFollowerCount3 = (count) => {
|
|
42503
42893
|
if (count >= 1e6) {
|
|
42504
42894
|
const millions = count / 1e6;
|
|
@@ -42545,20 +42935,20 @@ var itemsExplanation = [
|
|
|
42545
42935
|
{ key: "brandSafety", label: "Brand Safety" }
|
|
42546
42936
|
];
|
|
42547
42937
|
function CreatorGridViewCard({ creator }) {
|
|
42548
|
-
const [isExpanded, setIsExpanded] =
|
|
42549
|
-
const [showFullDescription, setShowFullDescription] =
|
|
42550
|
-
const [isDescriptionOverflowing, setIsDescriptionOverflowing] =
|
|
42551
|
-
const descriptionRef =
|
|
42552
|
-
const cardRef =
|
|
42553
|
-
const checkDescriptionOverflow =
|
|
42938
|
+
const [isExpanded, setIsExpanded] = useState18(false);
|
|
42939
|
+
const [showFullDescription, setShowFullDescription] = useState18(false);
|
|
42940
|
+
const [isDescriptionOverflowing, setIsDescriptionOverflowing] = useState18(false);
|
|
42941
|
+
const descriptionRef = useRef8(null);
|
|
42942
|
+
const cardRef = useRef8(null);
|
|
42943
|
+
const checkDescriptionOverflow = useCallback6(() => {
|
|
42554
42944
|
const el = descriptionRef.current;
|
|
42555
42945
|
if (!el) return;
|
|
42556
42946
|
setIsDescriptionOverflowing(el.scrollHeight > el.clientHeight + 1);
|
|
42557
42947
|
}, []);
|
|
42558
|
-
|
|
42948
|
+
useEffect11(() => {
|
|
42559
42949
|
checkDescriptionOverflow();
|
|
42560
42950
|
}, [checkDescriptionOverflow, isExpanded, showFullDescription]);
|
|
42561
|
-
|
|
42951
|
+
useEffect11(() => {
|
|
42562
42952
|
const onResize = () => checkDescriptionOverflow();
|
|
42563
42953
|
window.addEventListener("resize", onResize);
|
|
42564
42954
|
return () => window.removeEventListener("resize", onResize);
|
|
@@ -42599,7 +42989,7 @@ function CreatorGridViewCard({ creator }) {
|
|
|
42599
42989
|
};
|
|
42600
42990
|
const iso2 = normalizeToIso2(creator.country);
|
|
42601
42991
|
const meta = codeToMeta[iso2];
|
|
42602
|
-
return /* @__PURE__ */
|
|
42992
|
+
return /* @__PURE__ */ jsx174(
|
|
42603
42993
|
motion4.div,
|
|
42604
42994
|
{
|
|
42605
42995
|
ref: cardRef,
|
|
@@ -42610,10 +43000,10 @@ function CreatorGridViewCard({ creator }) {
|
|
|
42610
43000
|
className: `bg-paperBackground dark:bg-gray50 rounded-[10px] border border-gray300 hover:border-purple100 shadow-sm cursor-pointer transition-all duration-300 ease-in-out ${isExpanded ? "col-span-full border-purple100" : ""}`,
|
|
42611
43001
|
style: isExpanded ? { gridColumn: "1 / -1" } : {},
|
|
42612
43002
|
onClick: toggleExpanded,
|
|
42613
|
-
children: /* @__PURE__ */
|
|
42614
|
-
/* @__PURE__ */
|
|
42615
|
-
/* @__PURE__ */
|
|
42616
|
-
creator.profile_pic ? /* @__PURE__ */
|
|
43003
|
+
children: /* @__PURE__ */ jsxs133("div", { className: "flex", children: [
|
|
43004
|
+
/* @__PURE__ */ jsxs133("div", { className: `${isExpanded ? "w-1/3" : "w-full"}`, children: [
|
|
43005
|
+
/* @__PURE__ */ jsxs133("div", { className: "relative w-full aspect-square mb-2", children: [
|
|
43006
|
+
creator.profile_pic ? /* @__PURE__ */ jsx174(
|
|
42617
43007
|
"img",
|
|
42618
43008
|
{
|
|
42619
43009
|
src: creator.profile_pic,
|
|
@@ -42621,15 +43011,15 @@ function CreatorGridViewCard({ creator }) {
|
|
|
42621
43011
|
className: "w-full h-full object-cover bg-primary/10",
|
|
42622
43012
|
style: { borderRadius: "10px 10px 0 0" }
|
|
42623
43013
|
}
|
|
42624
|
-
) : /* @__PURE__ */
|
|
43014
|
+
) : /* @__PURE__ */ jsx174(
|
|
42625
43015
|
"div",
|
|
42626
43016
|
{
|
|
42627
43017
|
className: "w-full h-full bg-primary/10 flex items-center justify-center",
|
|
42628
43018
|
style: { borderRadius: "10px 10px 0 0" },
|
|
42629
|
-
children: /* @__PURE__ */
|
|
43019
|
+
children: /* @__PURE__ */ jsx174("span", { className: "text-2xl text-primary", children: creator.name?.charAt(0) || "?" })
|
|
42630
43020
|
}
|
|
42631
43021
|
),
|
|
42632
|
-
/* @__PURE__ */
|
|
43022
|
+
/* @__PURE__ */ jsx174(
|
|
42633
43023
|
"div",
|
|
42634
43024
|
{
|
|
42635
43025
|
className: `absolute bottom-2 right-2 ${getSentimentRank2(creator.sentiment?.matchScore || 0).bgColor} ${getSentimentRank2(creator.sentiment?.matchScore || 0).textColor} px-2 py-1 rounded-md text-md font-medium`,
|
|
@@ -42637,34 +43027,34 @@ function CreatorGridViewCard({ creator }) {
|
|
|
42637
43027
|
}
|
|
42638
43028
|
)
|
|
42639
43029
|
] }),
|
|
42640
|
-
/* @__PURE__ */
|
|
42641
|
-
/* @__PURE__ */
|
|
42642
|
-
/* @__PURE__ */
|
|
43030
|
+
/* @__PURE__ */ jsxs133("div", { className: "px-3 pb-1", children: [
|
|
43031
|
+
/* @__PURE__ */ jsxs133("div", { children: [
|
|
43032
|
+
/* @__PURE__ */ jsx174(
|
|
42643
43033
|
"h3",
|
|
42644
43034
|
{
|
|
42645
43035
|
className: `${isExpanded ? "text-md" : "text-sm"} font-normal text-gray900 mb-1 line-clamp-2 text-start`,
|
|
42646
43036
|
children: creator.name || "Unnamed"
|
|
42647
43037
|
}
|
|
42648
43038
|
),
|
|
42649
|
-
/* @__PURE__ */
|
|
43039
|
+
/* @__PURE__ */ jsxs133(
|
|
42650
43040
|
"div",
|
|
42651
43041
|
{
|
|
42652
43042
|
className: `${isExpanded ? "text-sm" : "text-xs"} text-gray700 mb-1 text-start flex items-center gap-1`,
|
|
42653
43043
|
children: [
|
|
42654
|
-
/* @__PURE__ */
|
|
42655
|
-
/* @__PURE__ */
|
|
43044
|
+
/* @__PURE__ */ jsx174("span", { className: "text-base", children: meta?.flag }),
|
|
43045
|
+
/* @__PURE__ */ jsx174("span", { children: meta?.name || creator.country || "Unknown" })
|
|
42656
43046
|
]
|
|
42657
43047
|
}
|
|
42658
43048
|
),
|
|
42659
|
-
isExpanded && creator?.sentiment?.detailedScores && /* @__PURE__ */
|
|
43049
|
+
isExpanded && creator?.sentiment?.detailedScores && /* @__PURE__ */ jsx174("div", { className: "overflow-x-auto", children: /* @__PURE__ */ jsx174("div", { className: "mt-2 w-[150px] flex gap-2", children: Object.entries(creator.sentiment.detailedScores).map(
|
|
42660
43050
|
([key, value]) => {
|
|
42661
43051
|
const itemRank = getSentimentRank2(value);
|
|
42662
|
-
return /* @__PURE__ */
|
|
43052
|
+
return /* @__PURE__ */ jsxs133(
|
|
42663
43053
|
"div",
|
|
42664
43054
|
{
|
|
42665
43055
|
className: "flex flex-col items-center w-[100px]",
|
|
42666
43056
|
children: [
|
|
42667
|
-
/* @__PURE__ */
|
|
43057
|
+
/* @__PURE__ */ jsxs133(
|
|
42668
43058
|
"span",
|
|
42669
43059
|
{
|
|
42670
43060
|
className: `text-[14px] font-bold ${itemRank.scoreColor}`,
|
|
@@ -42674,7 +43064,7 @@ function CreatorGridViewCard({ creator }) {
|
|
|
42674
43064
|
]
|
|
42675
43065
|
}
|
|
42676
43066
|
),
|
|
42677
|
-
/* @__PURE__ */
|
|
43067
|
+
/* @__PURE__ */ jsx174("div", { className: "flex items-center justify-center gap-1 w-full", children: /* @__PURE__ */ jsx174("span", { className: "text-xs dark:text-gray500 text-center px-1", children: itemsExplanation.find(
|
|
42678
43068
|
(item) => item.key === key
|
|
42679
43069
|
)?.label }) })
|
|
42680
43070
|
]
|
|
@@ -42684,20 +43074,20 @@ function CreatorGridViewCard({ creator }) {
|
|
|
42684
43074
|
}
|
|
42685
43075
|
) }) })
|
|
42686
43076
|
] }),
|
|
42687
|
-
!isExpanded && /* @__PURE__ */
|
|
42688
|
-
({ platform, icon: Icon3, followers }) => /* @__PURE__ */
|
|
43077
|
+
!isExpanded && /* @__PURE__ */ jsx174("div", { className: "flex gap-2 justify-between", children: platformStats.map(
|
|
43078
|
+
({ platform, icon: Icon3, followers }) => /* @__PURE__ */ jsxs133(
|
|
42689
43079
|
"div",
|
|
42690
43080
|
{
|
|
42691
43081
|
className: "flex flex-col items-center gap-1",
|
|
42692
43082
|
title: `${formatFollowerCount3(followers)} followers`,
|
|
42693
43083
|
children: [
|
|
42694
|
-
/* @__PURE__ */
|
|
43084
|
+
/* @__PURE__ */ jsx174(
|
|
42695
43085
|
Icon3,
|
|
42696
43086
|
{
|
|
42697
43087
|
className: `w-5 h-5 ${getPlatformIconColor(platform)}`
|
|
42698
43088
|
}
|
|
42699
43089
|
),
|
|
42700
|
-
/* @__PURE__ */
|
|
43090
|
+
/* @__PURE__ */ jsx174("span", { className: "text-xs dark:text-gray500", children: followers > 0 && formatFollowerCount3(followers) })
|
|
42701
43091
|
]
|
|
42702
43092
|
},
|
|
42703
43093
|
platform
|
|
@@ -42705,20 +43095,20 @@ function CreatorGridViewCard({ creator }) {
|
|
|
42705
43095
|
) })
|
|
42706
43096
|
] })
|
|
42707
43097
|
] }),
|
|
42708
|
-
isExpanded && /* @__PURE__ */
|
|
42709
|
-
/* @__PURE__ */
|
|
42710
|
-
/* @__PURE__ */
|
|
43098
|
+
isExpanded && /* @__PURE__ */ jsx174("div", { className: "flex-1 border-l border-gray300 p-6 overflow-hidden transition-all duration-300 ease-in-out", children: /* @__PURE__ */ jsxs133("div", { className: "space-y-4", children: [
|
|
43099
|
+
/* @__PURE__ */ jsxs133("div", { children: [
|
|
43100
|
+
/* @__PURE__ */ jsxs133(
|
|
42711
43101
|
"div",
|
|
42712
43102
|
{
|
|
42713
43103
|
ref: descriptionRef,
|
|
42714
43104
|
className: `${showFullDescription ? "" : "max-h-[80px] overflow-hidden"} relative`,
|
|
42715
43105
|
children: [
|
|
42716
|
-
/* @__PURE__ */
|
|
42717
|
-
!showFullDescription && isDescriptionOverflowing && /* @__PURE__ */
|
|
43106
|
+
/* @__PURE__ */ jsx174("p", { className: "text-sm text-gray700 leading-relaxed", children: creator.description || "No description provided." }),
|
|
43107
|
+
!showFullDescription && isDescriptionOverflowing && /* @__PURE__ */ jsx174("div", { className: "pointer-events-none absolute bottom-0 left-0 right-0 h-10 bg-gradient-to-t from-gray25 to-transparent" })
|
|
42718
43108
|
]
|
|
42719
43109
|
}
|
|
42720
43110
|
),
|
|
42721
|
-
(isDescriptionOverflowing || showFullDescription) && /* @__PURE__ */
|
|
43111
|
+
(isDescriptionOverflowing || showFullDescription) && /* @__PURE__ */ jsx174(
|
|
42722
43112
|
"button",
|
|
42723
43113
|
{
|
|
42724
43114
|
onClick: (e) => {
|
|
@@ -42730,38 +43120,38 @@ function CreatorGridViewCard({ creator }) {
|
|
|
42730
43120
|
}
|
|
42731
43121
|
)
|
|
42732
43122
|
] }),
|
|
42733
|
-
/* @__PURE__ */
|
|
42734
|
-
({ platform, icon: Icon3, followers, engagement }) => /* @__PURE__ */
|
|
42735
|
-
/* @__PURE__ */
|
|
43123
|
+
/* @__PURE__ */ jsx174("div", { className: "flex gap-6 justify-start items-center", children: platformStats.map(
|
|
43124
|
+
({ platform, icon: Icon3, followers, engagement }) => /* @__PURE__ */ jsxs133("div", { className: "flex items-center gap-3", children: [
|
|
43125
|
+
/* @__PURE__ */ jsxs133(
|
|
42736
43126
|
"div",
|
|
42737
43127
|
{
|
|
42738
43128
|
className: "flex items-center gap-1",
|
|
42739
43129
|
title: `${formatFollowerCount3(followers)} followers`,
|
|
42740
43130
|
children: [
|
|
42741
|
-
/* @__PURE__ */
|
|
43131
|
+
/* @__PURE__ */ jsx174(
|
|
42742
43132
|
Icon3,
|
|
42743
43133
|
{
|
|
42744
43134
|
className: `w-5 h-5 ${getPlatformIconColor(platform)}`
|
|
42745
43135
|
}
|
|
42746
43136
|
),
|
|
42747
|
-
/* @__PURE__ */
|
|
43137
|
+
/* @__PURE__ */ jsx174("span", { className: "text-xs dark:text-gray500", children: followers > 0 ? formatFollowerCount3(followers) : "0" })
|
|
42748
43138
|
]
|
|
42749
43139
|
}
|
|
42750
43140
|
),
|
|
42751
|
-
/* @__PURE__ */
|
|
42752
|
-
/* @__PURE__ */
|
|
42753
|
-
/* @__PURE__ */
|
|
43141
|
+
/* @__PURE__ */ jsxs133("div", { className: "flex items-center gap-1", children: [
|
|
43142
|
+
/* @__PURE__ */ jsx174(ChartColumn, { className: "w-5 h-5 dark:text-gray500" }),
|
|
43143
|
+
/* @__PURE__ */ jsxs133("span", { className: "text-sm dark:text-gray500 w-[40px]", children: [
|
|
42754
43144
|
(engagement * 100).toFixed(1),
|
|
42755
43145
|
"%"
|
|
42756
43146
|
] })
|
|
42757
43147
|
] })
|
|
42758
43148
|
] }, platform)
|
|
42759
43149
|
) }),
|
|
42760
|
-
creator.posts?.length > 0 && /* @__PURE__ */
|
|
42761
|
-
/* @__PURE__ */
|
|
42762
|
-
/* @__PURE__ */
|
|
43150
|
+
creator.posts?.length > 0 && /* @__PURE__ */ jsxs133("div", { className: "w-full overflow-hidden", children: [
|
|
43151
|
+
/* @__PURE__ */ jsx174("h3", { className: "mb-2 text-sm font-medium text-gray900", children: "Recent Posts" }),
|
|
43152
|
+
/* @__PURE__ */ jsx174("div", { className: "flex gap-3 overflow-x-auto", children: creator.posts.filter(
|
|
42763
43153
|
(post) => post.thumbnail || post.thumbnail_url
|
|
42764
|
-
).slice(0, 8).map((post, idx) => /* @__PURE__ */
|
|
43154
|
+
).slice(0, 8).map((post, idx) => /* @__PURE__ */ jsx174(
|
|
42765
43155
|
"a",
|
|
42766
43156
|
{
|
|
42767
43157
|
href: post.url || "#",
|
|
@@ -42769,7 +43159,7 @@ function CreatorGridViewCard({ creator }) {
|
|
|
42769
43159
|
rel: "noopener noreferrer",
|
|
42770
43160
|
className: "block flex-shrink-0",
|
|
42771
43161
|
onClick: (e) => e.stopPropagation(),
|
|
42772
|
-
children: /* @__PURE__ */
|
|
43162
|
+
children: /* @__PURE__ */ jsx174(
|
|
42773
43163
|
"img",
|
|
42774
43164
|
{
|
|
42775
43165
|
src: post.thumbnail_url || post.thumbnail,
|
|
@@ -42781,9 +43171,9 @@ function CreatorGridViewCard({ creator }) {
|
|
|
42781
43171
|
idx
|
|
42782
43172
|
)) })
|
|
42783
43173
|
] }),
|
|
42784
|
-
creator?.sentiment?.aiReasoning && /* @__PURE__ */
|
|
42785
|
-
/* @__PURE__ */
|
|
42786
|
-
/* @__PURE__ */
|
|
43174
|
+
creator?.sentiment?.aiReasoning && /* @__PURE__ */ jsxs133("div", { className: "text-gray700 max-h-[200px] overflow-auto", children: [
|
|
43175
|
+
/* @__PURE__ */ jsx174("h4", { className: "font-semibold text-sm", children: "AI Analysis" }),
|
|
43176
|
+
/* @__PURE__ */ jsx174("p", { className: "text-sm", children: creator.sentiment.aiReasoning })
|
|
42787
43177
|
] })
|
|
42788
43178
|
] }) })
|
|
42789
43179
|
] })
|
|
@@ -42793,11 +43183,11 @@ function CreatorGridViewCard({ creator }) {
|
|
|
42793
43183
|
function CreatorGridView({
|
|
42794
43184
|
creatorData
|
|
42795
43185
|
}) {
|
|
42796
|
-
return /* @__PURE__ */
|
|
43186
|
+
return /* @__PURE__ */ jsx174("div", { className: "grid grid-cols-3 md:grid-cols-4 lg:grid-cols-5 gap-4 [&>*]:transition-all [&>*]:duration-300 auto-rows-min relative grid-flow-dense", children: creatorData.map((creator) => /* @__PURE__ */ jsx174(CreatorGridViewCard, { creator }, creator._id)) });
|
|
42797
43187
|
}
|
|
42798
43188
|
|
|
42799
43189
|
// src/molecules/creator-discovery/CreatorWidget/CreatorExpandedPanel.tsx
|
|
42800
|
-
import { Fragment as
|
|
43190
|
+
import { Fragment as Fragment11, jsx as jsx175, jsxs as jsxs134 } from "react/jsx-runtime";
|
|
42801
43191
|
var formatFollowerCount4 = (count) => {
|
|
42802
43192
|
if (count >= 1e6) {
|
|
42803
43193
|
const millions = count / 1e6;
|
|
@@ -42891,12 +43281,12 @@ function SearchSpecDisplay({ spec }) {
|
|
|
42891
43281
|
{
|
|
42892
43282
|
key: "platforms",
|
|
42893
43283
|
title: "Platforms",
|
|
42894
|
-
content: /* @__PURE__ */
|
|
43284
|
+
content: /* @__PURE__ */ jsx175("div", { className: "flex flex-wrap gap-2", children: (spec.platforms || []).filter((p) => ["instagram", "youtube", "tiktok"].includes(p.toLowerCase())).map((p, idx) => /* @__PURE__ */ jsx175("span", { className: `${tagClass} flex items-center justify-center`, children: p.charAt(0).toUpperCase() + p.slice(1).toLowerCase() }, idx)) })
|
|
42895
43285
|
},
|
|
42896
43286
|
{
|
|
42897
43287
|
key: "follower_range",
|
|
42898
43288
|
title: "Follower Range",
|
|
42899
|
-
content: /* @__PURE__ */
|
|
43289
|
+
content: /* @__PURE__ */ jsxs134("div", { className: `inline-block ${tagClass} font-grotesk`, children: [
|
|
42900
43290
|
formatFollowerCount4(spec?.follower_range?.min ?? 0),
|
|
42901
43291
|
" -",
|
|
42902
43292
|
" ",
|
|
@@ -42906,7 +43296,7 @@ function SearchSpecDisplay({ spec }) {
|
|
|
42906
43296
|
{
|
|
42907
43297
|
key: "geography",
|
|
42908
43298
|
title: "Geography",
|
|
42909
|
-
content: /* @__PURE__ */
|
|
43299
|
+
content: /* @__PURE__ */ jsx175("div", { className: `inline-block ${tagClass} font-grotesk`, children: /* @__PURE__ */ jsx175(
|
|
42910
43300
|
"div",
|
|
42911
43301
|
{
|
|
42912
43302
|
className: "max-w-[200px] overflow-x-auto whitespace-nowrap",
|
|
@@ -42920,7 +43310,7 @@ function SearchSpecDisplay({ spec }) {
|
|
|
42920
43310
|
e.currentTarget.style.overflow = "hidden";
|
|
42921
43311
|
e.currentTarget.scrollLeft = 0;
|
|
42922
43312
|
},
|
|
42923
|
-
children: (spec.geography || []).map((g, idx) => /* @__PURE__ */
|
|
43313
|
+
children: (spec.geography || []).map((g, idx) => /* @__PURE__ */ jsxs134("span", { children: [
|
|
42924
43314
|
g,
|
|
42925
43315
|
idx < spec.geography.length - 1 ? ", " : ""
|
|
42926
43316
|
] }, idx))
|
|
@@ -42930,13 +43320,13 @@ function SearchSpecDisplay({ spec }) {
|
|
|
42930
43320
|
{
|
|
42931
43321
|
key: "keyword_bundles",
|
|
42932
43322
|
title: "Keyword",
|
|
42933
|
-
content: /* @__PURE__ */
|
|
43323
|
+
content: /* @__PURE__ */ jsx175("div", { className: "flex gap-2 font-grotesk font-medium max-w-[500px] overflow-x-auto whitespace-nowrap", style: { scrollbarWidth: "none" }, children: priorityOneBundles.length === 0 ? /* @__PURE__ */ jsx175("div", { className: `${textClass} text-white/70`, children: "No priority 1 keywords" }) : priorityOneBundles.map((kw, idx) => /* @__PURE__ */ jsx175("span", { className: tagClass, children: kw }, idx)) })
|
|
42934
43324
|
}
|
|
42935
43325
|
];
|
|
42936
43326
|
const itemsToShow = ["platforms", "follower_range", "geography", "keyword_bundles"];
|
|
42937
|
-
return /* @__PURE__ */
|
|
42938
|
-
/* @__PURE__ */
|
|
42939
|
-
/* @__PURE__ */
|
|
43327
|
+
return /* @__PURE__ */ jsx175("div", { className: "mt-3", children: /* @__PURE__ */ jsx175("div", { className: "flex gap-4 pr-[30px] overflow-x-auto", style: { scrollbarWidth: "none" }, children: items.filter(({ key }) => itemsToShow.includes(key) && spec?.[key] !== void 0 && spec?.[key] !== null).map(({ key, title, content }) => /* @__PURE__ */ jsxs134("div", { className: "flex-none p-5 bg-paperBackground rounded-lg", children: [
|
|
43328
|
+
/* @__PURE__ */ jsx175("div", { className: "text-purpleText text-sm mb-4", children: /* @__PURE__ */ jsx175("span", { className: "rounded-md bg-purple200 px-2 py-[4px] font-sans", children: title.toUpperCase() }) }),
|
|
43329
|
+
/* @__PURE__ */ jsx175("div", { className: `flex text-gray900 ${textClass}`, children: content })
|
|
42940
43330
|
] }, key)) }) });
|
|
42941
43331
|
}
|
|
42942
43332
|
function SentimentScoreRank({
|
|
@@ -42945,16 +43335,16 @@ function SentimentScoreRank({
|
|
|
42945
43335
|
showMinialView = false
|
|
42946
43336
|
}) {
|
|
42947
43337
|
const sentimentScoreRank = getSentimentRank3(score);
|
|
42948
|
-
return /* @__PURE__ */
|
|
42949
|
-
score !== void 0 && /* @__PURE__ */
|
|
43338
|
+
return /* @__PURE__ */ jsx175("div", { className: "flex flex-col items-center", children: /* @__PURE__ */ jsxs134("div", { className: `flex flex-col justify-end ${showMinialView ? "w-[120px]" : "w-[150px]"} text-sm`, children: [
|
|
43339
|
+
score !== void 0 && /* @__PURE__ */ jsx175("div", { className: "flex justify-center items-center mb-2", children: /* @__PURE__ */ jsx175(
|
|
42950
43340
|
"span",
|
|
42951
43341
|
{
|
|
42952
43342
|
className: `${isValidationComplete ? sentimentScoreRank.bgColor : "bg-gray500"} ${isValidationComplete ? sentimentScoreRank.textColor : "text-gray200"} text-center rounded-md ${showMinialView ? "text-xs px-[6px] py-[2px]" : "text-sm px-2 py-[2px]"}`,
|
|
42953
43343
|
children: isValidationComplete ? sentimentScoreRank.rank : "Unranked"
|
|
42954
43344
|
}
|
|
42955
43345
|
) }),
|
|
42956
|
-
/* @__PURE__ */
|
|
42957
|
-
!showMinialView && /* @__PURE__ */
|
|
43346
|
+
/* @__PURE__ */ jsx175("div", { className: `flex justify-center ${showMinialView ? "text-[24px]" : "text-[28px]"} font-bold mb-3 ${sentimentScoreRank.scoreColor}`, children: isValidationComplete ? score >= 0 ? `${score}%` : "0%" : /* @__PURE__ */ jsx175("div", { className: "flex items-center justify-center py-2", children: /* @__PURE__ */ jsx175("div", { className: "w-6 h-6 border-2 border-purple100 border-t-transparent rounded-full animate-spin" }) }) }),
|
|
43347
|
+
!showMinialView && /* @__PURE__ */ jsx175("p", { className: "text-gray600 dark:text-gray500 text-center", children: "Match Score" })
|
|
42958
43348
|
] }) });
|
|
42959
43349
|
}
|
|
42960
43350
|
function BrandMentionPerformance({ creator }) {
|
|
@@ -42969,14 +43359,14 @@ function BrandMentionPerformance({ creator }) {
|
|
|
42969
43359
|
{ title: "Effectiveness", subtitle: "compared to all posts", value: `${insights?.effectivenessPercent || 0} %` },
|
|
42970
43360
|
{ title: "Saturation Rate", subtitle: "on brand mention", value: `${insights?.saturationRate || 0} %` }
|
|
42971
43361
|
];
|
|
42972
|
-
return /* @__PURE__ */
|
|
42973
|
-
/* @__PURE__ */
|
|
42974
|
-
/* @__PURE__ */
|
|
42975
|
-
/* @__PURE__ */
|
|
42976
|
-
/* @__PURE__ */
|
|
42977
|
-
/* @__PURE__ */
|
|
43362
|
+
return /* @__PURE__ */ jsxs134("div", { children: [
|
|
43363
|
+
/* @__PURE__ */ jsx175("div", { className: "text-purpleText text-xs mb-4", children: /* @__PURE__ */ jsx175("span", { className: "rounded-md bg-purple200 px-2 py-[4px] font-sans", children: "BRAND MENTION PERFORMANCE" }) }),
|
|
43364
|
+
/* @__PURE__ */ jsx175("div", { className: "flex flex-col gap-3", children: metrics.map((item) => /* @__PURE__ */ jsxs134("div", { className: "flex justify-between items-center text-gray700 text-sm", children: [
|
|
43365
|
+
/* @__PURE__ */ jsxs134("div", { className: "flex flex-col gap-1", children: [
|
|
43366
|
+
/* @__PURE__ */ jsx175("h5", { children: item.title }),
|
|
43367
|
+
/* @__PURE__ */ jsx175("p", { className: "text-xs", children: item.subtitle })
|
|
42978
43368
|
] }),
|
|
42979
|
-
/* @__PURE__ */
|
|
43369
|
+
/* @__PURE__ */ jsx175("p", { className: "text-purpleText text-lg", children: item.value })
|
|
42980
43370
|
] }, item.title)) })
|
|
42981
43371
|
] });
|
|
42982
43372
|
}
|
|
@@ -42984,19 +43374,19 @@ function CreatorFitSummary({ creator, showBrandPerformance }) {
|
|
|
42984
43374
|
const hasDeepAnalysis = creator?.sentiment?.deepAnalysis?.deepAnalysis;
|
|
42985
43375
|
const title = hasDeepAnalysis ? "CREATOR DEEP ANALYSIS" : "CREATOR FIT SUMMARY";
|
|
42986
43376
|
const content = hasDeepAnalysis ? creator.sentiment.deepAnalysis.deepAnalysis : creator?.sentiment?.aiReasoning || "No data available.";
|
|
42987
|
-
return /* @__PURE__ */
|
|
42988
|
-
/* @__PURE__ */
|
|
42989
|
-
/* @__PURE__ */
|
|
43377
|
+
return /* @__PURE__ */ jsxs134("div", { className: showBrandPerformance ? "col-span-1" : "col-span-2", children: [
|
|
43378
|
+
/* @__PURE__ */ jsx175("div", { className: "text-purpleText text-xs mb-4", children: /* @__PURE__ */ jsx175("span", { className: "rounded-md bg-purple200 px-2 py-[4px] font-sans", children: title }) }),
|
|
43379
|
+
/* @__PURE__ */ jsx175("div", { className: "max-h-[140px] overflow-y-auto slim-scrollbar", children: /* @__PURE__ */ jsx175("p", { className: "text-gray700 text-sm", children: content }) })
|
|
42990
43380
|
] });
|
|
42991
43381
|
}
|
|
42992
43382
|
function ProfileSection({ creator, isValidationComplete }) {
|
|
42993
43383
|
const username = creator.platformMetrics?.instagramMetrics?.username ? `@${creator.platformMetrics.instagramMetrics.username}` : creator.platformMetrics?.youtubeMetrics?.channelName ? `@${creator.platformMetrics.youtubeMetrics.channelName}` : creator.platformMetrics?.tiktokMetrics?.username ? `@${creator.platformMetrics.tiktokMetrics.username}` : "";
|
|
42994
43384
|
const iso2 = normalizeToIso2(creator.country);
|
|
42995
43385
|
const meta = codeToMeta[iso2];
|
|
42996
|
-
return /* @__PURE__ */
|
|
42997
|
-
/* @__PURE__ */
|
|
42998
|
-
/* @__PURE__ */
|
|
42999
|
-
/* @__PURE__ */
|
|
43386
|
+
return /* @__PURE__ */ jsxs134("div", { className: "flex items-start gap-1 md:gap-6", children: [
|
|
43387
|
+
/* @__PURE__ */ jsxs134("div", { className: "flex flex-col items-center gap-6", children: [
|
|
43388
|
+
/* @__PURE__ */ jsx175("div", { className: "w-[5rem] h-[5rem] rounded-[10px] bg-primary/10 flex items-center justify-center flex-shrink-0 relative overflow-hidden", children: creator.profile_pic ? /* @__PURE__ */ jsxs134(Fragment11, { children: [
|
|
43389
|
+
/* @__PURE__ */ jsx175(
|
|
43000
43390
|
"img",
|
|
43001
43391
|
{
|
|
43002
43392
|
src: creator.profile_pic,
|
|
@@ -43004,24 +43394,24 @@ function ProfileSection({ creator, isValidationComplete }) {
|
|
|
43004
43394
|
className: "object-cover w-[5rem] h-[5rem] rounded-[15px]"
|
|
43005
43395
|
}
|
|
43006
43396
|
),
|
|
43007
|
-
creator?.profile?.isVerified && /* @__PURE__ */
|
|
43397
|
+
creator?.profile?.isVerified && /* @__PURE__ */ jsx175(
|
|
43008
43398
|
BadgeCheck,
|
|
43009
43399
|
{
|
|
43010
43400
|
size: 35,
|
|
43011
43401
|
className: "absolute -top-2 -right-2 text-blue-500 drop-shadow-sm fill-blue-300"
|
|
43012
43402
|
}
|
|
43013
43403
|
)
|
|
43014
|
-
] }) : /* @__PURE__ */
|
|
43015
|
-
/* @__PURE__ */
|
|
43404
|
+
] }) : /* @__PURE__ */ jsx175("span", { className: "text-2xl text-primary", children: creator.name?.charAt(0) || "?" }) }),
|
|
43405
|
+
/* @__PURE__ */ jsx175("div", { className: "block sm:hidden", children: /* @__PURE__ */ jsx175(SentimentScoreRank, { score: creator?.sentiment?.matchScore || -1, isValidationComplete, showMinialView: true }) })
|
|
43016
43406
|
] }),
|
|
43017
|
-
/* @__PURE__ */
|
|
43018
|
-
/* @__PURE__ */
|
|
43019
|
-
username && /* @__PURE__ */
|
|
43020
|
-
/* @__PURE__ */
|
|
43021
|
-
/* @__PURE__ */
|
|
43022
|
-
/* @__PURE__ */
|
|
43407
|
+
/* @__PURE__ */ jsxs134("div", { className: "flex flex-col gap-3 truncate", children: [
|
|
43408
|
+
/* @__PURE__ */ jsx175("div", { className: "flex items-center gap-2", children: /* @__PURE__ */ jsx175("h4", { className: "text-lg text-gray900 max-w-[150px]", title: creator.name, children: truncateName2(creator.name, 100) }) }),
|
|
43409
|
+
username && /* @__PURE__ */ jsx175("div", { className: "text-xs text-gray700", children: username }),
|
|
43410
|
+
/* @__PURE__ */ jsxs134("div", { className: "text-sm text-gray700 flex items-center gap-2", children: [
|
|
43411
|
+
/* @__PURE__ */ jsx175("span", { className: "text-base", children: meta?.flag }),
|
|
43412
|
+
/* @__PURE__ */ jsx175("span", { children: meta?.name || creator.country || "Unknown" })
|
|
43023
43413
|
] }),
|
|
43024
|
-
/* @__PURE__ */
|
|
43414
|
+
/* @__PURE__ */ jsx175("div", { className: "text-xs text-gray700 text-wrap", children: truncateName2(creator.description, 100) })
|
|
43025
43415
|
] })
|
|
43026
43416
|
] });
|
|
43027
43417
|
}
|
|
@@ -43029,7 +43419,7 @@ function CreatorCardExpandedSection({
|
|
|
43029
43419
|
creator
|
|
43030
43420
|
}) {
|
|
43031
43421
|
const hasBrandBreakdown = creator?.brandCollaborations?.insights?.brandBreakdown && creator?.sentiment?.deepAnalysis;
|
|
43032
|
-
return /* @__PURE__ */
|
|
43422
|
+
return /* @__PURE__ */ jsxs134(
|
|
43033
43423
|
motion5.div,
|
|
43034
43424
|
{
|
|
43035
43425
|
initial: { y: 20, opacity: 0 },
|
|
@@ -43037,21 +43427,21 @@ function CreatorCardExpandedSection({
|
|
|
43037
43427
|
transition: { duration: 0.3, delay: 0.1 },
|
|
43038
43428
|
className: "md:mt-6 space-y-5",
|
|
43039
43429
|
children: [
|
|
43040
|
-
/* @__PURE__ */
|
|
43041
|
-
/* @__PURE__ */
|
|
43430
|
+
/* @__PURE__ */ jsxs134("div", { className: "md:grid md:grid-cols-[1.3fr_1fr_2fr_120px] gap-8 py-4 pr-7", children: [
|
|
43431
|
+
/* @__PURE__ */ jsx175("div", { className: "col-span-4 sm:col-span-1", children: hasBrandBreakdown ? /* @__PURE__ */ jsx175(
|
|
43042
43432
|
BrandCollaborationsList,
|
|
43043
43433
|
{
|
|
43044
43434
|
brandBreakdown: creator?.brandCollaborations
|
|
43045
43435
|
}
|
|
43046
|
-
) : /* @__PURE__ */
|
|
43047
|
-
/* @__PURE__ */
|
|
43436
|
+
) : /* @__PURE__ */ jsx175("div", { className: "hidden sm:block" }) }),
|
|
43437
|
+
/* @__PURE__ */ jsx175("div", { className: "col-span-4 sm:col-span-3", children: creator?.audienceDemographics ? /* @__PURE__ */ jsx175(
|
|
43048
43438
|
EngagedAudienceDemographics,
|
|
43049
43439
|
{
|
|
43050
43440
|
audienceDemographics: creator.audienceDemographics
|
|
43051
43441
|
}
|
|
43052
43442
|
) : null })
|
|
43053
43443
|
] }),
|
|
43054
|
-
/* @__PURE__ */
|
|
43444
|
+
/* @__PURE__ */ jsx175(
|
|
43055
43445
|
PlatformPostsSection,
|
|
43056
43446
|
{
|
|
43057
43447
|
platformMetrics: creator.platformMetrics,
|
|
@@ -43066,14 +43456,14 @@ function CreatorCard({
|
|
|
43066
43456
|
creator,
|
|
43067
43457
|
isValidationComplete
|
|
43068
43458
|
}) {
|
|
43069
|
-
const [detailsExpanded, setDetailsExpanded] =
|
|
43459
|
+
const [detailsExpanded, setDetailsExpanded] = useState19(false);
|
|
43070
43460
|
const hasValidBrandMention = (() => {
|
|
43071
43461
|
const insights = creator?.brandCollaborations?.insights;
|
|
43072
43462
|
if (!insights) return false;
|
|
43073
43463
|
const isValid2 = (val) => val !== null && val !== void 0 && val !== 0 && val !== "0" && val !== "" && !Number.isNaN(val);
|
|
43074
43464
|
return isValid2(insights.averageBrandEngagementRate) || isValid2(insights.effectivenessPercent) || isValid2(insights.saturationRate);
|
|
43075
43465
|
})();
|
|
43076
|
-
return /* @__PURE__ */
|
|
43466
|
+
return /* @__PURE__ */ jsxs134(
|
|
43077
43467
|
motion5.div,
|
|
43078
43468
|
{
|
|
43079
43469
|
layout: true,
|
|
@@ -43084,20 +43474,20 @@ function CreatorCard({
|
|
|
43084
43474
|
className: `flex flex-col bg-paperBackground rounded-[25px] py-5 pl-7 border-2 shadow-sm cursor-pointer transition-all ${detailsExpanded ? "border-purple100" : "border-gray300"}`,
|
|
43085
43475
|
onClick: () => setDetailsExpanded((prev) => !prev),
|
|
43086
43476
|
children: [
|
|
43087
|
-
/* @__PURE__ */
|
|
43088
|
-
/* @__PURE__ */
|
|
43089
|
-
hasValidBrandMention && /* @__PURE__ */
|
|
43090
|
-
/* @__PURE__ */
|
|
43091
|
-
/* @__PURE__ */
|
|
43477
|
+
/* @__PURE__ */ jsxs134("div", { className: "flex flex-col gap-4 sm:grid sm:grid-cols-[1.3fr_1fr_2fr_120px] gap-8 items-start w-full pr-7", children: [
|
|
43478
|
+
/* @__PURE__ */ jsx175(ProfileSection, { creator, isValidationComplete }),
|
|
43479
|
+
hasValidBrandMention && /* @__PURE__ */ jsx175(BrandMentionPerformance, { creator }),
|
|
43480
|
+
/* @__PURE__ */ jsx175(CreatorFitSummary, { creator, showBrandPerformance: hasValidBrandMention }),
|
|
43481
|
+
/* @__PURE__ */ jsx175("div", { className: "hidden md:block", children: /* @__PURE__ */ jsx175(SentimentScoreRank, { score: creator?.sentiment?.matchScore || -1, isValidationComplete }) })
|
|
43092
43482
|
] }),
|
|
43093
|
-
/* @__PURE__ */
|
|
43483
|
+
/* @__PURE__ */ jsx175(AnimatePresence4, { children: detailsExpanded && /* @__PURE__ */ jsx175(
|
|
43094
43484
|
motion5.div,
|
|
43095
43485
|
{
|
|
43096
43486
|
initial: { height: 0, opacity: 0 },
|
|
43097
43487
|
animate: { height: "auto", opacity: 1, transition: { height: { duration: 0.4, ease: [0.04, 0.62, 0.23, 0.98] }, opacity: { duration: 0.3, delay: 0.1 } } },
|
|
43098
43488
|
exit: { height: 0, opacity: 0, transition: { height: { duration: 0.3, ease: [0.04, 0.62, 0.23, 0.98] }, opacity: { duration: 0.2 } } },
|
|
43099
43489
|
className: "overflow-hidden mt-4",
|
|
43100
|
-
children: /* @__PURE__ */
|
|
43490
|
+
children: /* @__PURE__ */ jsx175(CreatorCardExpandedSection, { creator })
|
|
43101
43491
|
}
|
|
43102
43492
|
) })
|
|
43103
43493
|
]
|
|
@@ -43108,19 +43498,19 @@ function CreatorDisplay({
|
|
|
43108
43498
|
creators,
|
|
43109
43499
|
isValidationComplete
|
|
43110
43500
|
}) {
|
|
43111
|
-
const [viewMode, setViewMode] =
|
|
43112
|
-
return /* @__PURE__ */
|
|
43113
|
-
/* @__PURE__ */
|
|
43114
|
-
/* @__PURE__ */
|
|
43501
|
+
const [viewMode, setViewMode] = useState19("list");
|
|
43502
|
+
return /* @__PURE__ */ jsxs134("div", { className: "px-4", children: [
|
|
43503
|
+
/* @__PURE__ */ jsxs134("div", { className: "flex justify-end items-center my-3 gap-1", children: [
|
|
43504
|
+
/* @__PURE__ */ jsxs134("span", { className: "text-xs text-gray600 mr-2", children: [
|
|
43115
43505
|
creators.length,
|
|
43116
43506
|
" creators"
|
|
43117
43507
|
] }),
|
|
43118
|
-
/* @__PURE__ */
|
|
43508
|
+
/* @__PURE__ */ jsx175(
|
|
43119
43509
|
"button",
|
|
43120
43510
|
{
|
|
43121
43511
|
className: `h-7 w-7 flex items-center justify-center rounded ${viewMode === "list" ? "bg-gray200" : ""}`,
|
|
43122
43512
|
onClick: () => setViewMode("list"),
|
|
43123
|
-
children: /* @__PURE__ */
|
|
43513
|
+
children: /* @__PURE__ */ jsx175(
|
|
43124
43514
|
AlignJustify,
|
|
43125
43515
|
{
|
|
43126
43516
|
className: `h-5 w-5 ${viewMode === "list" ? "text-gray900 dark:text-white" : "text-gray500"}`
|
|
@@ -43128,12 +43518,12 @@ function CreatorDisplay({
|
|
|
43128
43518
|
)
|
|
43129
43519
|
}
|
|
43130
43520
|
),
|
|
43131
|
-
/* @__PURE__ */
|
|
43521
|
+
/* @__PURE__ */ jsx175(
|
|
43132
43522
|
"button",
|
|
43133
43523
|
{
|
|
43134
43524
|
className: `h-7 w-7 flex items-center justify-center rounded ${viewMode === "grid" ? "bg-gray200" : ""}`,
|
|
43135
43525
|
onClick: () => setViewMode("grid"),
|
|
43136
|
-
children: /* @__PURE__ */
|
|
43526
|
+
children: /* @__PURE__ */ jsx175(
|
|
43137
43527
|
LayoutGrid,
|
|
43138
43528
|
{
|
|
43139
43529
|
className: `h-5 w-5 ${viewMode === "grid" ? "text-gray900 dark:text-white" : "text-gray500"}`
|
|
@@ -43142,43 +43532,43 @@ function CreatorDisplay({
|
|
|
43142
43532
|
}
|
|
43143
43533
|
)
|
|
43144
43534
|
] }),
|
|
43145
|
-
creators.length > 0 ? viewMode === "list" ? /* @__PURE__ */
|
|
43146
|
-
/* @__PURE__ */
|
|
43147
|
-
/* @__PURE__ */
|
|
43148
|
-
/* @__PURE__ */
|
|
43535
|
+
creators.length > 0 ? viewMode === "list" ? /* @__PURE__ */ jsx175("div", { className: "space-y-4", children: creators.map((creator) => /* @__PURE__ */ jsx175(CreatorCard, { creator, isValidationComplete }, creator._id)) }) : /* @__PURE__ */ jsx175(CreatorGridView, { creatorData: creators }) : /* @__PURE__ */ jsxs134("div", { className: "text-center py-8 bg-gray100 rounded-lg border border-gray300", children: [
|
|
43536
|
+
/* @__PURE__ */ jsx175("div", { className: "w-12 h-12 rounded-full bg-primary/10 flex items-center justify-center mx-auto mb-3", children: /* @__PURE__ */ jsx175(Users, { className: "w-6 h-6 text-primary" }) }),
|
|
43537
|
+
/* @__PURE__ */ jsx175("h3", { className: "text-base font-medium text-gray900", children: "No creators found" }),
|
|
43538
|
+
/* @__PURE__ */ jsx175("p", { className: "mt-1 text-sm text-gray600", children: "Try adjusting your search criteria" })
|
|
43149
43539
|
] })
|
|
43150
43540
|
] });
|
|
43151
43541
|
}
|
|
43152
43542
|
function CreatorCardSkeleton() {
|
|
43153
|
-
return /* @__PURE__ */
|
|
43154
|
-
/* @__PURE__ */
|
|
43155
|
-
/* @__PURE__ */
|
|
43156
|
-
/* @__PURE__ */
|
|
43157
|
-
/* @__PURE__ */
|
|
43158
|
-
/* @__PURE__ */
|
|
43159
|
-
/* @__PURE__ */
|
|
43160
|
-
/* @__PURE__ */
|
|
43543
|
+
return /* @__PURE__ */ jsx175("div", { className: "bg-paperBackground rounded-[25px] py-5 pl-7 pr-7 border-2 border-gray300 shadow-sm", children: /* @__PURE__ */ jsxs134("div", { className: "flex flex-col gap-4 sm:grid sm:grid-cols-[1.3fr_1fr_2fr_120px] gap-8 items-start w-full", children: [
|
|
43544
|
+
/* @__PURE__ */ jsxs134("div", { className: "flex items-start gap-1 md:gap-6", children: [
|
|
43545
|
+
/* @__PURE__ */ jsx175("div", { className: "w-[5rem] h-[5rem] rounded-[10px] bg-gray200 animate-pulse" }),
|
|
43546
|
+
/* @__PURE__ */ jsxs134("div", { className: "flex flex-col gap-3", children: [
|
|
43547
|
+
/* @__PURE__ */ jsx175("div", { className: "h-5 w-36 rounded bg-gray200 animate-pulse" }),
|
|
43548
|
+
/* @__PURE__ */ jsx175("div", { className: "h-3 w-24 rounded bg-gray200 animate-pulse" }),
|
|
43549
|
+
/* @__PURE__ */ jsx175("div", { className: "h-3 w-32 rounded bg-gray200 animate-pulse" }),
|
|
43550
|
+
/* @__PURE__ */ jsx175("div", { className: "h-3 w-44 rounded bg-gray200 animate-pulse" })
|
|
43161
43551
|
] })
|
|
43162
43552
|
] }),
|
|
43163
|
-
/* @__PURE__ */
|
|
43164
|
-
/* @__PURE__ */
|
|
43165
|
-
/* @__PURE__ */
|
|
43166
|
-
/* @__PURE__ */
|
|
43553
|
+
/* @__PURE__ */ jsxs134("div", { className: "space-y-3 w-full", children: [
|
|
43554
|
+
/* @__PURE__ */ jsx175("div", { className: "h-4 w-32 rounded bg-gray200 animate-pulse" }),
|
|
43555
|
+
/* @__PURE__ */ jsx175("div", { className: "h-4 w-28 rounded bg-gray200 animate-pulse" }),
|
|
43556
|
+
/* @__PURE__ */ jsx175("div", { className: "h-4 w-24 rounded bg-gray200 animate-pulse" })
|
|
43167
43557
|
] }),
|
|
43168
|
-
/* @__PURE__ */
|
|
43169
|
-
/* @__PURE__ */
|
|
43170
|
-
/* @__PURE__ */
|
|
43171
|
-
/* @__PURE__ */
|
|
43172
|
-
/* @__PURE__ */
|
|
43558
|
+
/* @__PURE__ */ jsxs134("div", { className: "space-y-3 w-full", children: [
|
|
43559
|
+
/* @__PURE__ */ jsx175("div", { className: "h-4 w-40 rounded bg-gray200 animate-pulse" }),
|
|
43560
|
+
/* @__PURE__ */ jsx175("div", { className: "h-3 w-full rounded bg-gray200 animate-pulse" }),
|
|
43561
|
+
/* @__PURE__ */ jsx175("div", { className: "h-3 w-[90%] rounded bg-gray200 animate-pulse" }),
|
|
43562
|
+
/* @__PURE__ */ jsx175("div", { className: "h-3 w-[75%] rounded bg-gray200 animate-pulse" })
|
|
43173
43563
|
] }),
|
|
43174
|
-
/* @__PURE__ */
|
|
43175
|
-
/* @__PURE__ */
|
|
43176
|
-
/* @__PURE__ */
|
|
43564
|
+
/* @__PURE__ */ jsxs134("div", { className: "hidden md:flex flex-col items-center justify-center gap-3", children: [
|
|
43565
|
+
/* @__PURE__ */ jsx175("div", { className: "h-6 w-16 rounded bg-gray200 animate-pulse" }),
|
|
43566
|
+
/* @__PURE__ */ jsx175("div", { className: "h-4 w-20 rounded bg-gray200 animate-pulse" })
|
|
43177
43567
|
] })
|
|
43178
43568
|
] }) });
|
|
43179
43569
|
}
|
|
43180
43570
|
function CreatorDisplaySkeleton() {
|
|
43181
|
-
return /* @__PURE__ */
|
|
43571
|
+
return /* @__PURE__ */ jsx175("div", { className: "px-4 py-4 space-y-4", children: Array.from({ length: 3 }).map((_, idx) => /* @__PURE__ */ jsx175(CreatorCardSkeleton, {}, idx)) });
|
|
43182
43572
|
}
|
|
43183
43573
|
function CreatorExpandedPanel({
|
|
43184
43574
|
isOpen,
|
|
@@ -43189,10 +43579,10 @@ function CreatorExpandedPanel({
|
|
|
43189
43579
|
searchSpec,
|
|
43190
43580
|
fetchCreatorDetails
|
|
43191
43581
|
}) {
|
|
43192
|
-
const [creators, setCreators] =
|
|
43193
|
-
const [loading, setLoading] =
|
|
43582
|
+
const [creators, setCreators] = useState19([]);
|
|
43583
|
+
const [loading, setLoading] = useState19(false);
|
|
43194
43584
|
const fetcher = fetchCreatorDetails ?? defaultFetchCreatorDetails;
|
|
43195
|
-
const loadCreators =
|
|
43585
|
+
const loadCreators = useCallback7(async () => {
|
|
43196
43586
|
if (!creatorIds.length) return;
|
|
43197
43587
|
setLoading(true);
|
|
43198
43588
|
try {
|
|
@@ -43204,15 +43594,15 @@ function CreatorExpandedPanel({
|
|
|
43204
43594
|
setLoading(false);
|
|
43205
43595
|
}
|
|
43206
43596
|
}, [creatorIds, sessionId, version, fetcher]);
|
|
43207
|
-
|
|
43597
|
+
useEffect12(() => {
|
|
43208
43598
|
if (isOpen && creatorIds.length > 0) {
|
|
43209
43599
|
loadCreators();
|
|
43210
43600
|
}
|
|
43211
43601
|
}, [isOpen, loadCreators]);
|
|
43212
43602
|
if (typeof window === "undefined") return null;
|
|
43213
43603
|
return ReactDOM2.createPortal(
|
|
43214
|
-
/* @__PURE__ */
|
|
43215
|
-
/* @__PURE__ */
|
|
43604
|
+
/* @__PURE__ */ jsx175(AnimatePresence4, { mode: "sync", children: isOpen && /* @__PURE__ */ jsxs134(Fragment11, { children: [
|
|
43605
|
+
/* @__PURE__ */ jsx175(
|
|
43216
43606
|
motion5.div,
|
|
43217
43607
|
{
|
|
43218
43608
|
initial: { opacity: 0 },
|
|
@@ -43227,7 +43617,7 @@ function CreatorExpandedPanel({
|
|
|
43227
43617
|
},
|
|
43228
43618
|
"overlay"
|
|
43229
43619
|
),
|
|
43230
|
-
/* @__PURE__ */
|
|
43620
|
+
/* @__PURE__ */ jsx175(
|
|
43231
43621
|
motion5.div,
|
|
43232
43622
|
{
|
|
43233
43623
|
initial: { x: "100%" },
|
|
@@ -43235,19 +43625,19 @@ function CreatorExpandedPanel({
|
|
|
43235
43625
|
exit: { x: "100%" },
|
|
43236
43626
|
transition: { type: "spring", damping: 30, stiffness: 400 },
|
|
43237
43627
|
className: "fixed top-0 right-0 h-full w-full max-w-7xl bg-background dark:bg-gray25 z-[70] shadow-2xl overflow-y-auto border border-gray300",
|
|
43238
|
-
children: /* @__PURE__ */
|
|
43239
|
-
/* @__PURE__ */
|
|
43240
|
-
/* @__PURE__ */
|
|
43241
|
-
/* @__PURE__ */
|
|
43242
|
-
/* @__PURE__ */
|
|
43243
|
-
/* @__PURE__ */
|
|
43244
|
-
/* @__PURE__ */
|
|
43628
|
+
children: /* @__PURE__ */ jsxs134("div", { className: "py-4 font-noto", children: [
|
|
43629
|
+
/* @__PURE__ */ jsxs134("div", { className: "flex justify-between items-center w-full mb-4 pl-2", children: [
|
|
43630
|
+
/* @__PURE__ */ jsx175("button", { onClick: onClose, className: "p-2 rounded-full transition-colors", children: /* @__PURE__ */ jsx175(X, { className: "w-5 h-5" }) }),
|
|
43631
|
+
/* @__PURE__ */ jsxs134("div", { className: "flex-1 flex flex-col w-[80%]", children: [
|
|
43632
|
+
/* @__PURE__ */ jsx175("div", { className: "flex flex-col md:flex-row justify-between gap-2 md:gap-0 md:items-center pr-16", children: /* @__PURE__ */ jsxs134("div", { className: "flex flex-col", children: [
|
|
43633
|
+
/* @__PURE__ */ jsx175("div", { className: "w-fit rounded-md bg-purple200 px-2 py-[4px] mb-2", children: /* @__PURE__ */ jsx175("h4", { className: "text-xs font-medium text-purpleText", children: "VERIFIED SEARCH RESULTS" }) }),
|
|
43634
|
+
/* @__PURE__ */ jsx175("h2", { className: "text-xl font-bold mb-1", children: "Creators Search Results" })
|
|
43245
43635
|
] }) }),
|
|
43246
|
-
searchSpec && /* @__PURE__ */
|
|
43636
|
+
searchSpec && /* @__PURE__ */ jsx175(SearchSpecDisplay, { spec: searchSpec })
|
|
43247
43637
|
] })
|
|
43248
43638
|
] }),
|
|
43249
|
-
/* @__PURE__ */
|
|
43250
|
-
loading ? /* @__PURE__ */
|
|
43639
|
+
/* @__PURE__ */ jsx175("div", { className: "border-b border-gray300" }),
|
|
43640
|
+
loading ? /* @__PURE__ */ jsx175(CreatorDisplaySkeleton, {}) : /* @__PURE__ */ jsx175(CreatorDisplay, { creators, isValidationComplete: version !== void 0 })
|
|
43251
43641
|
] })
|
|
43252
43642
|
},
|
|
43253
43643
|
"creator-panel"
|
|
@@ -43258,7 +43648,7 @@ function CreatorExpandedPanel({
|
|
|
43258
43648
|
}
|
|
43259
43649
|
|
|
43260
43650
|
// src/molecules/creator-discovery/CreatorWidget/useCreatorWidgetPolling.ts
|
|
43261
|
-
import { useState as
|
|
43651
|
+
import { useState as useState20, useEffect as useEffect13, useCallback as useCallback8, useMemo as useMemo11, useRef as useRef9 } from "react";
|
|
43262
43652
|
var DEFAULT_POLLING_CONFIG = {
|
|
43263
43653
|
pollInterval: 5e3,
|
|
43264
43654
|
maxDuration: 15 * 60 * 1e3,
|
|
@@ -43279,18 +43669,18 @@ function useCreatorWidgetPolling({
|
|
|
43279
43669
|
() => ({ ...DEFAULT_POLLING_CONFIG, ...pollingConfig }),
|
|
43280
43670
|
[pollingConfig]
|
|
43281
43671
|
);
|
|
43282
|
-
const [versionData, setVersionData] =
|
|
43283
|
-
const [totalVersions, setTotalVersions] =
|
|
43284
|
-
const [selectedVersion, setSelectedVersion] =
|
|
43285
|
-
const [isLoadingVersion, setIsLoadingVersion] =
|
|
43286
|
-
const [isValidationComplete, setIsValidationComplete] =
|
|
43287
|
-
const [versionStatus, setVersionStatus] =
|
|
43288
|
-
const [statusDetails, setStatusDetails] =
|
|
43289
|
-
const [timeDisplay, setTimeDisplay] =
|
|
43290
|
-
const [loadingStatus, setLoadingStatus] =
|
|
43291
|
-
const remainingTimeRef =
|
|
43672
|
+
const [versionData, setVersionData] = useState20(null);
|
|
43673
|
+
const [totalVersions, setTotalVersions] = useState20(0);
|
|
43674
|
+
const [selectedVersion, setSelectedVersion] = useState20();
|
|
43675
|
+
const [isLoadingVersion, setIsLoadingVersion] = useState20(false);
|
|
43676
|
+
const [isValidationComplete, setIsValidationComplete] = useState20(false);
|
|
43677
|
+
const [versionStatus, setVersionStatus] = useState20("checking");
|
|
43678
|
+
const [statusDetails, setStatusDetails] = useState20();
|
|
43679
|
+
const [timeDisplay, setTimeDisplay] = useState20("");
|
|
43680
|
+
const [loadingStatus, setLoadingStatus] = useState20(true);
|
|
43681
|
+
const remainingTimeRef = useRef9(0);
|
|
43292
43682
|
const requestedVersion = selectedVersion ?? currentVersion ?? versionData?.currentVersion;
|
|
43293
|
-
const fetchVersionData =
|
|
43683
|
+
const fetchVersionData = useCallback8(async () => {
|
|
43294
43684
|
if (!sessionId) return;
|
|
43295
43685
|
if (!versionData) setIsLoadingVersion(true);
|
|
43296
43686
|
try {
|
|
@@ -43311,17 +43701,17 @@ function useCreatorWidgetPolling({
|
|
|
43311
43701
|
setIsLoadingVersion(false);
|
|
43312
43702
|
}
|
|
43313
43703
|
}, [sessionId, requestedVersion, isValidationComplete, fetchVersions, versionData]);
|
|
43314
|
-
|
|
43704
|
+
useEffect13(() => {
|
|
43315
43705
|
fetchVersionData();
|
|
43316
43706
|
}, [sessionId, requestedVersion, isValidationComplete]);
|
|
43317
|
-
|
|
43707
|
+
useEffect13(() => {
|
|
43318
43708
|
if (totalVersions > 0 || !sessionId) return;
|
|
43319
43709
|
const interval = setInterval(() => {
|
|
43320
43710
|
if (totalVersions === 0) fetchVersionData();
|
|
43321
43711
|
}, config.pollInterval);
|
|
43322
43712
|
return () => clearInterval(interval);
|
|
43323
43713
|
}, [totalVersions, sessionId, fetchVersionData, config.pollInterval]);
|
|
43324
|
-
|
|
43714
|
+
useEffect13(() => {
|
|
43325
43715
|
if (!selectedVersion && !requestedVersion) return;
|
|
43326
43716
|
const activeVersion = selectedVersion ?? requestedVersion;
|
|
43327
43717
|
let isMounted = true;
|
|
@@ -43431,7 +43821,7 @@ function useCreatorWidgetPolling({
|
|
|
43431
43821
|
}
|
|
43432
43822
|
|
|
43433
43823
|
// src/molecules/creator-discovery/CreatorWidget/CreatorWidget.tsx
|
|
43434
|
-
import { jsx as
|
|
43824
|
+
import { jsx as jsx176, jsxs as jsxs135 } from "react/jsx-runtime";
|
|
43435
43825
|
function CreatorWidgetInner({
|
|
43436
43826
|
sessionId,
|
|
43437
43827
|
currentVersion,
|
|
@@ -43444,7 +43834,7 @@ function CreatorWidgetInner({
|
|
|
43444
43834
|
onAction,
|
|
43445
43835
|
className
|
|
43446
43836
|
}) {
|
|
43447
|
-
const [isExpanded, setIsExpanded] =
|
|
43837
|
+
const [isExpanded, setIsExpanded] = useState21(false);
|
|
43448
43838
|
const {
|
|
43449
43839
|
versionNumbers,
|
|
43450
43840
|
selectedVersion,
|
|
@@ -43465,11 +43855,11 @@ function CreatorWidgetInner({
|
|
|
43465
43855
|
pollingConfig,
|
|
43466
43856
|
onStatusChange
|
|
43467
43857
|
});
|
|
43468
|
-
const handleVersionSelect =
|
|
43858
|
+
const handleVersionSelect = useCallback9(
|
|
43469
43859
|
(version) => setSelectedVersion(version),
|
|
43470
43860
|
[setSelectedVersion]
|
|
43471
43861
|
);
|
|
43472
|
-
const handleViewCreators =
|
|
43862
|
+
const handleViewCreators = useCallback9(() => {
|
|
43473
43863
|
setIsExpanded(true);
|
|
43474
43864
|
onAction?.({
|
|
43475
43865
|
type: "view-creators",
|
|
@@ -43479,8 +43869,8 @@ function CreatorWidgetInner({
|
|
|
43479
43869
|
searchSpec
|
|
43480
43870
|
});
|
|
43481
43871
|
}, [onAction, sessionId, creatorIds, selectedVersion, searchSpec]);
|
|
43482
|
-
return /* @__PURE__ */
|
|
43483
|
-
/* @__PURE__ */
|
|
43872
|
+
return /* @__PURE__ */ jsxs135("div", { className, children: [
|
|
43873
|
+
/* @__PURE__ */ jsx176(
|
|
43484
43874
|
CreatorCompactView,
|
|
43485
43875
|
{
|
|
43486
43876
|
versions: versionNumbers,
|
|
@@ -43496,7 +43886,7 @@ function CreatorWidgetInner({
|
|
|
43496
43886
|
isLoading
|
|
43497
43887
|
}
|
|
43498
43888
|
),
|
|
43499
|
-
/* @__PURE__ */
|
|
43889
|
+
/* @__PURE__ */ jsx176(
|
|
43500
43890
|
CreatorExpandedPanel,
|
|
43501
43891
|
{
|
|
43502
43892
|
isOpen: isExpanded,
|
|
@@ -43804,7 +44194,7 @@ __export(ui_exports, {
|
|
|
43804
44194
|
// src/components/ui/button-group.tsx
|
|
43805
44195
|
import { Slot as Slot4 } from "@radix-ui/react-slot";
|
|
43806
44196
|
import { cva as cva8 } from "class-variance-authority";
|
|
43807
|
-
import { jsx as
|
|
44197
|
+
import { jsx as jsx177 } from "react/jsx-runtime";
|
|
43808
44198
|
var buttonGroupVariants = cva8(
|
|
43809
44199
|
"flex w-fit items-stretch has-[>[data-slot=button-group]]:gap-2 [&>*]:focus-visible:relative [&>*]:focus-visible:z-10 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-md [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1",
|
|
43810
44200
|
{
|
|
@@ -43824,7 +44214,7 @@ function ButtonGroup({
|
|
|
43824
44214
|
orientation,
|
|
43825
44215
|
...props
|
|
43826
44216
|
}) {
|
|
43827
|
-
return /* @__PURE__ */
|
|
44217
|
+
return /* @__PURE__ */ jsx177(
|
|
43828
44218
|
"div",
|
|
43829
44219
|
{
|
|
43830
44220
|
role: "group",
|
|
@@ -43841,7 +44231,7 @@ function ButtonGroupText({
|
|
|
43841
44231
|
...props
|
|
43842
44232
|
}) {
|
|
43843
44233
|
const Comp = asChild ? Slot4 : "div";
|
|
43844
|
-
return /* @__PURE__ */
|
|
44234
|
+
return /* @__PURE__ */ jsx177(
|
|
43845
44235
|
Comp,
|
|
43846
44236
|
{
|
|
43847
44237
|
className: cn(
|
|
@@ -43857,7 +44247,7 @@ function ButtonGroupSeparator({
|
|
|
43857
44247
|
orientation = "vertical",
|
|
43858
44248
|
...props
|
|
43859
44249
|
}) {
|
|
43860
|
-
return /* @__PURE__ */
|
|
44250
|
+
return /* @__PURE__ */ jsx177(
|
|
43861
44251
|
Separator2,
|
|
43862
44252
|
{
|
|
43863
44253
|
"data-slot": "button-group-separator",
|
|
@@ -43873,9 +44263,9 @@ function ButtonGroupSeparator({
|
|
|
43873
44263
|
|
|
43874
44264
|
// src/components/ui/empty.tsx
|
|
43875
44265
|
import { cva as cva9 } from "class-variance-authority";
|
|
43876
|
-
import { jsx as
|
|
44266
|
+
import { jsx as jsx178 } from "react/jsx-runtime";
|
|
43877
44267
|
function Empty({ className, ...props }) {
|
|
43878
|
-
return /* @__PURE__ */
|
|
44268
|
+
return /* @__PURE__ */ jsx178(
|
|
43879
44269
|
"div",
|
|
43880
44270
|
{
|
|
43881
44271
|
"data-slot": "empty",
|
|
@@ -43888,7 +44278,7 @@ function Empty({ className, ...props }) {
|
|
|
43888
44278
|
);
|
|
43889
44279
|
}
|
|
43890
44280
|
function EmptyHeader({ className, ...props }) {
|
|
43891
|
-
return /* @__PURE__ */
|
|
44281
|
+
return /* @__PURE__ */ jsx178(
|
|
43892
44282
|
"div",
|
|
43893
44283
|
{
|
|
43894
44284
|
"data-slot": "empty-header",
|
|
@@ -43919,7 +44309,7 @@ function EmptyMedia({
|
|
|
43919
44309
|
variant = "default",
|
|
43920
44310
|
...props
|
|
43921
44311
|
}) {
|
|
43922
|
-
return /* @__PURE__ */
|
|
44312
|
+
return /* @__PURE__ */ jsx178(
|
|
43923
44313
|
"div",
|
|
43924
44314
|
{
|
|
43925
44315
|
"data-slot": "empty-icon",
|
|
@@ -43930,7 +44320,7 @@ function EmptyMedia({
|
|
|
43930
44320
|
);
|
|
43931
44321
|
}
|
|
43932
44322
|
function EmptyTitle({ className, ...props }) {
|
|
43933
|
-
return /* @__PURE__ */
|
|
44323
|
+
return /* @__PURE__ */ jsx178(
|
|
43934
44324
|
"div",
|
|
43935
44325
|
{
|
|
43936
44326
|
"data-slot": "empty-title",
|
|
@@ -43940,7 +44330,7 @@ function EmptyTitle({ className, ...props }) {
|
|
|
43940
44330
|
);
|
|
43941
44331
|
}
|
|
43942
44332
|
function EmptyDescription({ className, ...props }) {
|
|
43943
|
-
return /* @__PURE__ */
|
|
44333
|
+
return /* @__PURE__ */ jsx178(
|
|
43944
44334
|
"div",
|
|
43945
44335
|
{
|
|
43946
44336
|
"data-slot": "empty-description",
|
|
@@ -43953,7 +44343,7 @@ function EmptyDescription({ className, ...props }) {
|
|
|
43953
44343
|
);
|
|
43954
44344
|
}
|
|
43955
44345
|
function EmptyContent({ className, ...props }) {
|
|
43956
|
-
return /* @__PURE__ */
|
|
44346
|
+
return /* @__PURE__ */ jsx178(
|
|
43957
44347
|
"div",
|
|
43958
44348
|
{
|
|
43959
44349
|
"data-slot": "empty-content",
|
|
@@ -43969,9 +44359,9 @@ function EmptyContent({ className, ...props }) {
|
|
|
43969
44359
|
// src/components/ui/field.tsx
|
|
43970
44360
|
import { useMemo as useMemo12 } from "react";
|
|
43971
44361
|
import { cva as cva10 } from "class-variance-authority";
|
|
43972
|
-
import { jsx as
|
|
44362
|
+
import { jsx as jsx179, jsxs as jsxs136 } from "react/jsx-runtime";
|
|
43973
44363
|
function FieldSet({ className, ...props }) {
|
|
43974
|
-
return /* @__PURE__ */
|
|
44364
|
+
return /* @__PURE__ */ jsx179(
|
|
43975
44365
|
"fieldset",
|
|
43976
44366
|
{
|
|
43977
44367
|
"data-slot": "field-set",
|
|
@@ -43989,7 +44379,7 @@ function FieldLegend({
|
|
|
43989
44379
|
variant = "legend",
|
|
43990
44380
|
...props
|
|
43991
44381
|
}) {
|
|
43992
|
-
return /* @__PURE__ */
|
|
44382
|
+
return /* @__PURE__ */ jsx179(
|
|
43993
44383
|
"legend",
|
|
43994
44384
|
{
|
|
43995
44385
|
"data-slot": "field-legend",
|
|
@@ -44005,7 +44395,7 @@ function FieldLegend({
|
|
|
44005
44395
|
);
|
|
44006
44396
|
}
|
|
44007
44397
|
function FieldGroup({ className, ...props }) {
|
|
44008
|
-
return /* @__PURE__ */
|
|
44398
|
+
return /* @__PURE__ */ jsx179(
|
|
44009
44399
|
"div",
|
|
44010
44400
|
{
|
|
44011
44401
|
"data-slot": "field-group",
|
|
@@ -44045,7 +44435,7 @@ function Field({
|
|
|
44045
44435
|
orientation = "vertical",
|
|
44046
44436
|
...props
|
|
44047
44437
|
}) {
|
|
44048
|
-
return /* @__PURE__ */
|
|
44438
|
+
return /* @__PURE__ */ jsx179(
|
|
44049
44439
|
"div",
|
|
44050
44440
|
{
|
|
44051
44441
|
role: "group",
|
|
@@ -44057,7 +44447,7 @@ function Field({
|
|
|
44057
44447
|
);
|
|
44058
44448
|
}
|
|
44059
44449
|
function FieldContent({ className, ...props }) {
|
|
44060
|
-
return /* @__PURE__ */
|
|
44450
|
+
return /* @__PURE__ */ jsx179(
|
|
44061
44451
|
"div",
|
|
44062
44452
|
{
|
|
44063
44453
|
"data-slot": "field-content",
|
|
@@ -44073,7 +44463,7 @@ function FieldLabel({
|
|
|
44073
44463
|
className,
|
|
44074
44464
|
...props
|
|
44075
44465
|
}) {
|
|
44076
|
-
return /* @__PURE__ */
|
|
44466
|
+
return /* @__PURE__ */ jsx179(
|
|
44077
44467
|
Label,
|
|
44078
44468
|
{
|
|
44079
44469
|
"data-slot": "field-label",
|
|
@@ -44088,7 +44478,7 @@ function FieldLabel({
|
|
|
44088
44478
|
);
|
|
44089
44479
|
}
|
|
44090
44480
|
function FieldTitle({ className, ...props }) {
|
|
44091
|
-
return /* @__PURE__ */
|
|
44481
|
+
return /* @__PURE__ */ jsx179(
|
|
44092
44482
|
"div",
|
|
44093
44483
|
{
|
|
44094
44484
|
"data-slot": "field-label",
|
|
@@ -44101,7 +44491,7 @@ function FieldTitle({ className, ...props }) {
|
|
|
44101
44491
|
);
|
|
44102
44492
|
}
|
|
44103
44493
|
function FieldDescription({ className, ...props }) {
|
|
44104
|
-
return /* @__PURE__ */
|
|
44494
|
+
return /* @__PURE__ */ jsx179(
|
|
44105
44495
|
"p",
|
|
44106
44496
|
{
|
|
44107
44497
|
"data-slot": "field-description",
|
|
@@ -44120,7 +44510,7 @@ function FieldSeparator({
|
|
|
44120
44510
|
className,
|
|
44121
44511
|
...props
|
|
44122
44512
|
}) {
|
|
44123
|
-
return /* @__PURE__ */
|
|
44513
|
+
return /* @__PURE__ */ jsxs136(
|
|
44124
44514
|
"div",
|
|
44125
44515
|
{
|
|
44126
44516
|
"data-slot": "field-separator",
|
|
@@ -44131,8 +44521,8 @@ function FieldSeparator({
|
|
|
44131
44521
|
),
|
|
44132
44522
|
...props,
|
|
44133
44523
|
children: [
|
|
44134
|
-
/* @__PURE__ */
|
|
44135
|
-
children && /* @__PURE__ */
|
|
44524
|
+
/* @__PURE__ */ jsx179(Separator2, { className: "absolute inset-0 top-1/2" }),
|
|
44525
|
+
children && /* @__PURE__ */ jsx179(
|
|
44136
44526
|
"span",
|
|
44137
44527
|
{
|
|
44138
44528
|
className: "bg-background text-muted-foreground relative mx-auto block w-fit px-2",
|
|
@@ -44160,14 +44550,14 @@ function FieldError({
|
|
|
44160
44550
|
if (errors?.length === 1 && errors[0]?.message) {
|
|
44161
44551
|
return errors[0].message;
|
|
44162
44552
|
}
|
|
44163
|
-
return /* @__PURE__ */
|
|
44164
|
-
(error, index) => error?.message && /* @__PURE__ */
|
|
44553
|
+
return /* @__PURE__ */ jsx179("ul", { className: "ml-4 flex list-disc flex-col gap-1", children: errors.map(
|
|
44554
|
+
(error, index) => error?.message && /* @__PURE__ */ jsx179("li", { children: error.message }, index)
|
|
44165
44555
|
) });
|
|
44166
44556
|
}, [children, errors]);
|
|
44167
44557
|
if (!content) {
|
|
44168
44558
|
return null;
|
|
44169
44559
|
}
|
|
44170
|
-
return /* @__PURE__ */
|
|
44560
|
+
return /* @__PURE__ */ jsx179(
|
|
44171
44561
|
"div",
|
|
44172
44562
|
{
|
|
44173
44563
|
role: "alert",
|
|
@@ -44181,9 +44571,9 @@ function FieldError({
|
|
|
44181
44571
|
|
|
44182
44572
|
// src/components/ui/input-group.tsx
|
|
44183
44573
|
import { cva as cva11 } from "class-variance-authority";
|
|
44184
|
-
import { jsx as
|
|
44574
|
+
import { jsx as jsx180 } from "react/jsx-runtime";
|
|
44185
44575
|
function InputGroup({ className, ...props }) {
|
|
44186
|
-
return /* @__PURE__ */
|
|
44576
|
+
return /* @__PURE__ */ jsx180(
|
|
44187
44577
|
"div",
|
|
44188
44578
|
{
|
|
44189
44579
|
"data-slot": "input-group",
|
|
@@ -44227,7 +44617,7 @@ function InputGroupAddon({
|
|
|
44227
44617
|
align = "inline-start",
|
|
44228
44618
|
...props
|
|
44229
44619
|
}) {
|
|
44230
|
-
return /* @__PURE__ */
|
|
44620
|
+
return /* @__PURE__ */ jsx180(
|
|
44231
44621
|
"div",
|
|
44232
44622
|
{
|
|
44233
44623
|
role: "group",
|
|
@@ -44267,7 +44657,7 @@ function InputGroupButton({
|
|
|
44267
44657
|
size = "xs",
|
|
44268
44658
|
...props
|
|
44269
44659
|
}) {
|
|
44270
|
-
return /* @__PURE__ */
|
|
44660
|
+
return /* @__PURE__ */ jsx180(
|
|
44271
44661
|
Button,
|
|
44272
44662
|
{
|
|
44273
44663
|
type,
|
|
@@ -44279,7 +44669,7 @@ function InputGroupButton({
|
|
|
44279
44669
|
);
|
|
44280
44670
|
}
|
|
44281
44671
|
function InputGroupText({ className, ...props }) {
|
|
44282
|
-
return /* @__PURE__ */
|
|
44672
|
+
return /* @__PURE__ */ jsx180(
|
|
44283
44673
|
"span",
|
|
44284
44674
|
{
|
|
44285
44675
|
className: cn(
|
|
@@ -44294,7 +44684,7 @@ function InputGroupInput({
|
|
|
44294
44684
|
className,
|
|
44295
44685
|
...props
|
|
44296
44686
|
}) {
|
|
44297
|
-
return /* @__PURE__ */
|
|
44687
|
+
return /* @__PURE__ */ jsx180(
|
|
44298
44688
|
Input,
|
|
44299
44689
|
{
|
|
44300
44690
|
"data-slot": "input-group-control",
|
|
@@ -44310,7 +44700,7 @@ function InputGroupTextarea({
|
|
|
44310
44700
|
className,
|
|
44311
44701
|
...props
|
|
44312
44702
|
}) {
|
|
44313
|
-
return /* @__PURE__ */
|
|
44703
|
+
return /* @__PURE__ */ jsx180(
|
|
44314
44704
|
Textarea,
|
|
44315
44705
|
{
|
|
44316
44706
|
"data-slot": "input-group-control",
|
|
@@ -44326,9 +44716,9 @@ function InputGroupTextarea({
|
|
|
44326
44716
|
// src/components/ui/item.tsx
|
|
44327
44717
|
import { Slot as Slot5 } from "@radix-ui/react-slot";
|
|
44328
44718
|
import { cva as cva12 } from "class-variance-authority";
|
|
44329
|
-
import { jsx as
|
|
44719
|
+
import { jsx as jsx181 } from "react/jsx-runtime";
|
|
44330
44720
|
function ItemGroup({ className, ...props }) {
|
|
44331
|
-
return /* @__PURE__ */
|
|
44721
|
+
return /* @__PURE__ */ jsx181(
|
|
44332
44722
|
"div",
|
|
44333
44723
|
{
|
|
44334
44724
|
role: "list",
|
|
@@ -44342,7 +44732,7 @@ function ItemSeparator({
|
|
|
44342
44732
|
className,
|
|
44343
44733
|
...props
|
|
44344
44734
|
}) {
|
|
44345
|
-
return /* @__PURE__ */
|
|
44735
|
+
return /* @__PURE__ */ jsx181(
|
|
44346
44736
|
Separator2,
|
|
44347
44737
|
{
|
|
44348
44738
|
"data-slot": "item-separator",
|
|
@@ -44380,7 +44770,7 @@ function Item8({
|
|
|
44380
44770
|
...props
|
|
44381
44771
|
}) {
|
|
44382
44772
|
const Comp = asChild ? Slot5 : "div";
|
|
44383
|
-
return /* @__PURE__ */
|
|
44773
|
+
return /* @__PURE__ */ jsx181(
|
|
44384
44774
|
Comp,
|
|
44385
44775
|
{
|
|
44386
44776
|
"data-slot": "item",
|
|
@@ -44411,7 +44801,7 @@ function ItemMedia({
|
|
|
44411
44801
|
variant = "default",
|
|
44412
44802
|
...props
|
|
44413
44803
|
}) {
|
|
44414
|
-
return /* @__PURE__ */
|
|
44804
|
+
return /* @__PURE__ */ jsx181(
|
|
44415
44805
|
"div",
|
|
44416
44806
|
{
|
|
44417
44807
|
"data-slot": "item-media",
|
|
@@ -44422,7 +44812,7 @@ function ItemMedia({
|
|
|
44422
44812
|
);
|
|
44423
44813
|
}
|
|
44424
44814
|
function ItemContent({ className, ...props }) {
|
|
44425
|
-
return /* @__PURE__ */
|
|
44815
|
+
return /* @__PURE__ */ jsx181(
|
|
44426
44816
|
"div",
|
|
44427
44817
|
{
|
|
44428
44818
|
"data-slot": "item-content",
|
|
@@ -44435,7 +44825,7 @@ function ItemContent({ className, ...props }) {
|
|
|
44435
44825
|
);
|
|
44436
44826
|
}
|
|
44437
44827
|
function ItemTitle({ className, ...props }) {
|
|
44438
|
-
return /* @__PURE__ */
|
|
44828
|
+
return /* @__PURE__ */ jsx181(
|
|
44439
44829
|
"div",
|
|
44440
44830
|
{
|
|
44441
44831
|
"data-slot": "item-title",
|
|
@@ -44448,7 +44838,7 @@ function ItemTitle({ className, ...props }) {
|
|
|
44448
44838
|
);
|
|
44449
44839
|
}
|
|
44450
44840
|
function ItemDescription({ className, ...props }) {
|
|
44451
|
-
return /* @__PURE__ */
|
|
44841
|
+
return /* @__PURE__ */ jsx181(
|
|
44452
44842
|
"p",
|
|
44453
44843
|
{
|
|
44454
44844
|
"data-slot": "item-description",
|
|
@@ -44462,7 +44852,7 @@ function ItemDescription({ className, ...props }) {
|
|
|
44462
44852
|
);
|
|
44463
44853
|
}
|
|
44464
44854
|
function ItemActions({ className, ...props }) {
|
|
44465
|
-
return /* @__PURE__ */
|
|
44855
|
+
return /* @__PURE__ */ jsx181(
|
|
44466
44856
|
"div",
|
|
44467
44857
|
{
|
|
44468
44858
|
"data-slot": "item-actions",
|
|
@@ -44472,7 +44862,7 @@ function ItemActions({ className, ...props }) {
|
|
|
44472
44862
|
);
|
|
44473
44863
|
}
|
|
44474
44864
|
function ItemHeader({ className, ...props }) {
|
|
44475
|
-
return /* @__PURE__ */
|
|
44865
|
+
return /* @__PURE__ */ jsx181(
|
|
44476
44866
|
"div",
|
|
44477
44867
|
{
|
|
44478
44868
|
"data-slot": "item-header",
|
|
@@ -44485,7 +44875,7 @@ function ItemHeader({ className, ...props }) {
|
|
|
44485
44875
|
);
|
|
44486
44876
|
}
|
|
44487
44877
|
function ItemFooter({ className, ...props }) {
|
|
44488
|
-
return /* @__PURE__ */
|
|
44878
|
+
return /* @__PURE__ */ jsx181(
|
|
44489
44879
|
"div",
|
|
44490
44880
|
{
|
|
44491
44881
|
"data-slot": "item-footer",
|
|
@@ -44499,9 +44889,9 @@ function ItemFooter({ className, ...props }) {
|
|
|
44499
44889
|
}
|
|
44500
44890
|
|
|
44501
44891
|
// src/components/ui/kbd.tsx
|
|
44502
|
-
import { jsx as
|
|
44892
|
+
import { jsx as jsx182 } from "react/jsx-runtime";
|
|
44503
44893
|
function Kbd({ className, ...props }) {
|
|
44504
|
-
return /* @__PURE__ */
|
|
44894
|
+
return /* @__PURE__ */ jsx182(
|
|
44505
44895
|
"kbd",
|
|
44506
44896
|
{
|
|
44507
44897
|
"data-slot": "kbd",
|
|
@@ -44516,7 +44906,7 @@ function Kbd({ className, ...props }) {
|
|
|
44516
44906
|
);
|
|
44517
44907
|
}
|
|
44518
44908
|
function KbdGroup({ className, ...props }) {
|
|
44519
|
-
return /* @__PURE__ */
|
|
44909
|
+
return /* @__PURE__ */ jsx182(
|
|
44520
44910
|
"kbd",
|
|
44521
44911
|
{
|
|
44522
44912
|
"data-slot": "kbd-group",
|
|
@@ -44527,16 +44917,16 @@ function KbdGroup({ className, ...props }) {
|
|
|
44527
44917
|
}
|
|
44528
44918
|
|
|
44529
44919
|
// src/components/ui/sidebar.tsx
|
|
44530
|
-
import * as
|
|
44920
|
+
import * as React114 from "react";
|
|
44531
44921
|
import { Slot as Slot6 } from "@radix-ui/react-slot";
|
|
44532
44922
|
import { cva as cva13 } from "class-variance-authority";
|
|
44533
44923
|
|
|
44534
44924
|
// src/hooks/use-mobile.tsx
|
|
44535
|
-
import * as
|
|
44925
|
+
import * as React113 from "react";
|
|
44536
44926
|
var MOBILE_BREAKPOINT = 768;
|
|
44537
44927
|
function useIsMobile() {
|
|
44538
|
-
const [isMobile, setIsMobile] =
|
|
44539
|
-
|
|
44928
|
+
const [isMobile, setIsMobile] = React113.useState(void 0);
|
|
44929
|
+
React113.useEffect(() => {
|
|
44540
44930
|
const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
|
|
44541
44931
|
const onChange = () => {
|
|
44542
44932
|
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
@@ -44549,22 +44939,22 @@ function useIsMobile() {
|
|
|
44549
44939
|
}
|
|
44550
44940
|
|
|
44551
44941
|
// src/components/ui/sidebar.tsx
|
|
44552
|
-
import { jsx as
|
|
44942
|
+
import { jsx as jsx183, jsxs as jsxs137 } from "react/jsx-runtime";
|
|
44553
44943
|
var SIDEBAR_COOKIE_NAME = "sidebar_state";
|
|
44554
44944
|
var SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
|
|
44555
44945
|
var SIDEBAR_WIDTH = "16rem";
|
|
44556
44946
|
var SIDEBAR_WIDTH_MOBILE = "18rem";
|
|
44557
44947
|
var SIDEBAR_WIDTH_ICON = "3rem";
|
|
44558
44948
|
var SIDEBAR_KEYBOARD_SHORTCUT = "b";
|
|
44559
|
-
var SidebarContext =
|
|
44949
|
+
var SidebarContext = React114.createContext(null);
|
|
44560
44950
|
function useSidebar() {
|
|
44561
|
-
const context =
|
|
44951
|
+
const context = React114.useContext(SidebarContext);
|
|
44562
44952
|
if (!context) {
|
|
44563
44953
|
throw new Error("useSidebar must be used within a SidebarProvider.");
|
|
44564
44954
|
}
|
|
44565
44955
|
return context;
|
|
44566
44956
|
}
|
|
44567
|
-
var SidebarProvider =
|
|
44957
|
+
var SidebarProvider = React114.forwardRef(
|
|
44568
44958
|
({
|
|
44569
44959
|
defaultOpen = true,
|
|
44570
44960
|
open: openProp,
|
|
@@ -44575,10 +44965,10 @@ var SidebarProvider = React113.forwardRef(
|
|
|
44575
44965
|
...props
|
|
44576
44966
|
}, ref) => {
|
|
44577
44967
|
const isMobile = useIsMobile();
|
|
44578
|
-
const [openMobile, setOpenMobile] =
|
|
44579
|
-
const [_open, _setOpen] =
|
|
44968
|
+
const [openMobile, setOpenMobile] = React114.useState(false);
|
|
44969
|
+
const [_open, _setOpen] = React114.useState(defaultOpen);
|
|
44580
44970
|
const open = openProp ?? _open;
|
|
44581
|
-
const setOpen =
|
|
44971
|
+
const setOpen = React114.useCallback(
|
|
44582
44972
|
(value) => {
|
|
44583
44973
|
const openState = typeof value === "function" ? value(open) : value;
|
|
44584
44974
|
if (setOpenProp) {
|
|
@@ -44590,10 +44980,10 @@ var SidebarProvider = React113.forwardRef(
|
|
|
44590
44980
|
},
|
|
44591
44981
|
[setOpenProp, open]
|
|
44592
44982
|
);
|
|
44593
|
-
const toggleSidebar =
|
|
44983
|
+
const toggleSidebar = React114.useCallback(() => {
|
|
44594
44984
|
return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
|
|
44595
44985
|
}, [isMobile, setOpen, setOpenMobile]);
|
|
44596
|
-
|
|
44986
|
+
React114.useEffect(() => {
|
|
44597
44987
|
const handleKeyDown = (event) => {
|
|
44598
44988
|
if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
|
|
44599
44989
|
event.preventDefault();
|
|
@@ -44604,7 +44994,7 @@ var SidebarProvider = React113.forwardRef(
|
|
|
44604
44994
|
return () => window.removeEventListener("keydown", handleKeyDown);
|
|
44605
44995
|
}, [toggleSidebar]);
|
|
44606
44996
|
const state = open ? "expanded" : "collapsed";
|
|
44607
|
-
const contextValue =
|
|
44997
|
+
const contextValue = React114.useMemo(
|
|
44608
44998
|
() => ({
|
|
44609
44999
|
state,
|
|
44610
45000
|
open,
|
|
@@ -44616,7 +45006,7 @@ var SidebarProvider = React113.forwardRef(
|
|
|
44616
45006
|
}),
|
|
44617
45007
|
[state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]
|
|
44618
45008
|
);
|
|
44619
|
-
return /* @__PURE__ */
|
|
45009
|
+
return /* @__PURE__ */ jsx183(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx183(TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ jsx183(
|
|
44620
45010
|
"div",
|
|
44621
45011
|
{
|
|
44622
45012
|
style: {
|
|
@@ -44636,7 +45026,7 @@ var SidebarProvider = React113.forwardRef(
|
|
|
44636
45026
|
}
|
|
44637
45027
|
);
|
|
44638
45028
|
SidebarProvider.displayName = "SidebarProvider";
|
|
44639
|
-
var Sidebar =
|
|
45029
|
+
var Sidebar = React114.forwardRef(
|
|
44640
45030
|
({
|
|
44641
45031
|
side = "left",
|
|
44642
45032
|
variant = "sidebar",
|
|
@@ -44647,7 +45037,7 @@ var Sidebar = React113.forwardRef(
|
|
|
44647
45037
|
}, ref) => {
|
|
44648
45038
|
const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
|
|
44649
45039
|
if (collapsible === "none") {
|
|
44650
|
-
return /* @__PURE__ */
|
|
45040
|
+
return /* @__PURE__ */ jsx183(
|
|
44651
45041
|
"div",
|
|
44652
45042
|
{
|
|
44653
45043
|
className: cn(
|
|
@@ -44661,7 +45051,7 @@ var Sidebar = React113.forwardRef(
|
|
|
44661
45051
|
);
|
|
44662
45052
|
}
|
|
44663
45053
|
if (isMobile) {
|
|
44664
|
-
return /* @__PURE__ */
|
|
45054
|
+
return /* @__PURE__ */ jsx183(Sheet2, { open: openMobile, onOpenChange: setOpenMobile, ...props, children: /* @__PURE__ */ jsxs137(
|
|
44665
45055
|
SheetContent,
|
|
44666
45056
|
{
|
|
44667
45057
|
"data-sidebar": "sidebar",
|
|
@@ -44672,16 +45062,16 @@ var Sidebar = React113.forwardRef(
|
|
|
44672
45062
|
},
|
|
44673
45063
|
side,
|
|
44674
45064
|
children: [
|
|
44675
|
-
/* @__PURE__ */
|
|
44676
|
-
/* @__PURE__ */
|
|
44677
|
-
/* @__PURE__ */
|
|
45065
|
+
/* @__PURE__ */ jsxs137(SheetHeader, { className: "sr-only", children: [
|
|
45066
|
+
/* @__PURE__ */ jsx183(SheetTitle, { children: "Sidebar" }),
|
|
45067
|
+
/* @__PURE__ */ jsx183(SheetDescription, { children: "Displays the mobile sidebar." })
|
|
44678
45068
|
] }),
|
|
44679
|
-
/* @__PURE__ */
|
|
45069
|
+
/* @__PURE__ */ jsx183("div", { className: "flex h-full w-full flex-col", children })
|
|
44680
45070
|
]
|
|
44681
45071
|
}
|
|
44682
45072
|
) });
|
|
44683
45073
|
}
|
|
44684
|
-
return /* @__PURE__ */
|
|
45074
|
+
return /* @__PURE__ */ jsxs137(
|
|
44685
45075
|
"div",
|
|
44686
45076
|
{
|
|
44687
45077
|
ref,
|
|
@@ -44691,7 +45081,7 @@ var Sidebar = React113.forwardRef(
|
|
|
44691
45081
|
"data-variant": variant,
|
|
44692
45082
|
"data-side": side,
|
|
44693
45083
|
children: [
|
|
44694
|
-
/* @__PURE__ */
|
|
45084
|
+
/* @__PURE__ */ jsx183(
|
|
44695
45085
|
"div",
|
|
44696
45086
|
{
|
|
44697
45087
|
className: cn(
|
|
@@ -44702,7 +45092,7 @@ var Sidebar = React113.forwardRef(
|
|
|
44702
45092
|
)
|
|
44703
45093
|
}
|
|
44704
45094
|
),
|
|
44705
|
-
/* @__PURE__ */
|
|
45095
|
+
/* @__PURE__ */ jsx183(
|
|
44706
45096
|
"div",
|
|
44707
45097
|
{
|
|
44708
45098
|
className: cn(
|
|
@@ -44713,7 +45103,7 @@ var Sidebar = React113.forwardRef(
|
|
|
44713
45103
|
className
|
|
44714
45104
|
),
|
|
44715
45105
|
...props,
|
|
44716
|
-
children: /* @__PURE__ */
|
|
45106
|
+
children: /* @__PURE__ */ jsx183(
|
|
44717
45107
|
"div",
|
|
44718
45108
|
{
|
|
44719
45109
|
"data-sidebar": "sidebar",
|
|
@@ -44729,9 +45119,9 @@ var Sidebar = React113.forwardRef(
|
|
|
44729
45119
|
}
|
|
44730
45120
|
);
|
|
44731
45121
|
Sidebar.displayName = "Sidebar";
|
|
44732
|
-
var SidebarTrigger =
|
|
45122
|
+
var SidebarTrigger = React114.forwardRef(({ className, onClick, ...props }, ref) => {
|
|
44733
45123
|
const { toggleSidebar } = useSidebar();
|
|
44734
|
-
return /* @__PURE__ */
|
|
45124
|
+
return /* @__PURE__ */ jsxs137(
|
|
44735
45125
|
Button,
|
|
44736
45126
|
{
|
|
44737
45127
|
ref,
|
|
@@ -44745,16 +45135,16 @@ var SidebarTrigger = React113.forwardRef(({ className, onClick, ...props }, ref)
|
|
|
44745
45135
|
},
|
|
44746
45136
|
...props,
|
|
44747
45137
|
children: [
|
|
44748
|
-
/* @__PURE__ */
|
|
44749
|
-
/* @__PURE__ */
|
|
45138
|
+
/* @__PURE__ */ jsx183(PanelLeft, {}),
|
|
45139
|
+
/* @__PURE__ */ jsx183("span", { className: "sr-only", children: "Toggle Sidebar" })
|
|
44750
45140
|
]
|
|
44751
45141
|
}
|
|
44752
45142
|
);
|
|
44753
45143
|
});
|
|
44754
45144
|
SidebarTrigger.displayName = "SidebarTrigger";
|
|
44755
|
-
var SidebarRail =
|
|
45145
|
+
var SidebarRail = React114.forwardRef(({ className, ...props }, ref) => {
|
|
44756
45146
|
const { toggleSidebar } = useSidebar();
|
|
44757
|
-
return /* @__PURE__ */
|
|
45147
|
+
return /* @__PURE__ */ jsx183(
|
|
44758
45148
|
"button",
|
|
44759
45149
|
{
|
|
44760
45150
|
ref,
|
|
@@ -44777,8 +45167,8 @@ var SidebarRail = React113.forwardRef(({ className, ...props }, ref) => {
|
|
|
44777
45167
|
);
|
|
44778
45168
|
});
|
|
44779
45169
|
SidebarRail.displayName = "SidebarRail";
|
|
44780
|
-
var SidebarInset =
|
|
44781
|
-
return /* @__PURE__ */
|
|
45170
|
+
var SidebarInset = React114.forwardRef(({ className, ...props }, ref) => {
|
|
45171
|
+
return /* @__PURE__ */ jsx183(
|
|
44782
45172
|
"main",
|
|
44783
45173
|
{
|
|
44784
45174
|
ref,
|
|
@@ -44792,8 +45182,8 @@ var SidebarInset = React113.forwardRef(({ className, ...props }, ref) => {
|
|
|
44792
45182
|
);
|
|
44793
45183
|
});
|
|
44794
45184
|
SidebarInset.displayName = "SidebarInset";
|
|
44795
|
-
var SidebarInput =
|
|
44796
|
-
return /* @__PURE__ */
|
|
45185
|
+
var SidebarInput = React114.forwardRef(({ className, ...props }, ref) => {
|
|
45186
|
+
return /* @__PURE__ */ jsx183(
|
|
44797
45187
|
Input,
|
|
44798
45188
|
{
|
|
44799
45189
|
ref,
|
|
@@ -44807,8 +45197,8 @@ var SidebarInput = React113.forwardRef(({ className, ...props }, ref) => {
|
|
|
44807
45197
|
);
|
|
44808
45198
|
});
|
|
44809
45199
|
SidebarInput.displayName = "SidebarInput";
|
|
44810
|
-
var SidebarHeader =
|
|
44811
|
-
return /* @__PURE__ */
|
|
45200
|
+
var SidebarHeader = React114.forwardRef(({ className, ...props }, ref) => {
|
|
45201
|
+
return /* @__PURE__ */ jsx183(
|
|
44812
45202
|
"div",
|
|
44813
45203
|
{
|
|
44814
45204
|
ref,
|
|
@@ -44819,8 +45209,8 @@ var SidebarHeader = React113.forwardRef(({ className, ...props }, ref) => {
|
|
|
44819
45209
|
);
|
|
44820
45210
|
});
|
|
44821
45211
|
SidebarHeader.displayName = "SidebarHeader";
|
|
44822
|
-
var SidebarFooter =
|
|
44823
|
-
return /* @__PURE__ */
|
|
45212
|
+
var SidebarFooter = React114.forwardRef(({ className, ...props }, ref) => {
|
|
45213
|
+
return /* @__PURE__ */ jsx183(
|
|
44824
45214
|
"div",
|
|
44825
45215
|
{
|
|
44826
45216
|
ref,
|
|
@@ -44831,8 +45221,8 @@ var SidebarFooter = React113.forwardRef(({ className, ...props }, ref) => {
|
|
|
44831
45221
|
);
|
|
44832
45222
|
});
|
|
44833
45223
|
SidebarFooter.displayName = "SidebarFooter";
|
|
44834
|
-
var SidebarSeparator =
|
|
44835
|
-
return /* @__PURE__ */
|
|
45224
|
+
var SidebarSeparator = React114.forwardRef(({ className, ...props }, ref) => {
|
|
45225
|
+
return /* @__PURE__ */ jsx183(
|
|
44836
45226
|
Separator2,
|
|
44837
45227
|
{
|
|
44838
45228
|
ref,
|
|
@@ -44843,8 +45233,8 @@ var SidebarSeparator = React113.forwardRef(({ className, ...props }, ref) => {
|
|
|
44843
45233
|
);
|
|
44844
45234
|
});
|
|
44845
45235
|
SidebarSeparator.displayName = "SidebarSeparator";
|
|
44846
|
-
var SidebarContent =
|
|
44847
|
-
return /* @__PURE__ */
|
|
45236
|
+
var SidebarContent = React114.forwardRef(({ className, ...props }, ref) => {
|
|
45237
|
+
return /* @__PURE__ */ jsx183(
|
|
44848
45238
|
"div",
|
|
44849
45239
|
{
|
|
44850
45240
|
ref,
|
|
@@ -44858,8 +45248,8 @@ var SidebarContent = React113.forwardRef(({ className, ...props }, ref) => {
|
|
|
44858
45248
|
);
|
|
44859
45249
|
});
|
|
44860
45250
|
SidebarContent.displayName = "SidebarContent";
|
|
44861
|
-
var SidebarGroup =
|
|
44862
|
-
return /* @__PURE__ */
|
|
45251
|
+
var SidebarGroup = React114.forwardRef(({ className, ...props }, ref) => {
|
|
45252
|
+
return /* @__PURE__ */ jsx183(
|
|
44863
45253
|
"div",
|
|
44864
45254
|
{
|
|
44865
45255
|
ref,
|
|
@@ -44870,9 +45260,9 @@ var SidebarGroup = React113.forwardRef(({ className, ...props }, ref) => {
|
|
|
44870
45260
|
);
|
|
44871
45261
|
});
|
|
44872
45262
|
SidebarGroup.displayName = "SidebarGroup";
|
|
44873
|
-
var SidebarGroupLabel =
|
|
45263
|
+
var SidebarGroupLabel = React114.forwardRef(({ className, asChild = false, ...props }, ref) => {
|
|
44874
45264
|
const Comp = asChild ? Slot6 : "div";
|
|
44875
|
-
return /* @__PURE__ */
|
|
45265
|
+
return /* @__PURE__ */ jsx183(
|
|
44876
45266
|
Comp,
|
|
44877
45267
|
{
|
|
44878
45268
|
ref,
|
|
@@ -44887,9 +45277,9 @@ var SidebarGroupLabel = React113.forwardRef(({ className, asChild = false, ...pr
|
|
|
44887
45277
|
);
|
|
44888
45278
|
});
|
|
44889
45279
|
SidebarGroupLabel.displayName = "SidebarGroupLabel";
|
|
44890
|
-
var SidebarGroupAction =
|
|
45280
|
+
var SidebarGroupAction = React114.forwardRef(({ className, asChild = false, ...props }, ref) => {
|
|
44891
45281
|
const Comp = asChild ? Slot6 : "button";
|
|
44892
|
-
return /* @__PURE__ */
|
|
45282
|
+
return /* @__PURE__ */ jsx183(
|
|
44893
45283
|
Comp,
|
|
44894
45284
|
{
|
|
44895
45285
|
ref,
|
|
@@ -44906,7 +45296,7 @@ var SidebarGroupAction = React113.forwardRef(({ className, asChild = false, ...p
|
|
|
44906
45296
|
);
|
|
44907
45297
|
});
|
|
44908
45298
|
SidebarGroupAction.displayName = "SidebarGroupAction";
|
|
44909
|
-
var SidebarGroupContent =
|
|
45299
|
+
var SidebarGroupContent = React114.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx183(
|
|
44910
45300
|
"div",
|
|
44911
45301
|
{
|
|
44912
45302
|
ref,
|
|
@@ -44916,7 +45306,7 @@ var SidebarGroupContent = React113.forwardRef(({ className, ...props }, ref) =>
|
|
|
44916
45306
|
}
|
|
44917
45307
|
));
|
|
44918
45308
|
SidebarGroupContent.displayName = "SidebarGroupContent";
|
|
44919
|
-
var SidebarMenu =
|
|
45309
|
+
var SidebarMenu = React114.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx183(
|
|
44920
45310
|
"ul",
|
|
44921
45311
|
{
|
|
44922
45312
|
ref,
|
|
@@ -44926,7 +45316,7 @@ var SidebarMenu = React113.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
44926
45316
|
}
|
|
44927
45317
|
));
|
|
44928
45318
|
SidebarMenu.displayName = "SidebarMenu";
|
|
44929
|
-
var SidebarMenuItem =
|
|
45319
|
+
var SidebarMenuItem = React114.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx183(
|
|
44930
45320
|
"li",
|
|
44931
45321
|
{
|
|
44932
45322
|
ref,
|
|
@@ -44956,7 +45346,7 @@ var sidebarMenuButtonVariants = cva13(
|
|
|
44956
45346
|
}
|
|
44957
45347
|
}
|
|
44958
45348
|
);
|
|
44959
|
-
var SidebarMenuButton =
|
|
45349
|
+
var SidebarMenuButton = React114.forwardRef(
|
|
44960
45350
|
({
|
|
44961
45351
|
asChild = false,
|
|
44962
45352
|
isActive = false,
|
|
@@ -44968,7 +45358,7 @@ var SidebarMenuButton = React113.forwardRef(
|
|
|
44968
45358
|
}, ref) => {
|
|
44969
45359
|
const Comp = asChild ? Slot6 : "button";
|
|
44970
45360
|
const { isMobile, state } = useSidebar();
|
|
44971
|
-
const button = /* @__PURE__ */
|
|
45361
|
+
const button = /* @__PURE__ */ jsx183(
|
|
44972
45362
|
Comp,
|
|
44973
45363
|
{
|
|
44974
45364
|
ref,
|
|
@@ -44987,9 +45377,9 @@ var SidebarMenuButton = React113.forwardRef(
|
|
|
44987
45377
|
children: tooltip
|
|
44988
45378
|
};
|
|
44989
45379
|
}
|
|
44990
|
-
return /* @__PURE__ */
|
|
44991
|
-
/* @__PURE__ */
|
|
44992
|
-
/* @__PURE__ */
|
|
45380
|
+
return /* @__PURE__ */ jsxs137(Tooltip, { children: [
|
|
45381
|
+
/* @__PURE__ */ jsx183(TooltipTrigger, { asChild: true, children: button }),
|
|
45382
|
+
/* @__PURE__ */ jsx183(
|
|
44993
45383
|
TooltipContent,
|
|
44994
45384
|
{
|
|
44995
45385
|
side: "right",
|
|
@@ -45002,9 +45392,9 @@ var SidebarMenuButton = React113.forwardRef(
|
|
|
45002
45392
|
}
|
|
45003
45393
|
);
|
|
45004
45394
|
SidebarMenuButton.displayName = "SidebarMenuButton";
|
|
45005
|
-
var SidebarMenuAction =
|
|
45395
|
+
var SidebarMenuAction = React114.forwardRef(({ className, asChild = false, showOnHover = false, ...props }, ref) => {
|
|
45006
45396
|
const Comp = asChild ? Slot6 : "button";
|
|
45007
|
-
return /* @__PURE__ */
|
|
45397
|
+
return /* @__PURE__ */ jsx183(
|
|
45008
45398
|
Comp,
|
|
45009
45399
|
{
|
|
45010
45400
|
ref,
|
|
@@ -45025,7 +45415,7 @@ var SidebarMenuAction = React113.forwardRef(({ className, asChild = false, showO
|
|
|
45025
45415
|
);
|
|
45026
45416
|
});
|
|
45027
45417
|
SidebarMenuAction.displayName = "SidebarMenuAction";
|
|
45028
|
-
var SidebarMenuBadge =
|
|
45418
|
+
var SidebarMenuBadge = React114.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx183(
|
|
45029
45419
|
"div",
|
|
45030
45420
|
{
|
|
45031
45421
|
ref,
|
|
@@ -45043,11 +45433,11 @@ var SidebarMenuBadge = React113.forwardRef(({ className, ...props }, ref) => /*
|
|
|
45043
45433
|
}
|
|
45044
45434
|
));
|
|
45045
45435
|
SidebarMenuBadge.displayName = "SidebarMenuBadge";
|
|
45046
|
-
var SidebarMenuSkeleton =
|
|
45047
|
-
const width =
|
|
45436
|
+
var SidebarMenuSkeleton = React114.forwardRef(({ className, showIcon = false, ...props }, ref) => {
|
|
45437
|
+
const width = React114.useMemo(() => {
|
|
45048
45438
|
return `${Math.floor(Math.random() * 40) + 50}%`;
|
|
45049
45439
|
}, []);
|
|
45050
|
-
return /* @__PURE__ */
|
|
45440
|
+
return /* @__PURE__ */ jsxs137(
|
|
45051
45441
|
"div",
|
|
45052
45442
|
{
|
|
45053
45443
|
ref,
|
|
@@ -45055,14 +45445,14 @@ var SidebarMenuSkeleton = React113.forwardRef(({ className, showIcon = false, ..
|
|
|
45055
45445
|
className: cn("flex h-8 items-center gap-2 rounded-md px-2", className),
|
|
45056
45446
|
...props,
|
|
45057
45447
|
children: [
|
|
45058
|
-
showIcon && /* @__PURE__ */
|
|
45448
|
+
showIcon && /* @__PURE__ */ jsx183(
|
|
45059
45449
|
Skeleton,
|
|
45060
45450
|
{
|
|
45061
45451
|
className: "size-4 rounded-md",
|
|
45062
45452
|
"data-sidebar": "menu-skeleton-icon"
|
|
45063
45453
|
}
|
|
45064
45454
|
),
|
|
45065
|
-
/* @__PURE__ */
|
|
45455
|
+
/* @__PURE__ */ jsx183(
|
|
45066
45456
|
Skeleton,
|
|
45067
45457
|
{
|
|
45068
45458
|
className: "h-4 max-w-[--skeleton-width] flex-1",
|
|
@@ -45077,7 +45467,7 @@ var SidebarMenuSkeleton = React113.forwardRef(({ className, showIcon = false, ..
|
|
|
45077
45467
|
);
|
|
45078
45468
|
});
|
|
45079
45469
|
SidebarMenuSkeleton.displayName = "SidebarMenuSkeleton";
|
|
45080
|
-
var SidebarMenuSub =
|
|
45470
|
+
var SidebarMenuSub = React114.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx183(
|
|
45081
45471
|
"ul",
|
|
45082
45472
|
{
|
|
45083
45473
|
ref,
|
|
@@ -45091,11 +45481,11 @@ var SidebarMenuSub = React113.forwardRef(({ className, ...props }, ref) => /* @_
|
|
|
45091
45481
|
}
|
|
45092
45482
|
));
|
|
45093
45483
|
SidebarMenuSub.displayName = "SidebarMenuSub";
|
|
45094
|
-
var SidebarMenuSubItem =
|
|
45484
|
+
var SidebarMenuSubItem = React114.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsx183("li", { ref, ...props }));
|
|
45095
45485
|
SidebarMenuSubItem.displayName = "SidebarMenuSubItem";
|
|
45096
|
-
var SidebarMenuSubButton =
|
|
45486
|
+
var SidebarMenuSubButton = React114.forwardRef(({ asChild = false, size = "md", isActive, className, ...props }, ref) => {
|
|
45097
45487
|
const Comp = asChild ? Slot6 : "a";
|
|
45098
|
-
return /* @__PURE__ */
|
|
45488
|
+
return /* @__PURE__ */ jsx183(
|
|
45099
45489
|
Comp,
|
|
45100
45490
|
{
|
|
45101
45491
|
ref,
|
|
@@ -45119,20 +45509,20 @@ SidebarMenuSubButton.displayName = "SidebarMenuSubButton";
|
|
|
45119
45509
|
// src/components/ui/sonner.tsx
|
|
45120
45510
|
import { useTheme } from "next-themes";
|
|
45121
45511
|
import { Toaster as Sonner } from "sonner";
|
|
45122
|
-
import { jsx as
|
|
45512
|
+
import { jsx as jsx184 } from "react/jsx-runtime";
|
|
45123
45513
|
var Toaster = ({ ...props }) => {
|
|
45124
45514
|
const { theme = "system" } = useTheme();
|
|
45125
|
-
return /* @__PURE__ */
|
|
45515
|
+
return /* @__PURE__ */ jsx184(
|
|
45126
45516
|
Sonner,
|
|
45127
45517
|
{
|
|
45128
45518
|
theme,
|
|
45129
45519
|
className: "toaster group",
|
|
45130
45520
|
icons: {
|
|
45131
|
-
success: /* @__PURE__ */
|
|
45132
|
-
info: /* @__PURE__ */
|
|
45133
|
-
warning: /* @__PURE__ */
|
|
45134
|
-
error: /* @__PURE__ */
|
|
45135
|
-
loading: /* @__PURE__ */
|
|
45521
|
+
success: /* @__PURE__ */ jsx184(CircleCheck, { className: "h-4 w-4" }),
|
|
45522
|
+
info: /* @__PURE__ */ jsx184(Info, { className: "h-4 w-4" }),
|
|
45523
|
+
warning: /* @__PURE__ */ jsx184(TriangleAlert, { className: "h-4 w-4" }),
|
|
45524
|
+
error: /* @__PURE__ */ jsx184(OctagonX, { className: "h-4 w-4" }),
|
|
45525
|
+
loading: /* @__PURE__ */ jsx184(LoaderCircle, { className: "h-4 w-4 animate-spin" })
|
|
45136
45526
|
},
|
|
45137
45527
|
toastOptions: {
|
|
45138
45528
|
classNames: {
|
|
@@ -45148,26 +45538,26 @@ var Toaster = ({ ...props }) => {
|
|
|
45148
45538
|
};
|
|
45149
45539
|
|
|
45150
45540
|
// src/components/ui/toggle-group.tsx
|
|
45151
|
-
import * as
|
|
45541
|
+
import * as React115 from "react";
|
|
45152
45542
|
import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group";
|
|
45153
|
-
import { jsx as
|
|
45154
|
-
var ToggleGroupContext =
|
|
45543
|
+
import { jsx as jsx185 } from "react/jsx-runtime";
|
|
45544
|
+
var ToggleGroupContext = React115.createContext({
|
|
45155
45545
|
size: "default",
|
|
45156
45546
|
variant: "default"
|
|
45157
45547
|
});
|
|
45158
|
-
var ToggleGroup =
|
|
45548
|
+
var ToggleGroup = React115.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ jsx185(
|
|
45159
45549
|
ToggleGroupPrimitive.Root,
|
|
45160
45550
|
{
|
|
45161
45551
|
ref,
|
|
45162
45552
|
className: cn("flex items-center justify-center gap-1", className),
|
|
45163
45553
|
...props,
|
|
45164
|
-
children: /* @__PURE__ */
|
|
45554
|
+
children: /* @__PURE__ */ jsx185(ToggleGroupContext.Provider, { value: { variant, size }, children })
|
|
45165
45555
|
}
|
|
45166
45556
|
));
|
|
45167
45557
|
ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
|
|
45168
|
-
var ToggleGroupItem =
|
|
45169
|
-
const context =
|
|
45170
|
-
return /* @__PURE__ */
|
|
45558
|
+
var ToggleGroupItem = React115.forwardRef(({ className, children, variant, size, ...props }, ref) => {
|
|
45559
|
+
const context = React115.useContext(ToggleGroupContext);
|
|
45560
|
+
return /* @__PURE__ */ jsx185(
|
|
45171
45561
|
ToggleGroupPrimitive.Item,
|
|
45172
45562
|
{
|
|
45173
45563
|
ref,
|
|
@@ -45186,7 +45576,7 @@ var ToggleGroupItem = React114.forwardRef(({ className, children, variant, size,
|
|
|
45186
45576
|
ToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;
|
|
45187
45577
|
|
|
45188
45578
|
// src/render/PXEngineRenderer.tsx
|
|
45189
|
-
import { jsx as
|
|
45579
|
+
import { jsx as jsx186, jsxs as jsxs138 } from "react/jsx-runtime";
|
|
45190
45580
|
var CONTEXT_DEPENDENT_COMPONENTS = /* @__PURE__ */ new Set([
|
|
45191
45581
|
// Form components - require FormField + FormItem context
|
|
45192
45582
|
"FormLabel",
|
|
@@ -45291,24 +45681,24 @@ var REGISTERED_COMPONENTS = /* @__PURE__ */ new Set([
|
|
|
45291
45681
|
]);
|
|
45292
45682
|
var renderContextDependentError = (componentName, normalizedName, key) => {
|
|
45293
45683
|
const suggestion = COMPONENT_SUGGESTIONS[normalizedName] || `${componentName}Atom (if available)`;
|
|
45294
|
-
return /* @__PURE__ */
|
|
45684
|
+
return /* @__PURE__ */ jsxs138(
|
|
45295
45685
|
"div",
|
|
45296
45686
|
{
|
|
45297
45687
|
className: "p-4 border-2 border-amber-500/50 rounded-lg bg-amber-50/80 space-y-2 my-2",
|
|
45298
45688
|
children: [
|
|
45299
|
-
/* @__PURE__ */
|
|
45300
|
-
/* @__PURE__ */
|
|
45301
|
-
/* @__PURE__ */
|
|
45302
|
-
/* @__PURE__ */
|
|
45689
|
+
/* @__PURE__ */ jsxs138("div", { className: "flex items-start gap-2", children: [
|
|
45690
|
+
/* @__PURE__ */ jsx186("span", { className: "text-amber-600 font-bold text-lg", children: "\u26A0\uFE0F" }),
|
|
45691
|
+
/* @__PURE__ */ jsxs138("div", { className: "flex-1", children: [
|
|
45692
|
+
/* @__PURE__ */ jsxs138("p", { className: "text-sm font-semibold text-amber-900", children: [
|
|
45303
45693
|
"Invalid Component: ",
|
|
45304
45694
|
componentName
|
|
45305
45695
|
] }),
|
|
45306
|
-
/* @__PURE__ */
|
|
45696
|
+
/* @__PURE__ */ jsx186("p", { className: "text-xs text-amber-700 mt-1", children: "This component requires React Context and cannot be rendered directly in schemas." })
|
|
45307
45697
|
] })
|
|
45308
45698
|
] }),
|
|
45309
|
-
/* @__PURE__ */
|
|
45310
|
-
/* @__PURE__ */
|
|
45311
|
-
/* @__PURE__ */
|
|
45699
|
+
/* @__PURE__ */ jsxs138("div", { className: "bg-white/60 p-3 rounded border border-amber-200", children: [
|
|
45700
|
+
/* @__PURE__ */ jsx186("p", { className: "text-xs font-semibold text-gray-700 mb-1.5", children: "\u2713 Use instead:" }),
|
|
45701
|
+
/* @__PURE__ */ jsx186("code", { className: "text-xs text-blue-700 bg-blue-50 px-2 py-1 rounded", children: suggestion })
|
|
45312
45702
|
] })
|
|
45313
45703
|
]
|
|
45314
45704
|
},
|
|
@@ -45386,12 +45776,12 @@ var PXEngineRenderer = ({
|
|
|
45386
45776
|
const root = schema.root || schema;
|
|
45387
45777
|
const renderRecursive = (component, index) => {
|
|
45388
45778
|
if (Array.isArray(component)) {
|
|
45389
|
-
return /* @__PURE__ */
|
|
45779
|
+
return /* @__PURE__ */ jsx186(React116.Fragment, { children: component.map((child, idx) => renderRecursive(child, idx)) }, index !== void 0 ? `array-${index}` : "array-root");
|
|
45390
45780
|
}
|
|
45391
45781
|
if (typeof component === "string" || typeof component === "number") {
|
|
45392
45782
|
return component;
|
|
45393
45783
|
}
|
|
45394
|
-
if (
|
|
45784
|
+
if (React116.isValidElement(component)) {
|
|
45395
45785
|
return component;
|
|
45396
45786
|
}
|
|
45397
45787
|
if (!component || typeof component !== "object") return null;
|
|
@@ -45473,7 +45863,7 @@ var PXEngineRenderer = ({
|
|
|
45473
45863
|
const isAtomWithRenderProp = ATOMS_WITH_RENDER.has(atomName);
|
|
45474
45864
|
const finalStyle = { ...dynamicStyle, ...finalProps.style || {} };
|
|
45475
45865
|
if (isAtomWithRenderProp) {
|
|
45476
|
-
return /* @__PURE__ */
|
|
45866
|
+
return /* @__PURE__ */ jsx186(
|
|
45477
45867
|
TargetComponent,
|
|
45478
45868
|
{
|
|
45479
45869
|
...finalProps,
|
|
@@ -45485,7 +45875,7 @@ var PXEngineRenderer = ({
|
|
|
45485
45875
|
uniqueKey
|
|
45486
45876
|
);
|
|
45487
45877
|
} else {
|
|
45488
|
-
return /* @__PURE__ */
|
|
45878
|
+
return /* @__PURE__ */ jsx186(
|
|
45489
45879
|
TargetComponent,
|
|
45490
45880
|
{
|
|
45491
45881
|
...finalProps,
|
|
@@ -45497,7 +45887,7 @@ var PXEngineRenderer = ({
|
|
|
45497
45887
|
);
|
|
45498
45888
|
}
|
|
45499
45889
|
};
|
|
45500
|
-
return /* @__PURE__ */
|
|
45890
|
+
return /* @__PURE__ */ jsx186("div", { className: "px-engine-root relative w-full h-full", children: renderRecursive(root) });
|
|
45501
45891
|
};
|
|
45502
45892
|
export {
|
|
45503
45893
|
Accordion,
|
|
@@ -45736,6 +46126,7 @@ export {
|
|
|
45736
46126
|
RatingAtom,
|
|
45737
46127
|
RecommendationCard,
|
|
45738
46128
|
ResearchBriefCard,
|
|
46129
|
+
ResearchReportJobCard,
|
|
45739
46130
|
ResizableAtom,
|
|
45740
46131
|
ResizablePanel,
|
|
45741
46132
|
ResizablePanelGroup,
|