pxengine 0.1.81 → 0.1.83
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 +1186 -840
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +62 -1
- package/dist/index.d.ts +62 -1
- package/dist/index.mjs +1170 -825
- package/dist/index.mjs.map +1 -1
- package/dist/registry.json +107 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -266,6 +266,7 @@ __export(index_exports, {
|
|
|
266
266
|
RatingAtom: () => RatingAtom,
|
|
267
267
|
RecommendationCard: () => RecommendationCard,
|
|
268
268
|
ResearchBriefCard: () => ResearchBriefCard,
|
|
269
|
+
ResearchReportJobCard: () => ResearchReportJobCard,
|
|
269
270
|
ResizableAtom: () => ResizableAtom,
|
|
270
271
|
ResizablePanel: () => ResizablePanel,
|
|
271
272
|
ResizablePanelGroup: () => ResizablePanelGroup,
|
|
@@ -350,7 +351,7 @@ __export(index_exports, {
|
|
|
350
351
|
module.exports = __toCommonJS(index_exports);
|
|
351
352
|
|
|
352
353
|
// src/render/PXEngineRenderer.tsx
|
|
353
|
-
var
|
|
354
|
+
var import_react92 = __toESM(require("react"), 1);
|
|
354
355
|
|
|
355
356
|
// src/atoms/index.ts
|
|
356
357
|
var atoms_exports = {};
|
|
@@ -33951,6 +33952,7 @@ __export(molecules_exports, {
|
|
|
33951
33952
|
PriorityActionsCard: () => PriorityActionsCard,
|
|
33952
33953
|
RecommendationCard: () => RecommendationCard,
|
|
33953
33954
|
ResearchBriefCard: () => ResearchBriefCard,
|
|
33955
|
+
ResearchReportJobCard: () => ResearchReportJobCard,
|
|
33954
33956
|
RiskSignalCard: () => RiskSignalCard,
|
|
33955
33957
|
ScoreBreakdownCard: () => ScoreBreakdownCard,
|
|
33956
33958
|
SearchSpecCard: () => SearchSpecCard,
|
|
@@ -39453,11 +39455,354 @@ var PresentationJobCard = ({
|
|
|
39453
39455
|
] });
|
|
39454
39456
|
};
|
|
39455
39457
|
|
|
39458
|
+
// src/molecules/generic/ResearchReportJobCard/ResearchReportJobCard.tsx
|
|
39459
|
+
var import_react76 = require("react");
|
|
39460
|
+
var import_jsx_runtime148 = require("react/jsx-runtime");
|
|
39461
|
+
var DEFAULT_THEME = {
|
|
39462
|
+
primary: "#8b5cf6",
|
|
39463
|
+
secondary: "#a78bfa",
|
|
39464
|
+
accent: "#c4b5fd"
|
|
39465
|
+
};
|
|
39466
|
+
var DownloadIcon2 = () => /* @__PURE__ */ (0, import_jsx_runtime148.jsxs)("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.2", strokeLinecap: "round", strokeLinejoin: "round", children: [
|
|
39467
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)("path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }),
|
|
39468
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)("polyline", { points: "7 10 12 15 17 10" }),
|
|
39469
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)("line", { x1: "12", y1: "15", x2: "12", y2: "3" })
|
|
39470
|
+
] });
|
|
39471
|
+
var DocumentIcon = () => /* @__PURE__ */ (0, import_jsx_runtime148.jsxs)("svg", { width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
|
|
39472
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)("path", { d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" }),
|
|
39473
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)("polyline", { points: "14 2 14 8 20 8" }),
|
|
39474
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)("line", { x1: "16", y1: "13", x2: "8", y2: "13" }),
|
|
39475
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)("line", { x1: "16", y1: "17", x2: "8", y2: "17" }),
|
|
39476
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)("line", { x1: "10", y1: "9", x2: "8", y2: "9" })
|
|
39477
|
+
] });
|
|
39478
|
+
var CloseIcon2 = () => /* @__PURE__ */ (0, import_jsx_runtime148.jsxs)("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.2", strokeLinecap: "round", strokeLinejoin: "round", children: [
|
|
39479
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)("line", { x1: "18", y1: "6", x2: "6", y2: "18" }),
|
|
39480
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)("line", { x1: "6", y1: "6", x2: "18", y2: "18" })
|
|
39481
|
+
] });
|
|
39482
|
+
var ExpandIcon2 = () => /* @__PURE__ */ (0, import_jsx_runtime148.jsxs)("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.2", strokeLinecap: "round", strokeLinejoin: "round", children: [
|
|
39483
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)("polyline", { points: "15 3 21 3 21 9" }),
|
|
39484
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)("polyline", { points: "9 21 3 21 3 15" }),
|
|
39485
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)("line", { x1: "21", y1: "3", x2: "14", y2: "10" }),
|
|
39486
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)("line", { x1: "3", y1: "21", x2: "10", y2: "14" })
|
|
39487
|
+
] });
|
|
39488
|
+
var FullscreenPreviewModal = ({ url, title, onClose }) => {
|
|
39489
|
+
(0, import_react76.useEffect)(() => {
|
|
39490
|
+
const onKey = (e) => {
|
|
39491
|
+
if (e.key === "Escape") onClose();
|
|
39492
|
+
};
|
|
39493
|
+
document.addEventListener("keydown", onKey);
|
|
39494
|
+
return () => document.removeEventListener("keydown", onKey);
|
|
39495
|
+
}, [onClose]);
|
|
39496
|
+
(0, import_react76.useEffect)(() => {
|
|
39497
|
+
document.body.style.overflow = "hidden";
|
|
39498
|
+
return () => {
|
|
39499
|
+
document.body.style.overflow = "";
|
|
39500
|
+
};
|
|
39501
|
+
}, []);
|
|
39502
|
+
return /* @__PURE__ */ (0, import_jsx_runtime148.jsxs)("div", { className: "fixed inset-0 z-50 bg-black flex flex-col", children: [
|
|
39503
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsxs)("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: [
|
|
39504
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsxs)("div", { className: "flex items-center gap-3 min-w-0", children: [
|
|
39505
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)("span", { className: "text-violet-400 flex-shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime148.jsx)(DocumentIcon, {}) }),
|
|
39506
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)("span", { className: "text-sm font-medium text-zinc-300 truncate", children: title })
|
|
39507
|
+
] }),
|
|
39508
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsxs)(
|
|
39509
|
+
"button",
|
|
39510
|
+
{
|
|
39511
|
+
onClick: onClose,
|
|
39512
|
+
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",
|
|
39513
|
+
children: [
|
|
39514
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)(CloseIcon2, {}),
|
|
39515
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)("span", { children: "ESC" })
|
|
39516
|
+
]
|
|
39517
|
+
}
|
|
39518
|
+
)
|
|
39519
|
+
] }),
|
|
39520
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)("div", { className: "flex-1 relative bg-white overflow-auto", children: /* @__PURE__ */ (0, import_jsx_runtime148.jsx)(
|
|
39521
|
+
"iframe",
|
|
39522
|
+
{
|
|
39523
|
+
src: url,
|
|
39524
|
+
title,
|
|
39525
|
+
className: "absolute inset-0 w-full h-full border-0",
|
|
39526
|
+
sandbox: "allow-same-origin"
|
|
39527
|
+
}
|
|
39528
|
+
) })
|
|
39529
|
+
] });
|
|
39530
|
+
};
|
|
39531
|
+
var ResearchReportJobCard = ({
|
|
39532
|
+
job_id: _job_id,
|
|
39533
|
+
title: initialTitle,
|
|
39534
|
+
status: initialStatus,
|
|
39535
|
+
topic: _initialTopic,
|
|
39536
|
+
depth: initialDepth,
|
|
39537
|
+
section_count: initialSectionCount,
|
|
39538
|
+
source_count: initialSourceCount,
|
|
39539
|
+
word_count: initialWordCount,
|
|
39540
|
+
executive_summary: initialSummary,
|
|
39541
|
+
key_findings: _initialFindings,
|
|
39542
|
+
html_url: initialHtmlUrl,
|
|
39543
|
+
theme: initialTheme,
|
|
39544
|
+
error: initialError,
|
|
39545
|
+
pollUrl,
|
|
39546
|
+
authToken,
|
|
39547
|
+
className,
|
|
39548
|
+
onComplete,
|
|
39549
|
+
onFailed
|
|
39550
|
+
}) => {
|
|
39551
|
+
const [status, setStatus] = (0, import_react76.useState)(initialStatus);
|
|
39552
|
+
const [title, setTitle] = (0, import_react76.useState)(initialTitle);
|
|
39553
|
+
const [depth, setDepth] = (0, import_react76.useState)(initialDepth || "");
|
|
39554
|
+
const [sectionCount, setSectionCount] = (0, import_react76.useState)(initialSectionCount ?? 0);
|
|
39555
|
+
const [sourceCount, setSourceCount] = (0, import_react76.useState)(initialSourceCount ?? 0);
|
|
39556
|
+
const [wordCount, setWordCount] = (0, import_react76.useState)(initialWordCount ?? 0);
|
|
39557
|
+
const [summary, setSummary] = (0, import_react76.useState)(initialSummary || "");
|
|
39558
|
+
const [htmlUrl, setHtmlUrl] = (0, import_react76.useState)(initialHtmlUrl || "");
|
|
39559
|
+
const [theme, setTheme] = (0, import_react76.useState)(initialTheme || DEFAULT_THEME);
|
|
39560
|
+
const [error, setError] = (0, import_react76.useState)(initialError);
|
|
39561
|
+
const [showPreview, setShowPreview] = (0, import_react76.useState)(false);
|
|
39562
|
+
const [previewScale, setPreviewScale] = (0, import_react76.useState)(1);
|
|
39563
|
+
const previewRef = (0, import_react76.useRef)(null);
|
|
39564
|
+
const intervalRef = (0, import_react76.useRef)(null);
|
|
39565
|
+
const onCompleteRef = (0, import_react76.useRef)(onComplete);
|
|
39566
|
+
const onFailedRef = (0, import_react76.useRef)(onFailed);
|
|
39567
|
+
const hasNotifiedRef = (0, import_react76.useRef)(false);
|
|
39568
|
+
onCompleteRef.current = onComplete;
|
|
39569
|
+
onFailedRef.current = onFailed;
|
|
39570
|
+
const isTerminal = status === "complete" || status === "failed";
|
|
39571
|
+
const primaryColor = theme?.primary || DEFAULT_THEME.primary;
|
|
39572
|
+
const hasHTML = Boolean(htmlUrl);
|
|
39573
|
+
const updateScale = (0, import_react76.useCallback)(() => {
|
|
39574
|
+
if (previewRef.current) {
|
|
39575
|
+
setPreviewScale(previewRef.current.offsetWidth / 800);
|
|
39576
|
+
}
|
|
39577
|
+
}, []);
|
|
39578
|
+
(0, import_react76.useEffect)(() => {
|
|
39579
|
+
updateScale();
|
|
39580
|
+
if (typeof ResizeObserver === "undefined") return;
|
|
39581
|
+
const ro = new ResizeObserver(updateScale);
|
|
39582
|
+
if (previewRef.current) ro.observe(previewRef.current);
|
|
39583
|
+
return () => ro.disconnect();
|
|
39584
|
+
}, [updateScale, htmlUrl]);
|
|
39585
|
+
(0, import_react76.useEffect)(() => {
|
|
39586
|
+
if (isTerminal || !pollUrl) return;
|
|
39587
|
+
const poll = async () => {
|
|
39588
|
+
try {
|
|
39589
|
+
const headers = {};
|
|
39590
|
+
if (authToken) {
|
|
39591
|
+
headers["Authorization"] = `Bearer ${authToken}`;
|
|
39592
|
+
}
|
|
39593
|
+
const res = await fetch(pollUrl, { headers });
|
|
39594
|
+
if (!res.ok) return;
|
|
39595
|
+
const data = await res.json();
|
|
39596
|
+
const newStatus = data.status;
|
|
39597
|
+
setStatus(newStatus);
|
|
39598
|
+
if (newStatus === "complete" && data.output) {
|
|
39599
|
+
const output = data.output;
|
|
39600
|
+
setTitle(output.title || initialTitle);
|
|
39601
|
+
setDepth(output.depth || "");
|
|
39602
|
+
setSectionCount(output.section_count || 0);
|
|
39603
|
+
setSourceCount(output.source_count || 0);
|
|
39604
|
+
setWordCount(output.word_count || 0);
|
|
39605
|
+
setSummary(output.executive_summary || "");
|
|
39606
|
+
setHtmlUrl(output.html_url || "");
|
|
39607
|
+
if (output.theme) {
|
|
39608
|
+
setTheme(output.theme);
|
|
39609
|
+
}
|
|
39610
|
+
if (!hasNotifiedRef.current && onCompleteRef.current) {
|
|
39611
|
+
hasNotifiedRef.current = true;
|
|
39612
|
+
onCompleteRef.current(output);
|
|
39613
|
+
}
|
|
39614
|
+
}
|
|
39615
|
+
if (newStatus === "failed") {
|
|
39616
|
+
const errorMsg = data.error || "Job failed";
|
|
39617
|
+
setError(errorMsg);
|
|
39618
|
+
if (!hasNotifiedRef.current && onFailedRef.current) {
|
|
39619
|
+
hasNotifiedRef.current = true;
|
|
39620
|
+
onFailedRef.current(errorMsg);
|
|
39621
|
+
}
|
|
39622
|
+
}
|
|
39623
|
+
} catch {
|
|
39624
|
+
}
|
|
39625
|
+
};
|
|
39626
|
+
poll();
|
|
39627
|
+
intervalRef.current = setInterval(poll, 3e3);
|
|
39628
|
+
return () => {
|
|
39629
|
+
if (intervalRef.current) clearInterval(intervalRef.current);
|
|
39630
|
+
};
|
|
39631
|
+
}, [isTerminal, pollUrl, authToken, initialTitle]);
|
|
39632
|
+
(0, import_react76.useEffect)(() => {
|
|
39633
|
+
if (isTerminal && intervalRef.current) {
|
|
39634
|
+
clearInterval(intervalRef.current);
|
|
39635
|
+
intervalRef.current = null;
|
|
39636
|
+
}
|
|
39637
|
+
}, [isTerminal]);
|
|
39638
|
+
const formatWordCount = (count) => {
|
|
39639
|
+
if (count >= 1e3) return `${(count / 1e3).toFixed(1)}k`;
|
|
39640
|
+
return count.toString();
|
|
39641
|
+
};
|
|
39642
|
+
if (status === "pending" || status === "running") {
|
|
39643
|
+
return /* @__PURE__ */ (0, import_jsx_runtime148.jsx)("div", { className: cn("w-full", className), children: /* @__PURE__ */ (0, import_jsx_runtime148.jsxs)("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: [
|
|
39644
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsxs)("div", { className: "absolute inset-0 p-[8%] flex flex-col", children: [
|
|
39645
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)("div", { className: "h-[14px] w-[55%] rounded bg-zinc-300 dark:bg-zinc-700 animate-pulse mb-4" }),
|
|
39646
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)("div", { className: "h-[10px] w-[35%] rounded bg-zinc-200 dark:bg-zinc-800 animate-pulse mb-6", style: { animationDelay: "80ms" } }),
|
|
39647
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsxs)("div", { className: "space-y-2.5 flex-1", children: [
|
|
39648
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)("div", { className: "h-[8px] w-[90%] rounded bg-zinc-200 dark:bg-zinc-800 animate-pulse", style: { animationDelay: "160ms" } }),
|
|
39649
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)("div", { className: "h-[8px] w-[85%] rounded bg-zinc-200 dark:bg-zinc-800 animate-pulse", style: { animationDelay: "240ms" } }),
|
|
39650
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)("div", { className: "h-[8px] w-[75%] rounded bg-zinc-200 dark:bg-zinc-800 animate-pulse", style: { animationDelay: "320ms" } }),
|
|
39651
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)("div", { className: "h-[8px] w-[80%] rounded bg-zinc-200 dark:bg-zinc-800 animate-pulse", style: { animationDelay: "400ms" } }),
|
|
39652
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)("div", { className: "h-[8px] w-[60%] rounded bg-zinc-200 dark:bg-zinc-800 animate-pulse", style: { animationDelay: "480ms" } })
|
|
39653
|
+
] })
|
|
39654
|
+
] }),
|
|
39655
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)("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" })
|
|
39656
|
+
] }) });
|
|
39657
|
+
}
|
|
39658
|
+
if (status === "failed") {
|
|
39659
|
+
return /* @__PURE__ */ (0, import_jsx_runtime148.jsx)("div", { className: cn("w-full", className), children: /* @__PURE__ */ (0, import_jsx_runtime148.jsx)("div", { className: "bg-red-950/20 border border-red-800/25 rounded-2xl p-5", children: /* @__PURE__ */ (0, import_jsx_runtime148.jsxs)("div", { className: "flex items-start gap-3", children: [
|
|
39660
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)("span", { className: "text-red-400 text-base mt-0.5 flex-shrink-0", children: "\u26A0" }),
|
|
39661
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsxs)("div", { children: [
|
|
39662
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)("p", { className: "text-sm font-semibold text-red-300", children: "Research report generation failed" }),
|
|
39663
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)("p", { className: "text-xs text-red-400/60 mt-1 leading-relaxed", children: error || "An unexpected error occurred. Please try again." })
|
|
39664
|
+
] })
|
|
39665
|
+
] }) }) });
|
|
39666
|
+
}
|
|
39667
|
+
const handleDownload = async () => {
|
|
39668
|
+
if (!htmlUrl) return;
|
|
39669
|
+
const filename = `${title.replace(/[^a-z0-9]/gi, "-").toLowerCase()}.html`;
|
|
39670
|
+
const href = `/api/download?url=${encodeURIComponent(htmlUrl)}&filename=${encodeURIComponent(filename)}`;
|
|
39671
|
+
try {
|
|
39672
|
+
const response = await fetch(href);
|
|
39673
|
+
if (!response.ok) throw new Error(`status ${response.status}`);
|
|
39674
|
+
const blob = await response.blob();
|
|
39675
|
+
const objectUrl = window.URL.createObjectURL(blob);
|
|
39676
|
+
const anchor = document.createElement("a");
|
|
39677
|
+
anchor.href = objectUrl;
|
|
39678
|
+
anchor.download = filename;
|
|
39679
|
+
document.body.appendChild(anchor);
|
|
39680
|
+
anchor.click();
|
|
39681
|
+
anchor.remove();
|
|
39682
|
+
window.URL.revokeObjectURL(objectUrl);
|
|
39683
|
+
} catch {
|
|
39684
|
+
window.open(htmlUrl, "_blank", "noopener,noreferrer");
|
|
39685
|
+
}
|
|
39686
|
+
};
|
|
39687
|
+
return /* @__PURE__ */ (0, import_jsx_runtime148.jsxs)(import_jsx_runtime148.Fragment, { children: [
|
|
39688
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)("div", { className: cn("w-full", className), children: /* @__PURE__ */ (0, import_jsx_runtime148.jsxs)("div", { className: "bg-zinc-900 border border-zinc-800 rounded-2xl overflow-hidden", children: [
|
|
39689
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)(
|
|
39690
|
+
"div",
|
|
39691
|
+
{
|
|
39692
|
+
className: "h-[3px]",
|
|
39693
|
+
style: {
|
|
39694
|
+
background: `linear-gradient(90deg, ${primaryColor}, ${theme?.secondary || "#a78bfa"}, ${theme?.accent || "#c4b5fd"})`
|
|
39695
|
+
}
|
|
39696
|
+
}
|
|
39697
|
+
),
|
|
39698
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsxs)("div", { className: "p-5", children: [
|
|
39699
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsxs)("div", { className: "flex items-start gap-3", children: [
|
|
39700
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)(
|
|
39701
|
+
"div",
|
|
39702
|
+
{
|
|
39703
|
+
className: "w-10 h-10 rounded-xl flex items-center justify-center flex-shrink-0",
|
|
39704
|
+
style: {
|
|
39705
|
+
backgroundColor: `${primaryColor}15`,
|
|
39706
|
+
borderColor: `${primaryColor}30`,
|
|
39707
|
+
borderWidth: 1,
|
|
39708
|
+
color: primaryColor
|
|
39709
|
+
},
|
|
39710
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime148.jsx)(DocumentIcon, {})
|
|
39711
|
+
}
|
|
39712
|
+
),
|
|
39713
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsxs)("div", { className: "flex-1 min-w-0", children: [
|
|
39714
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)("h3", { className: "text-sm font-semibold text-zinc-100 truncate leading-tight", children: title }),
|
|
39715
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsxs)("p", { className: "text-xs text-zinc-500 mt-0.5", children: [
|
|
39716
|
+
depth && /* @__PURE__ */ (0, import_jsx_runtime148.jsx)("span", { className: "capitalize", children: depth }),
|
|
39717
|
+
depth && sectionCount > 0 && " \xB7 ",
|
|
39718
|
+
sectionCount > 0 && `${sectionCount} sections`,
|
|
39719
|
+
sourceCount > 0 && ` \xB7 ${sourceCount} sources`,
|
|
39720
|
+
wordCount > 0 && ` \xB7 ${formatWordCount(wordCount)} words`
|
|
39721
|
+
] })
|
|
39722
|
+
] }),
|
|
39723
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsxs)("div", { className: "flex items-center gap-1.5 flex-shrink-0", children: [
|
|
39724
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsxs)(
|
|
39725
|
+
"button",
|
|
39726
|
+
{
|
|
39727
|
+
onClick: () => setShowPreview(true),
|
|
39728
|
+
disabled: !hasHTML,
|
|
39729
|
+
title: "Preview report",
|
|
39730
|
+
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",
|
|
39731
|
+
children: [
|
|
39732
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)(ExpandIcon2, {}),
|
|
39733
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)("span", { children: "Preview" })
|
|
39734
|
+
]
|
|
39735
|
+
}
|
|
39736
|
+
),
|
|
39737
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsxs)(
|
|
39738
|
+
"button",
|
|
39739
|
+
{
|
|
39740
|
+
onClick: handleDownload,
|
|
39741
|
+
disabled: !hasHTML,
|
|
39742
|
+
className: "flex items-center gap-1.5 px-2.5 h-7 text-white text-xs font-medium rounded-lg transition-colors disabled:opacity-50 disabled:cursor-not-allowed",
|
|
39743
|
+
style: { backgroundColor: primaryColor },
|
|
39744
|
+
onMouseEnter: (e) => e.currentTarget.style.filter = "brightness(1.15)",
|
|
39745
|
+
onMouseLeave: (e) => e.currentTarget.style.filter = "brightness(1)",
|
|
39746
|
+
children: [
|
|
39747
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)(DownloadIcon2, {}),
|
|
39748
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)("span", { children: "Download" })
|
|
39749
|
+
]
|
|
39750
|
+
}
|
|
39751
|
+
)
|
|
39752
|
+
] })
|
|
39753
|
+
] }),
|
|
39754
|
+
hasHTML && /* @__PURE__ */ (0, import_jsx_runtime148.jsx)("div", { className: "mt-4", children: /* @__PURE__ */ (0, import_jsx_runtime148.jsxs)(
|
|
39755
|
+
"div",
|
|
39756
|
+
{
|
|
39757
|
+
ref: previewRef,
|
|
39758
|
+
onClick: () => setShowPreview(true),
|
|
39759
|
+
className: "group relative overflow-hidden rounded-xl bg-white border border-zinc-800/50 cursor-pointer",
|
|
39760
|
+
style: { height: Math.round(previewScale * 400) },
|
|
39761
|
+
title: "Click to open fullscreen",
|
|
39762
|
+
children: [
|
|
39763
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)(
|
|
39764
|
+
"iframe",
|
|
39765
|
+
{
|
|
39766
|
+
src: htmlUrl,
|
|
39767
|
+
title,
|
|
39768
|
+
sandbox: "allow-same-origin",
|
|
39769
|
+
style: {
|
|
39770
|
+
width: 800,
|
|
39771
|
+
height: 400,
|
|
39772
|
+
transform: `scale(${previewScale})`,
|
|
39773
|
+
transformOrigin: "top left",
|
|
39774
|
+
border: "none",
|
|
39775
|
+
pointerEvents: "none",
|
|
39776
|
+
display: "block"
|
|
39777
|
+
}
|
|
39778
|
+
}
|
|
39779
|
+
),
|
|
39780
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)("div", { className: "absolute inset-0 flex items-center justify-center bg-black/0 group-hover:bg-black/30 transition-colors", children: /* @__PURE__ */ (0, import_jsx_runtime148.jsxs)("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: [
|
|
39781
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)(ExpandIcon2, {}),
|
|
39782
|
+
"Open fullscreen"
|
|
39783
|
+
] }) })
|
|
39784
|
+
]
|
|
39785
|
+
}
|
|
39786
|
+
) }),
|
|
39787
|
+
!hasHTML && summary && /* @__PURE__ */ (0, import_jsx_runtime148.jsx)("div", { className: "mt-4 pt-4 border-t border-zinc-800/60", children: /* @__PURE__ */ (0, import_jsx_runtime148.jsx)("p", { className: "text-sm text-zinc-400 leading-relaxed line-clamp-3", children: summary }) })
|
|
39788
|
+
] })
|
|
39789
|
+
] }) }),
|
|
39790
|
+
showPreview && hasHTML && /* @__PURE__ */ (0, import_jsx_runtime148.jsx)(
|
|
39791
|
+
FullscreenPreviewModal,
|
|
39792
|
+
{
|
|
39793
|
+
url: htmlUrl,
|
|
39794
|
+
title,
|
|
39795
|
+
onClose: () => setShowPreview(false)
|
|
39796
|
+
}
|
|
39797
|
+
)
|
|
39798
|
+
] });
|
|
39799
|
+
};
|
|
39800
|
+
|
|
39456
39801
|
// src/molecules/creator-discovery/CampaignSeedCard/CampaignSeedCard.tsx
|
|
39457
|
-
var
|
|
39802
|
+
var import_react78 = __toESM(require("react"), 1);
|
|
39458
39803
|
|
|
39459
39804
|
// src/molecules/creator-discovery/SearchSpecCard/CustomFieldRenderers.tsx
|
|
39460
|
-
var
|
|
39805
|
+
var import_react77 = require("react");
|
|
39461
39806
|
|
|
39462
39807
|
// src/lib/countries.ts
|
|
39463
39808
|
var countries = [
|
|
@@ -39664,15 +40009,15 @@ var countriesWithFlags = Object.fromEntries(
|
|
|
39664
40009
|
);
|
|
39665
40010
|
|
|
39666
40011
|
// src/molecules/creator-discovery/SearchSpecCard/CustomFieldRenderers.tsx
|
|
39667
|
-
var
|
|
40012
|
+
var import_jsx_runtime149 = require("react/jsx-runtime");
|
|
39668
40013
|
var CountrySelectEdit = ({
|
|
39669
40014
|
value,
|
|
39670
40015
|
onChange
|
|
39671
40016
|
}) => {
|
|
39672
|
-
const [isDropdownOpen, setIsDropdownOpen] = (0,
|
|
39673
|
-
const [searchTerm, setSearchTerm] = (0,
|
|
39674
|
-
const dropdownRef = (0,
|
|
39675
|
-
(0,
|
|
40017
|
+
const [isDropdownOpen, setIsDropdownOpen] = (0, import_react77.useState)(false);
|
|
40018
|
+
const [searchTerm, setSearchTerm] = (0, import_react77.useState)("");
|
|
40019
|
+
const dropdownRef = (0, import_react77.useRef)(null);
|
|
40020
|
+
(0, import_react77.useEffect)(() => {
|
|
39676
40021
|
const handleClickOutside = (event) => {
|
|
39677
40022
|
if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {
|
|
39678
40023
|
setIsDropdownOpen(false);
|
|
@@ -39681,7 +40026,7 @@ var CountrySelectEdit = ({
|
|
|
39681
40026
|
document.addEventListener("mousedown", handleClickOutside);
|
|
39682
40027
|
return () => document.removeEventListener("mousedown", handleClickOutside);
|
|
39683
40028
|
}, []);
|
|
39684
|
-
const inputValue = (0,
|
|
40029
|
+
const inputValue = (0, import_react77.useMemo)(() => {
|
|
39685
40030
|
if (Array.isArray(value)) return value;
|
|
39686
40031
|
if (typeof value === "string" && value.trim() !== "") {
|
|
39687
40032
|
const foundCountry = countries.find(
|
|
@@ -39691,16 +40036,16 @@ var CountrySelectEdit = ({
|
|
|
39691
40036
|
}
|
|
39692
40037
|
return [];
|
|
39693
40038
|
}, [value]);
|
|
39694
|
-
return /* @__PURE__ */ (0,
|
|
39695
|
-
/* @__PURE__ */ (0,
|
|
39696
|
-
/* @__PURE__ */ (0,
|
|
40039
|
+
return /* @__PURE__ */ (0, import_jsx_runtime149.jsxs)("div", { className: "space-y-3", children: [
|
|
40040
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsxs)("div", { className: "relative", ref: dropdownRef, children: [
|
|
40041
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsxs)(
|
|
39697
40042
|
"div",
|
|
39698
40043
|
{
|
|
39699
40044
|
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",
|
|
39700
40045
|
onClick: () => setIsDropdownOpen(!isDropdownOpen),
|
|
39701
40046
|
children: [
|
|
39702
|
-
/* @__PURE__ */ (0,
|
|
39703
|
-
/* @__PURE__ */ (0,
|
|
40047
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)("span", { className: "text-foreground", children: inputValue.length > 0 ? `${inputValue.length} ${inputValue.length === 1 ? "country" : "countries"} selected` : "Select countries..." }),
|
|
40048
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)(
|
|
39704
40049
|
ChevronDown,
|
|
39705
40050
|
{
|
|
39706
40051
|
className: cn(
|
|
@@ -39712,8 +40057,8 @@ var CountrySelectEdit = ({
|
|
|
39712
40057
|
]
|
|
39713
40058
|
}
|
|
39714
40059
|
),
|
|
39715
|
-
isDropdownOpen && /* @__PURE__ */ (0,
|
|
39716
|
-
/* @__PURE__ */ (0,
|
|
40060
|
+
isDropdownOpen && /* @__PURE__ */ (0, import_jsx_runtime149.jsxs)("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: [
|
|
40061
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)("div", { className: "p-2 border-b border-border", children: /* @__PURE__ */ (0, import_jsx_runtime149.jsx)(
|
|
39717
40062
|
"input",
|
|
39718
40063
|
{
|
|
39719
40064
|
type: "text",
|
|
@@ -39724,9 +40069,9 @@ var CountrySelectEdit = ({
|
|
|
39724
40069
|
onClick: (e) => e.stopPropagation()
|
|
39725
40070
|
}
|
|
39726
40071
|
) }),
|
|
39727
|
-
/* @__PURE__ */ (0,
|
|
40072
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)("div", { className: "max-h-40 overflow-y-auto p-1", children: countries.filter(
|
|
39728
40073
|
(country) => country.name.toLowerCase().includes(searchTerm.toLowerCase()) || country.code.toLowerCase().includes(searchTerm.toLowerCase())
|
|
39729
|
-
).map((country) => /* @__PURE__ */ (0,
|
|
40074
|
+
).map((country) => /* @__PURE__ */ (0, import_jsx_runtime149.jsxs)(
|
|
39730
40075
|
"div",
|
|
39731
40076
|
{
|
|
39732
40077
|
className: cn(
|
|
@@ -39747,30 +40092,30 @@ var CountrySelectEdit = ({
|
|
|
39747
40092
|
}
|
|
39748
40093
|
},
|
|
39749
40094
|
children: [
|
|
39750
|
-
/* @__PURE__ */ (0,
|
|
39751
|
-
/* @__PURE__ */ (0,
|
|
39752
|
-
/* @__PURE__ */ (0,
|
|
40095
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
40096
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)("span", { className: "text-sm text-foreground", children: country.name }),
|
|
40097
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)("span", { className: "text-xs text-muted-foreground font-mono", children: country.code })
|
|
39753
40098
|
] }),
|
|
39754
|
-
inputValue.includes(country.code) && /* @__PURE__ */ (0,
|
|
40099
|
+
inputValue.includes(country.code) && /* @__PURE__ */ (0, import_jsx_runtime149.jsx)(Check, { className: "h-4 w-4 text-purple500" })
|
|
39755
40100
|
]
|
|
39756
40101
|
},
|
|
39757
40102
|
country.code
|
|
39758
40103
|
)) })
|
|
39759
40104
|
] })
|
|
39760
40105
|
] }),
|
|
39761
|
-
inputValue.length > 0 && /* @__PURE__ */ (0,
|
|
40106
|
+
inputValue.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime149.jsx)("div", { className: "flex flex-wrap gap-1.5", children: inputValue.map((countryCode) => /* @__PURE__ */ (0, import_jsx_runtime149.jsxs)(
|
|
39762
40107
|
Badge2,
|
|
39763
40108
|
{
|
|
39764
40109
|
className: "flex items-center gap-1 px-2 py-0.5 bg-grayPill border border-gray400 rounded-md text-white text-xs font-medium",
|
|
39765
40110
|
children: [
|
|
39766
40111
|
countryCode,
|
|
39767
|
-
/* @__PURE__ */ (0,
|
|
40112
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsxs)(
|
|
39768
40113
|
"button",
|
|
39769
40114
|
{
|
|
39770
40115
|
onClick: () => onChange(inputValue.filter((c) => c !== countryCode)),
|
|
39771
40116
|
className: "hover:bg-purple200 rounded-full p-0.5 transition-colors",
|
|
39772
40117
|
children: [
|
|
39773
|
-
/* @__PURE__ */ (0,
|
|
40118
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)(X, { className: "h-3 w-3" }),
|
|
39774
40119
|
" "
|
|
39775
40120
|
]
|
|
39776
40121
|
}
|
|
@@ -39782,19 +40127,19 @@ var CountrySelectEdit = ({
|
|
|
39782
40127
|
] });
|
|
39783
40128
|
};
|
|
39784
40129
|
var CountrySelectDisplay = ({ value }) => {
|
|
39785
|
-
const displayValues = (0,
|
|
40130
|
+
const displayValues = (0, import_react77.useMemo)(() => {
|
|
39786
40131
|
if (Array.isArray(value)) return value;
|
|
39787
40132
|
if (typeof value === "string" && value.trim() !== "") return [value];
|
|
39788
40133
|
return [];
|
|
39789
40134
|
}, [value]);
|
|
39790
40135
|
if (displayValues.length === 0) {
|
|
39791
|
-
return /* @__PURE__ */ (0,
|
|
40136
|
+
return /* @__PURE__ */ (0, import_jsx_runtime149.jsx)("span", { className: "text-muted-foreground italic text-sm", children: "Not specified" });
|
|
39792
40137
|
}
|
|
39793
|
-
return /* @__PURE__ */ (0,
|
|
40138
|
+
return /* @__PURE__ */ (0, import_jsx_runtime149.jsx)("div", { className: "flex flex-wrap gap-2 pt-1", children: displayValues.map((item) => {
|
|
39794
40139
|
const country = countries.find(
|
|
39795
40140
|
(c) => c.code.toLowerCase() === item.toLowerCase() || c.name.toLowerCase() === item.toLowerCase()
|
|
39796
40141
|
);
|
|
39797
|
-
return /* @__PURE__ */ (0,
|
|
40142
|
+
return /* @__PURE__ */ (0, import_jsx_runtime149.jsx)(
|
|
39798
40143
|
"div",
|
|
39799
40144
|
{
|
|
39800
40145
|
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",
|
|
@@ -39828,22 +40173,22 @@ var KeywordBundlesEdit = ({
|
|
|
39828
40173
|
});
|
|
39829
40174
|
});
|
|
39830
40175
|
const sortedPriorities = Object.keys(groups).map((n) => parseInt(n)).sort((a, b) => a - b);
|
|
39831
|
-
return /* @__PURE__ */ (0,
|
|
39832
|
-
/* @__PURE__ */ (0,
|
|
39833
|
-
/* @__PURE__ */ (0,
|
|
40176
|
+
return /* @__PURE__ */ (0, import_jsx_runtime149.jsx)("div", { className: "space-y-6 pt-2", children: sortedPriorities.map((priority) => /* @__PURE__ */ (0, import_jsx_runtime149.jsxs)("div", { className: "space-y-3", children: [
|
|
40177
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
40178
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsxs)("div", { className: "inline-block px-3 py-1 bg-purple200 hover:bg-purple200 text-purpleText text-sm font-medium rounded-md uppercase", children: [
|
|
39834
40179
|
"Priority ",
|
|
39835
40180
|
priority
|
|
39836
40181
|
] }),
|
|
39837
|
-
/* @__PURE__ */ (0,
|
|
40182
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)("div", { className: "h-px flex-1 bg-white/10" })
|
|
39838
40183
|
] }),
|
|
39839
|
-
groups[priority].map(({ bundle, index: bundleIndex }) => /* @__PURE__ */ (0,
|
|
40184
|
+
groups[priority].map(({ bundle, index: bundleIndex }) => /* @__PURE__ */ (0, import_jsx_runtime149.jsx)(
|
|
39840
40185
|
"div",
|
|
39841
40186
|
{
|
|
39842
40187
|
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",
|
|
39843
|
-
children: /* @__PURE__ */ (0,
|
|
39844
|
-
/* @__PURE__ */ (0,
|
|
39845
|
-
/* @__PURE__ */ (0,
|
|
39846
|
-
/* @__PURE__ */ (0,
|
|
40188
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime149.jsxs)("div", { className: "flex flex-col gap-3", children: [
|
|
40189
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)("label", { className: "text-[10px] font-bold text-gray-400 uppercase tracking-widest pl-1", children: "Keywords" }),
|
|
40190
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsxs)("div", { className: "space-y-3", children: [
|
|
40191
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)("div", { className: "flex flex-wrap gap-1.5", children: Array.isArray(bundle.keywords) && bundle.keywords.map((keyword, kIndex) => /* @__PURE__ */ (0, import_jsx_runtime149.jsxs)(
|
|
39847
40192
|
"div",
|
|
39848
40193
|
{
|
|
39849
40194
|
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",
|
|
@@ -39860,12 +40205,12 @@ var KeywordBundlesEdit = ({
|
|
|
39860
40205
|
},
|
|
39861
40206
|
children: [
|
|
39862
40207
|
keyword,
|
|
39863
|
-
/* @__PURE__ */ (0,
|
|
40208
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)("span", { className: "ml-1 opacity-60 group-hover:opacity-100 transition-opacity", children: "\xD7" })
|
|
39864
40209
|
]
|
|
39865
40210
|
},
|
|
39866
40211
|
kIndex
|
|
39867
40212
|
)) }),
|
|
39868
|
-
/* @__PURE__ */ (0,
|
|
40213
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)("div", { className: "flex gap-2", children: /* @__PURE__ */ (0, import_jsx_runtime149.jsx)(
|
|
39869
40214
|
"input",
|
|
39870
40215
|
{
|
|
39871
40216
|
type: "text",
|
|
@@ -39889,9 +40234,9 @@ var KeywordBundlesEdit = ({
|
|
|
39889
40234
|
}
|
|
39890
40235
|
) })
|
|
39891
40236
|
] }),
|
|
39892
|
-
/* @__PURE__ */ (0,
|
|
39893
|
-
/* @__PURE__ */ (0,
|
|
39894
|
-
/* @__PURE__ */ (0,
|
|
40237
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsxs)("div", { className: "flex flex-col gap-1.5 mt-1", children: [
|
|
40238
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)("label", { className: "text-[10px] font-bold text-gray-400 uppercase tracking-widest pl-1", children: "Priority Level (1-5)" }),
|
|
40239
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)(
|
|
39895
40240
|
"input",
|
|
39896
40241
|
{
|
|
39897
40242
|
type: "number",
|
|
@@ -39919,7 +40264,7 @@ var KeywordBundlesEdit = ({
|
|
|
39919
40264
|
var KeywordBundlesDisplay = ({ value }) => {
|
|
39920
40265
|
const bundles = Array.isArray(value) ? value : [];
|
|
39921
40266
|
if (bundles.length === 0)
|
|
39922
|
-
return /* @__PURE__ */ (0,
|
|
40267
|
+
return /* @__PURE__ */ (0, import_jsx_runtime149.jsx)("span", { className: "text-gray-500 italic text-sm", children: "Not specified" });
|
|
39923
40268
|
const groups = {};
|
|
39924
40269
|
bundles.forEach((b, idx) => {
|
|
39925
40270
|
const p = Number(b?.priority) || idx + 1;
|
|
@@ -39932,17 +40277,17 @@ var KeywordBundlesDisplay = ({ value }) => {
|
|
|
39932
40277
|
groups[p].push(...keywords);
|
|
39933
40278
|
});
|
|
39934
40279
|
const sortedPriorities = Object.keys(groups).map((n) => parseInt(n)).sort((a, b) => a - b);
|
|
39935
|
-
return /* @__PURE__ */ (0,
|
|
40280
|
+
return /* @__PURE__ */ (0, import_jsx_runtime149.jsx)("div", { className: "space-y-4 pt-2", children: sortedPriorities.map((priority) => {
|
|
39936
40281
|
const deduped = Array.from(new Set(groups[priority]));
|
|
39937
|
-
return /* @__PURE__ */ (0,
|
|
39938
|
-
/* @__PURE__ */ (0,
|
|
39939
|
-
/* @__PURE__ */ (0,
|
|
40282
|
+
return /* @__PURE__ */ (0, import_jsx_runtime149.jsxs)("div", { className: "space-y-3", children: [
|
|
40283
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
40284
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsxs)("div", { className: "inline-block px-3 py-1 bg-purple200 hover:bg-purple200 text-purpleText text-sm font-medium rounded-md uppercase", children: [
|
|
39940
40285
|
"Priority ",
|
|
39941
40286
|
priority
|
|
39942
40287
|
] }),
|
|
39943
|
-
/* @__PURE__ */ (0,
|
|
40288
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)("div", { className: "h-px flex-1 bg-white/10" })
|
|
39944
40289
|
] }),
|
|
39945
|
-
/* @__PURE__ */ (0,
|
|
40290
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)("div", { className: "flex flex-wrap gap-2 pt-1", children: deduped.map((keyword) => /* @__PURE__ */ (0, import_jsx_runtime149.jsx)(
|
|
39946
40291
|
"div",
|
|
39947
40292
|
{
|
|
39948
40293
|
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",
|
|
@@ -39958,7 +40303,7 @@ var PlatformSelectEdit = ({
|
|
|
39958
40303
|
value,
|
|
39959
40304
|
onChange
|
|
39960
40305
|
}) => {
|
|
39961
|
-
const selectedPlatforms = (0,
|
|
40306
|
+
const selectedPlatforms = (0, import_react77.useMemo)(() => {
|
|
39962
40307
|
if (Array.isArray(value)) return value;
|
|
39963
40308
|
if (typeof value === "string" && value.trim() !== "") {
|
|
39964
40309
|
return value.split(",").map((s) => s.trim()).filter(Boolean);
|
|
@@ -39977,15 +40322,15 @@ var PlatformSelectEdit = ({
|
|
|
39977
40322
|
onChange([...selectedPlatforms, platform]);
|
|
39978
40323
|
}
|
|
39979
40324
|
};
|
|
39980
|
-
const options = (0,
|
|
40325
|
+
const options = (0, import_react77.useMemo)(() => {
|
|
39981
40326
|
return DEFAULT_PLATFORMS;
|
|
39982
40327
|
}, []);
|
|
39983
|
-
return /* @__PURE__ */ (0,
|
|
40328
|
+
return /* @__PURE__ */ (0, import_jsx_runtime149.jsx)("div", { className: "flex flex-wrap gap-4 py-2", children: options.map((platform) => /* @__PURE__ */ (0, import_jsx_runtime149.jsxs)(
|
|
39984
40329
|
"label",
|
|
39985
40330
|
{
|
|
39986
40331
|
className: "flex items-center gap-2 cursor-pointer group",
|
|
39987
40332
|
children: [
|
|
39988
|
-
/* @__PURE__ */ (0,
|
|
40333
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)(
|
|
39989
40334
|
"div",
|
|
39990
40335
|
{
|
|
39991
40336
|
className: cn(
|
|
@@ -39993,17 +40338,17 @@ var PlatformSelectEdit = ({
|
|
|
39993
40338
|
isSelected(platform) ? "bg-purple-600 border-purple-600" : "border-gray-300 group-hover:border-purple-400"
|
|
39994
40339
|
),
|
|
39995
40340
|
onClick: () => togglePlatform(platform),
|
|
39996
|
-
children: isSelected(platform) && /* @__PURE__ */ (0,
|
|
40341
|
+
children: isSelected(platform) && /* @__PURE__ */ (0, import_jsx_runtime149.jsx)(Check, { className: "h-3.5 w-3.5 text-white stroke-[3]" })
|
|
39997
40342
|
}
|
|
39998
40343
|
),
|
|
39999
|
-
/* @__PURE__ */ (0,
|
|
40344
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)("span", { className: "text-sm font-medium text-foreground select-none", children: platform })
|
|
40000
40345
|
]
|
|
40001
40346
|
},
|
|
40002
40347
|
platform
|
|
40003
40348
|
)) });
|
|
40004
40349
|
};
|
|
40005
40350
|
var PlatformSelectDisplay = ({ value }) => {
|
|
40006
|
-
const displayValues = (0,
|
|
40351
|
+
const displayValues = (0, import_react77.useMemo)(() => {
|
|
40007
40352
|
if (Array.isArray(value)) return value;
|
|
40008
40353
|
if (typeof value === "string" && value.trim() !== "") {
|
|
40009
40354
|
return value.split(",").map((s) => s.trim()).filter(Boolean);
|
|
@@ -40011,9 +40356,9 @@ var PlatformSelectDisplay = ({ value }) => {
|
|
|
40011
40356
|
return [];
|
|
40012
40357
|
}, [value]);
|
|
40013
40358
|
if (displayValues.length === 0) {
|
|
40014
|
-
return /* @__PURE__ */ (0,
|
|
40359
|
+
return /* @__PURE__ */ (0, import_jsx_runtime149.jsx)("span", { className: "text-muted-foreground italic text-sm", children: "Not specified" });
|
|
40015
40360
|
}
|
|
40016
|
-
return /* @__PURE__ */ (0,
|
|
40361
|
+
return /* @__PURE__ */ (0, import_jsx_runtime149.jsx)("div", { className: "flex flex-wrap gap-2 pt-1", children: displayValues.map((platform) => /* @__PURE__ */ (0, import_jsx_runtime149.jsx)(
|
|
40017
40362
|
"div",
|
|
40018
40363
|
{
|
|
40019
40364
|
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",
|
|
@@ -40024,21 +40369,21 @@ var PlatformSelectDisplay = ({ value }) => {
|
|
|
40024
40369
|
};
|
|
40025
40370
|
|
|
40026
40371
|
// src/molecules/creator-discovery/CampaignSeedCard/CampaignSeedCard.tsx
|
|
40027
|
-
var
|
|
40372
|
+
var import_jsx_runtime150 = require("react/jsx-runtime");
|
|
40028
40373
|
var ObjectDisplay = ({ value }) => {
|
|
40029
40374
|
if (!value || typeof value !== "object") return null;
|
|
40030
|
-
return /* @__PURE__ */ (0,
|
|
40031
|
-
/* @__PURE__ */ (0,
|
|
40375
|
+
return /* @__PURE__ */ (0, import_jsx_runtime150.jsx)("div", { className: "space-y-1 pt-1", children: Object.entries(value).map(([k, v]) => /* @__PURE__ */ (0, import_jsx_runtime150.jsxs)("div", { className: "flex gap-2 text-sm", children: [
|
|
40376
|
+
/* @__PURE__ */ (0, import_jsx_runtime150.jsxs)("span", { className: "text-muted-foreground capitalize min-w-[120px]", children: [
|
|
40032
40377
|
k.replace(/_/g, " "),
|
|
40033
40378
|
":"
|
|
40034
40379
|
] }),
|
|
40035
|
-
/* @__PURE__ */ (0,
|
|
40380
|
+
/* @__PURE__ */ (0, import_jsx_runtime150.jsx)("span", { className: "text-foreground font-medium", children: Array.isArray(v) ? v.join(", ") : String(v) })
|
|
40036
40381
|
] }, k)) });
|
|
40037
40382
|
};
|
|
40038
40383
|
var StringArrayDisplay = ({ value }) => {
|
|
40039
40384
|
if (!Array.isArray(value) || value.length === 0)
|
|
40040
|
-
return /* @__PURE__ */ (0,
|
|
40041
|
-
return /* @__PURE__ */ (0,
|
|
40385
|
+
return /* @__PURE__ */ (0, import_jsx_runtime150.jsx)("span", { className: "text-muted-foreground italic text-sm", children: "Not specified" });
|
|
40386
|
+
return /* @__PURE__ */ (0, import_jsx_runtime150.jsx)("div", { className: "flex flex-wrap gap-2 pt-1", children: value.map((item) => /* @__PURE__ */ (0, import_jsx_runtime150.jsx)(
|
|
40042
40387
|
"div",
|
|
40043
40388
|
{
|
|
40044
40389
|
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",
|
|
@@ -40056,8 +40401,8 @@ function buildCampaignSeedFields(data) {
|
|
|
40056
40401
|
key,
|
|
40057
40402
|
label: "Keyword Bundles",
|
|
40058
40403
|
type: "custom",
|
|
40059
|
-
renderDisplay: (v) => /* @__PURE__ */ (0,
|
|
40060
|
-
renderEdit: (v, onChange) => /* @__PURE__ */ (0,
|
|
40404
|
+
renderDisplay: (v) => /* @__PURE__ */ (0, import_jsx_runtime150.jsx)(KeywordBundlesDisplay, { value: v }),
|
|
40405
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ (0, import_jsx_runtime150.jsx)(
|
|
40061
40406
|
Textarea,
|
|
40062
40407
|
{
|
|
40063
40408
|
value: Array.isArray(v) ? v.map((b) => `${(b.keywords || []).join(", ")} (Priority: ${b.priority || 1})`).join("\n") : String(v || ""),
|
|
@@ -40089,8 +40434,8 @@ function buildCampaignSeedFields(data) {
|
|
|
40089
40434
|
key,
|
|
40090
40435
|
label: "Geography",
|
|
40091
40436
|
type: "custom",
|
|
40092
|
-
renderDisplay: (v) => /* @__PURE__ */ (0,
|
|
40093
|
-
renderEdit: (v, onChange) => /* @__PURE__ */ (0,
|
|
40437
|
+
renderDisplay: (v) => /* @__PURE__ */ (0, import_jsx_runtime150.jsx)(CountrySelectDisplay, { value: v }),
|
|
40438
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ (0, import_jsx_runtime150.jsx)(CountrySelectEdit, { value: v, onChange })
|
|
40094
40439
|
};
|
|
40095
40440
|
}
|
|
40096
40441
|
if (key === "platforms" || key === "target_platforms" || key === "targetPlatforms") {
|
|
@@ -40098,8 +40443,8 @@ function buildCampaignSeedFields(data) {
|
|
|
40098
40443
|
key,
|
|
40099
40444
|
label: "Platforms",
|
|
40100
40445
|
type: "custom",
|
|
40101
|
-
renderDisplay: (v) => /* @__PURE__ */ (0,
|
|
40102
|
-
renderEdit: (v, onChange) => /* @__PURE__ */ (0,
|
|
40446
|
+
renderDisplay: (v) => /* @__PURE__ */ (0, import_jsx_runtime150.jsx)(PlatformSelectDisplay, { value: v }),
|
|
40447
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ (0, import_jsx_runtime150.jsx)(
|
|
40103
40448
|
PlatformSelectEdit,
|
|
40104
40449
|
{
|
|
40105
40450
|
value: v,
|
|
@@ -40114,7 +40459,7 @@ function buildCampaignSeedFields(data) {
|
|
|
40114
40459
|
key,
|
|
40115
40460
|
label,
|
|
40116
40461
|
type: "custom",
|
|
40117
|
-
renderDisplay: (v) => /* @__PURE__ */ (0,
|
|
40462
|
+
renderDisplay: (v) => /* @__PURE__ */ (0, import_jsx_runtime150.jsx)(StringArrayDisplay, { value: v })
|
|
40118
40463
|
};
|
|
40119
40464
|
}
|
|
40120
40465
|
if (typeof value === "object" && value !== null && !Array.isArray(value) && "min" in value && "max" in value) {
|
|
@@ -40125,9 +40470,9 @@ function buildCampaignSeedFields(data) {
|
|
|
40125
40470
|
type: "custom",
|
|
40126
40471
|
renderDisplay: (v) => {
|
|
40127
40472
|
if (typeof v === "object" && v !== null) {
|
|
40128
|
-
return /* @__PURE__ */ (0,
|
|
40473
|
+
return /* @__PURE__ */ (0, import_jsx_runtime150.jsx)("span", { className: "text-foreground font-medium", children: `${v.min?.toLocaleString()} - ${v.max?.toLocaleString()}` });
|
|
40129
40474
|
}
|
|
40130
|
-
return /* @__PURE__ */ (0,
|
|
40475
|
+
return /* @__PURE__ */ (0, import_jsx_runtime150.jsx)("span", { className: "text-foreground font-medium", children: v });
|
|
40131
40476
|
}
|
|
40132
40477
|
};
|
|
40133
40478
|
}
|
|
@@ -40137,8 +40482,8 @@ function buildCampaignSeedFields(data) {
|
|
|
40137
40482
|
key,
|
|
40138
40483
|
label,
|
|
40139
40484
|
type: "custom",
|
|
40140
|
-
renderDisplay: (v) => /* @__PURE__ */ (0,
|
|
40141
|
-
renderEdit: (v, onChange) => /* @__PURE__ */ (0,
|
|
40485
|
+
renderDisplay: (v) => /* @__PURE__ */ (0, import_jsx_runtime150.jsx)(ObjectDisplay, { value: v }),
|
|
40486
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ (0, import_jsx_runtime150.jsx)(
|
|
40142
40487
|
Textarea,
|
|
40143
40488
|
{
|
|
40144
40489
|
value: Object.entries(v || {}).map(([k, val]) => `${k.replace(/_/g, " ")}: ${val}`).join("\n"),
|
|
@@ -40163,7 +40508,7 @@ function buildCampaignSeedFields(data) {
|
|
|
40163
40508
|
return generated;
|
|
40164
40509
|
});
|
|
40165
40510
|
}
|
|
40166
|
-
var CampaignSeedCard =
|
|
40511
|
+
var CampaignSeedCard = import_react78.default.memo(
|
|
40167
40512
|
({
|
|
40168
40513
|
selectionStatus,
|
|
40169
40514
|
isLatestMessage = true,
|
|
@@ -40175,7 +40520,7 @@ var CampaignSeedCard = import_react77.default.memo(
|
|
|
40175
40520
|
sendMessage,
|
|
40176
40521
|
...formCardProps
|
|
40177
40522
|
}) => {
|
|
40178
|
-
const fields = (0,
|
|
40523
|
+
const fields = (0, import_react78.useMemo)(() => {
|
|
40179
40524
|
return providedFields || buildCampaignSeedFields(data);
|
|
40180
40525
|
}, [providedFields, data]);
|
|
40181
40526
|
const handleProceed = () => {
|
|
@@ -40186,7 +40531,7 @@ var CampaignSeedCard = import_react77.default.memo(
|
|
|
40186
40531
|
});
|
|
40187
40532
|
};
|
|
40188
40533
|
const effectiveIsLatest = isLatestMessage && !hasUserResponded;
|
|
40189
|
-
return /* @__PURE__ */ (0,
|
|
40534
|
+
return /* @__PURE__ */ (0, import_jsx_runtime150.jsx)("div", { className: "flex flex-col gap-2", children: /* @__PURE__ */ (0, import_jsx_runtime150.jsx)(
|
|
40190
40535
|
FormCard,
|
|
40191
40536
|
{
|
|
40192
40537
|
...formCardProps,
|
|
@@ -40198,9 +40543,9 @@ var CampaignSeedCard = import_react77.default.memo(
|
|
|
40198
40543
|
showTimeline: true,
|
|
40199
40544
|
isLatestMessage: effectiveIsLatest,
|
|
40200
40545
|
className,
|
|
40201
|
-
footer: !effectiveIsLatest && selectionStatus ? /* @__PURE__ */ (0,
|
|
40202
|
-
/* @__PURE__ */ (0,
|
|
40203
|
-
/* @__PURE__ */ (0,
|
|
40546
|
+
footer: !effectiveIsLatest && selectionStatus ? /* @__PURE__ */ (0, import_jsx_runtime150.jsxs)("div", { className: "flex justify-end items-center gap-1 text-green-600 text-[10px] font-semibold py-2 pr-4", children: [
|
|
40547
|
+
/* @__PURE__ */ (0, import_jsx_runtime150.jsx)(CircleCheck, { className: "h-3 w-3" }),
|
|
40548
|
+
/* @__PURE__ */ (0, import_jsx_runtime150.jsx)("span", { children: selectionStatus === "agent" ? "Suggested by Agent" : "Selected by you" })
|
|
40204
40549
|
] }) : formCardProps.footer
|
|
40205
40550
|
}
|
|
40206
40551
|
) });
|
|
@@ -40209,22 +40554,22 @@ var CampaignSeedCard = import_react77.default.memo(
|
|
|
40209
40554
|
CampaignSeedCard.displayName = "CampaignSeedCard";
|
|
40210
40555
|
|
|
40211
40556
|
// src/molecules/creator-discovery/SearchSpecCard/SearchSpecCard.tsx
|
|
40212
|
-
var
|
|
40213
|
-
var
|
|
40557
|
+
var import_react79 = __toESM(require("react"), 1);
|
|
40558
|
+
var import_jsx_runtime151 = require("react/jsx-runtime");
|
|
40214
40559
|
var ObjectDisplay2 = ({ value }) => {
|
|
40215
40560
|
if (!value || typeof value !== "object") return null;
|
|
40216
|
-
return /* @__PURE__ */ (0,
|
|
40217
|
-
/* @__PURE__ */ (0,
|
|
40561
|
+
return /* @__PURE__ */ (0, import_jsx_runtime151.jsx)("div", { className: "space-y-1 pt-1", children: Object.entries(value).map(([k, v]) => /* @__PURE__ */ (0, import_jsx_runtime151.jsxs)("div", { className: "flex gap-2 text-sm", children: [
|
|
40562
|
+
/* @__PURE__ */ (0, import_jsx_runtime151.jsxs)("span", { className: "text-muted-foreground capitalize min-w-[120px]", children: [
|
|
40218
40563
|
k.replace(/_/g, " "),
|
|
40219
40564
|
":"
|
|
40220
40565
|
] }),
|
|
40221
|
-
/* @__PURE__ */ (0,
|
|
40566
|
+
/* @__PURE__ */ (0, import_jsx_runtime151.jsx)("span", { className: "text-foreground font-medium", children: Array.isArray(v) ? v.join(", ") : String(v) })
|
|
40222
40567
|
] }, k)) });
|
|
40223
40568
|
};
|
|
40224
40569
|
var StringArrayDisplay2 = ({ value }) => {
|
|
40225
40570
|
if (!Array.isArray(value) || value.length === 0)
|
|
40226
|
-
return /* @__PURE__ */ (0,
|
|
40227
|
-
return /* @__PURE__ */ (0,
|
|
40571
|
+
return /* @__PURE__ */ (0, import_jsx_runtime151.jsx)("span", { className: "text-muted-foreground italic text-sm", children: "Not specified" });
|
|
40572
|
+
return /* @__PURE__ */ (0, import_jsx_runtime151.jsx)("div", { className: "flex flex-wrap gap-2 pt-1", children: value.map((item) => /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(
|
|
40228
40573
|
"div",
|
|
40229
40574
|
{
|
|
40230
40575
|
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",
|
|
@@ -40242,8 +40587,8 @@ function buildSearchSpecFields(data) {
|
|
|
40242
40587
|
key,
|
|
40243
40588
|
label: "Keyword Bundles",
|
|
40244
40589
|
type: "custom",
|
|
40245
|
-
renderDisplay: (v) => /* @__PURE__ */ (0,
|
|
40246
|
-
renderEdit: (v, onChange) => /* @__PURE__ */ (0,
|
|
40590
|
+
renderDisplay: (v) => /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(KeywordBundlesDisplay, { value: v }),
|
|
40591
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(KeywordBundlesEdit, { value: v, onChange })
|
|
40247
40592
|
};
|
|
40248
40593
|
}
|
|
40249
40594
|
if (key === "geography") {
|
|
@@ -40251,8 +40596,8 @@ function buildSearchSpecFields(data) {
|
|
|
40251
40596
|
key,
|
|
40252
40597
|
label: "Geography",
|
|
40253
40598
|
type: "custom",
|
|
40254
|
-
renderDisplay: (v) => /* @__PURE__ */ (0,
|
|
40255
|
-
renderEdit: (v, onChange) => /* @__PURE__ */ (0,
|
|
40599
|
+
renderDisplay: (v) => /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(CountrySelectDisplay, { value: v }),
|
|
40600
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(CountrySelectEdit, { value: v, onChange })
|
|
40256
40601
|
};
|
|
40257
40602
|
}
|
|
40258
40603
|
if (key === "platforms" && Array.isArray(value)) {
|
|
@@ -40263,8 +40608,8 @@ function buildSearchSpecFields(data) {
|
|
|
40263
40608
|
config: {
|
|
40264
40609
|
options: data.platform_options || data.available_platforms || data.platforms_list || []
|
|
40265
40610
|
},
|
|
40266
|
-
renderDisplay: (v) => /* @__PURE__ */ (0,
|
|
40267
|
-
renderEdit: (v, onChange) => /* @__PURE__ */ (0,
|
|
40611
|
+
renderDisplay: (v) => /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(PlatformSelectDisplay, { value: v }),
|
|
40612
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(
|
|
40268
40613
|
PlatformSelectEdit,
|
|
40269
40614
|
{
|
|
40270
40615
|
value: v,
|
|
@@ -40278,8 +40623,8 @@ function buildSearchSpecFields(data) {
|
|
|
40278
40623
|
key,
|
|
40279
40624
|
label: "Exclude Keywords",
|
|
40280
40625
|
type: "custom",
|
|
40281
|
-
renderDisplay: (v) => /* @__PURE__ */ (0,
|
|
40282
|
-
renderEdit: (v, onChange) => /* @__PURE__ */ (0,
|
|
40626
|
+
renderDisplay: (v) => /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(StringArrayDisplay2, { value: v }),
|
|
40627
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(
|
|
40283
40628
|
Textarea,
|
|
40284
40629
|
{
|
|
40285
40630
|
value: Array.isArray(v) ? v.join(", ") : String(v || ""),
|
|
@@ -40299,8 +40644,8 @@ function buildSearchSpecFields(data) {
|
|
|
40299
40644
|
key,
|
|
40300
40645
|
label,
|
|
40301
40646
|
type: "custom",
|
|
40302
|
-
renderDisplay: (v) => /* @__PURE__ */ (0,
|
|
40303
|
-
renderEdit: (v, onChange) => /* @__PURE__ */ (0,
|
|
40647
|
+
renderDisplay: (v) => /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(ObjectDisplay2, { value: v }),
|
|
40648
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(
|
|
40304
40649
|
Textarea,
|
|
40305
40650
|
{
|
|
40306
40651
|
value: Object.entries(v || {}).map(([k, val]) => `${k.replace(/_/g, " ")}: ${val}`).join("\n"),
|
|
@@ -40325,7 +40670,7 @@ function buildSearchSpecFields(data) {
|
|
|
40325
40670
|
return generated;
|
|
40326
40671
|
});
|
|
40327
40672
|
}
|
|
40328
|
-
var SearchSpecCard =
|
|
40673
|
+
var SearchSpecCard = import_react79.default.memo(
|
|
40329
40674
|
({
|
|
40330
40675
|
selectionStatus,
|
|
40331
40676
|
isLatestMessage = true,
|
|
@@ -40339,7 +40684,7 @@ var SearchSpecCard = import_react78.default.memo(
|
|
|
40339
40684
|
...formCardProps
|
|
40340
40685
|
}) => {
|
|
40341
40686
|
const resolvedData = data || specData;
|
|
40342
|
-
const fields = (0,
|
|
40687
|
+
const fields = (0, import_react79.useMemo)(() => {
|
|
40343
40688
|
return providedFields || buildSearchSpecFields(resolvedData ?? {});
|
|
40344
40689
|
}, [providedFields, resolvedData]);
|
|
40345
40690
|
const handleProceed = () => {
|
|
@@ -40353,7 +40698,7 @@ var SearchSpecCard = import_react78.default.memo(
|
|
|
40353
40698
|
});
|
|
40354
40699
|
};
|
|
40355
40700
|
const effectiveIsLatest = isLatestMessage && !hasUserResponded;
|
|
40356
|
-
return /* @__PURE__ */ (0,
|
|
40701
|
+
return /* @__PURE__ */ (0, import_jsx_runtime151.jsx)("div", { className: "flex flex-col gap-2", children: /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(
|
|
40357
40702
|
FormCard,
|
|
40358
40703
|
{
|
|
40359
40704
|
...formCardProps,
|
|
@@ -40364,9 +40709,9 @@ var SearchSpecCard = import_react78.default.memo(
|
|
|
40364
40709
|
onProceed: handleProceed,
|
|
40365
40710
|
isLatestMessage: effectiveIsLatest,
|
|
40366
40711
|
className,
|
|
40367
|
-
footer: !effectiveIsLatest && selectionStatus ? /* @__PURE__ */ (0,
|
|
40368
|
-
/* @__PURE__ */ (0,
|
|
40369
|
-
/* @__PURE__ */ (0,
|
|
40712
|
+
footer: !effectiveIsLatest && selectionStatus ? /* @__PURE__ */ (0, import_jsx_runtime151.jsxs)("div", { className: "flex justify-end items-center gap-1 text-green-600 text-[10px] font-semibold py-1", children: [
|
|
40713
|
+
/* @__PURE__ */ (0, import_jsx_runtime151.jsx)(CircleCheck, { className: "h-3 w-3" }),
|
|
40714
|
+
/* @__PURE__ */ (0, import_jsx_runtime151.jsx)("span", { children: selectionStatus === "agent" ? "Selected by Agent" : "Selected by User" })
|
|
40370
40715
|
] }) : formCardProps.footer
|
|
40371
40716
|
}
|
|
40372
40717
|
) });
|
|
@@ -40375,7 +40720,7 @@ var SearchSpecCard = import_react78.default.memo(
|
|
|
40375
40720
|
SearchSpecCard.displayName = "SearchSpecCard";
|
|
40376
40721
|
|
|
40377
40722
|
// src/molecules/creator-discovery/MCQCard/MCQCard.tsx
|
|
40378
|
-
var
|
|
40723
|
+
var import_react80 = __toESM(require("react"), 1);
|
|
40379
40724
|
|
|
40380
40725
|
// src/molecules/creator-discovery/MCQCard/defaultFetchers.ts
|
|
40381
40726
|
function getBackendOrigin() {
|
|
@@ -40475,8 +40820,8 @@ async function defaultPersistSelection(sessionId, questionKey, value) {
|
|
|
40475
40820
|
}
|
|
40476
40821
|
|
|
40477
40822
|
// src/molecules/creator-discovery/MCQCard/MCQCard.tsx
|
|
40478
|
-
var
|
|
40479
|
-
var MCQCard =
|
|
40823
|
+
var import_jsx_runtime152 = require("react/jsx-runtime");
|
|
40824
|
+
var MCQCard = import_react80.default.memo(
|
|
40480
40825
|
({
|
|
40481
40826
|
question,
|
|
40482
40827
|
options,
|
|
@@ -40501,16 +40846,16 @@ var MCQCard = import_react79.default.memo(
|
|
|
40501
40846
|
const resolvedOptions = options || allProps.Options || allProps.opts || {};
|
|
40502
40847
|
const resolvedRecommended = recommended || allProps.Recommended || allProps.rec;
|
|
40503
40848
|
console.log("[MCQCard] FULL PROPS:", { allProps, resolvedQuestion, resolvedOptions: Object.keys(resolvedOptions || {}), resolvedRecommended });
|
|
40504
|
-
const [selectedOption, setSelectedOption] =
|
|
40505
|
-
const [isProceeded, setIsProceeded] =
|
|
40506
|
-
const fetchedSessionRef =
|
|
40507
|
-
|
|
40849
|
+
const [selectedOption, setSelectedOption] = import_react80.default.useState(propsSelectedOption);
|
|
40850
|
+
const [isProceeded, setIsProceeded] = import_react80.default.useState(false);
|
|
40851
|
+
const fetchedSessionRef = import_react80.default.useRef("");
|
|
40852
|
+
import_react80.default.useEffect(() => {
|
|
40508
40853
|
if (propsSelectedOption) {
|
|
40509
40854
|
setSelectedOption(propsSelectedOption);
|
|
40510
40855
|
setIsProceeded(true);
|
|
40511
40856
|
}
|
|
40512
40857
|
}, [propsSelectedOption]);
|
|
40513
|
-
const buildQuestionKey =
|
|
40858
|
+
const buildQuestionKey = import_react80.default.useCallback((sid, question2) => {
|
|
40514
40859
|
let hash = 2166136261;
|
|
40515
40860
|
for (let i = 0; i < question2.length; i++) {
|
|
40516
40861
|
hash ^= question2.charCodeAt(i);
|
|
@@ -40518,7 +40863,7 @@ var MCQCard = import_react79.default.memo(
|
|
|
40518
40863
|
}
|
|
40519
40864
|
return `mcq_${sid}_${hash.toString(36)}`;
|
|
40520
40865
|
}, []);
|
|
40521
|
-
|
|
40866
|
+
import_react80.default.useEffect(() => {
|
|
40522
40867
|
if (!sessionId || !resolvedQuestion) return;
|
|
40523
40868
|
const fetchKey = `${sessionId}::${resolvedQuestion}`;
|
|
40524
40869
|
if (fetchedSessionRef.current === fetchKey) return;
|
|
@@ -40581,7 +40926,7 @@ A: ${label}`);
|
|
|
40581
40926
|
key,
|
|
40582
40927
|
typeof val === "string" ? val : typeof val === "object" && val !== null ? val.label || val.description || val.id || JSON.stringify(val) : String(val ?? "")
|
|
40583
40928
|
]) : [];
|
|
40584
|
-
return /* @__PURE__ */ (0,
|
|
40929
|
+
return /* @__PURE__ */ (0, import_jsx_runtime152.jsxs)(
|
|
40585
40930
|
"div",
|
|
40586
40931
|
{
|
|
40587
40932
|
className: cn(
|
|
@@ -40589,11 +40934,11 @@ A: ${label}`);
|
|
|
40589
40934
|
className
|
|
40590
40935
|
),
|
|
40591
40936
|
children: [
|
|
40592
|
-
/* @__PURE__ */ (0,
|
|
40593
|
-
/* @__PURE__ */ (0,
|
|
40937
|
+
/* @__PURE__ */ (0, import_jsx_runtime152.jsx)("div", { className: "mb-4", children: /* @__PURE__ */ (0, import_jsx_runtime152.jsx)("p", { className: "text-sm text-cardText", children: resolvedQuestion || "Select an option:" }) }),
|
|
40938
|
+
/* @__PURE__ */ (0, import_jsx_runtime152.jsx)("div", { className: "space-y-2.5 mb-4", children: optionsEntries.map(([key, label]) => {
|
|
40594
40939
|
const isSelected = selectedOption === key;
|
|
40595
40940
|
const isRecommended = key === recommended;
|
|
40596
|
-
return /* @__PURE__ */ (0,
|
|
40941
|
+
return /* @__PURE__ */ (0, import_jsx_runtime152.jsx)(
|
|
40597
40942
|
"div",
|
|
40598
40943
|
{
|
|
40599
40944
|
onClick: (e) => handleOptionClick(key, e),
|
|
@@ -40604,8 +40949,8 @@ A: ${label}`);
|
|
|
40604
40949
|
!selectedOption && !isOptionsDisabled && "hover:border-gray500",
|
|
40605
40950
|
(isLoading || isOptionsDisabled) && "opacity-50 cursor-not-allowed"
|
|
40606
40951
|
),
|
|
40607
|
-
children: /* @__PURE__ */ (0,
|
|
40608
|
-
/* @__PURE__ */ (0,
|
|
40952
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime152.jsxs)("div", { className: "flex items-start gap-3", children: [
|
|
40953
|
+
/* @__PURE__ */ (0, import_jsx_runtime152.jsx)("div", { className: "mt-0.5 flex-shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime152.jsx)(
|
|
40609
40954
|
"div",
|
|
40610
40955
|
{
|
|
40611
40956
|
className: cn(
|
|
@@ -40615,19 +40960,19 @@ A: ${label}`);
|
|
|
40615
40960
|
!selectedOption && !isOptionsDisabled && "hover:border-gold"
|
|
40616
40961
|
)
|
|
40617
40962
|
),
|
|
40618
|
-
children: isSelected && /* @__PURE__ */ (0,
|
|
40963
|
+
children: isSelected && /* @__PURE__ */ (0, import_jsx_runtime152.jsx)("div", { className: "w-2 h-2 rounded-full bg-gold" })
|
|
40619
40964
|
}
|
|
40620
40965
|
) }),
|
|
40621
|
-
/* @__PURE__ */ (0,
|
|
40622
|
-
isRecommended && /* @__PURE__ */ (0,
|
|
40623
|
-
/* @__PURE__ */ (0,
|
|
40966
|
+
/* @__PURE__ */ (0, import_jsx_runtime152.jsxs)("div", { className: "flex-1 min-w-0", children: [
|
|
40967
|
+
isRecommended && /* @__PURE__ */ (0, import_jsx_runtime152.jsx)("p", { className: "text-xs font-semibold text-gold mb-1", children: "Recommended" }),
|
|
40968
|
+
/* @__PURE__ */ (0, import_jsx_runtime152.jsx)("p", { className: "text-sm text-cardText", children: label })
|
|
40624
40969
|
] })
|
|
40625
40970
|
] })
|
|
40626
40971
|
},
|
|
40627
40972
|
key
|
|
40628
40973
|
);
|
|
40629
40974
|
}) }),
|
|
40630
|
-
/* @__PURE__ */ (0,
|
|
40975
|
+
/* @__PURE__ */ (0, import_jsx_runtime152.jsx)("div", { className: "flex justify-end", children: /* @__PURE__ */ (0, import_jsx_runtime152.jsx)(
|
|
40631
40976
|
"button",
|
|
40632
40977
|
{
|
|
40633
40978
|
onClick: handleProceed,
|
|
@@ -40648,8 +40993,8 @@ A: ${label}`);
|
|
|
40648
40993
|
MCQCard.displayName = "MCQCard";
|
|
40649
40994
|
|
|
40650
40995
|
// src/molecules/creator-discovery/PlatformIconGroup/PlatformIconGroup.tsx
|
|
40651
|
-
var
|
|
40652
|
-
var TikTokIcon = ({ className }) => /* @__PURE__ */ (0,
|
|
40996
|
+
var import_jsx_runtime153 = require("react/jsx-runtime");
|
|
40997
|
+
var TikTokIcon = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime153.jsx)(Video, { className });
|
|
40653
40998
|
var PlatformIconGroup = ({
|
|
40654
40999
|
platforms,
|
|
40655
41000
|
className
|
|
@@ -40682,10 +41027,10 @@ var PlatformIconGroup = ({
|
|
|
40682
41027
|
return "text-gray-500 bg-gray-50 border-gray-100";
|
|
40683
41028
|
}
|
|
40684
41029
|
};
|
|
40685
|
-
return /* @__PURE__ */ (0,
|
|
41030
|
+
return /* @__PURE__ */ (0, import_jsx_runtime153.jsx)("div", { className: cn("flex gap-2", className), children: platforms.map((p, i) => {
|
|
40686
41031
|
const Icon3 = getIcon(p.platform);
|
|
40687
41032
|
if (!Icon3) return null;
|
|
40688
|
-
return /* @__PURE__ */ (0,
|
|
41033
|
+
return /* @__PURE__ */ (0, import_jsx_runtime153.jsx)(
|
|
40689
41034
|
"a",
|
|
40690
41035
|
{
|
|
40691
41036
|
href: p.url || "#",
|
|
@@ -40696,7 +41041,7 @@ var PlatformIconGroup = ({
|
|
|
40696
41041
|
"p-1.5 rounded-lg border transition-colors flex items-center justify-center",
|
|
40697
41042
|
getColors(p.platform)
|
|
40698
41043
|
),
|
|
40699
|
-
children: /* @__PURE__ */ (0,
|
|
41044
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime153.jsx)(Icon3, { className: "w-4 h-4" })
|
|
40700
41045
|
},
|
|
40701
41046
|
i
|
|
40702
41047
|
);
|
|
@@ -40704,7 +41049,7 @@ var PlatformIconGroup = ({
|
|
|
40704
41049
|
};
|
|
40705
41050
|
|
|
40706
41051
|
// src/molecules/creator-discovery/CreatorProfileSummary/CreatorProfileSummary.tsx
|
|
40707
|
-
var
|
|
41052
|
+
var import_jsx_runtime154 = require("react/jsx-runtime");
|
|
40708
41053
|
var CreatorProfileSummary = ({
|
|
40709
41054
|
avatarSrc,
|
|
40710
41055
|
name,
|
|
@@ -40712,7 +41057,7 @@ var CreatorProfileSummary = ({
|
|
|
40712
41057
|
engagementRate,
|
|
40713
41058
|
className
|
|
40714
41059
|
}) => {
|
|
40715
|
-
return /* @__PURE__ */ (0,
|
|
41060
|
+
return /* @__PURE__ */ (0, import_jsx_runtime154.jsxs)(
|
|
40716
41061
|
"div",
|
|
40717
41062
|
{
|
|
40718
41063
|
className: cn(
|
|
@@ -40720,7 +41065,7 @@ var CreatorProfileSummary = ({
|
|
|
40720
41065
|
className
|
|
40721
41066
|
),
|
|
40722
41067
|
children: [
|
|
40723
|
-
/* @__PURE__ */ (0,
|
|
41068
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)(
|
|
40724
41069
|
AvatarAtom,
|
|
40725
41070
|
{
|
|
40726
41071
|
id: `avatar-${name}`,
|
|
@@ -40730,8 +41075,8 @@ var CreatorProfileSummary = ({
|
|
|
40730
41075
|
className: "w-12 h-12 ring-2 ring-purple-100"
|
|
40731
41076
|
}
|
|
40732
41077
|
),
|
|
40733
|
-
/* @__PURE__ */ (0,
|
|
40734
|
-
/* @__PURE__ */ (0,
|
|
41078
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsxs)("div", { className: "flex flex-col flex-1", children: [
|
|
41079
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)(
|
|
40735
41080
|
TextAtom,
|
|
40736
41081
|
{
|
|
40737
41082
|
id: `name-${name}`,
|
|
@@ -40741,14 +41086,14 @@ var CreatorProfileSummary = ({
|
|
|
40741
41086
|
className: "text-gray-900 leading-tight"
|
|
40742
41087
|
}
|
|
40743
41088
|
),
|
|
40744
|
-
/* @__PURE__ */ (0,
|
|
40745
|
-
followerCount && /* @__PURE__ */ (0,
|
|
40746
|
-
/* @__PURE__ */ (0,
|
|
40747
|
-
/* @__PURE__ */ (0,
|
|
41089
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsxs)("div", { className: "flex gap-3 mt-1", children: [
|
|
41090
|
+
followerCount && /* @__PURE__ */ (0, import_jsx_runtime154.jsxs)("div", { className: "flex flex-col", children: [
|
|
41091
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)("span", { className: "text-[10px] uppercase tracking-wider text-muted-foreground font-bold", children: "Followers" }),
|
|
41092
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)("span", { className: "text-xs font-semibold text-purple-700", children: followerCount })
|
|
40748
41093
|
] }),
|
|
40749
|
-
engagementRate && /* @__PURE__ */ (0,
|
|
40750
|
-
/* @__PURE__ */ (0,
|
|
40751
|
-
/* @__PURE__ */ (0,
|
|
41094
|
+
engagementRate && /* @__PURE__ */ (0, import_jsx_runtime154.jsxs)("div", { className: "flex flex-col border-l border-purple-100 pl-3", children: [
|
|
41095
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)("span", { className: "text-[10px] uppercase tracking-wider text-muted-foreground font-bold", children: "Engagement" }),
|
|
41096
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)("span", { className: "text-xs font-semibold text-indigo-600", children: engagementRate })
|
|
40752
41097
|
] })
|
|
40753
41098
|
] })
|
|
40754
41099
|
] })
|
|
@@ -40758,13 +41103,13 @@ var CreatorProfileSummary = ({
|
|
|
40758
41103
|
};
|
|
40759
41104
|
|
|
40760
41105
|
// src/molecules/creator-discovery/AudienceMetricCard/AudienceMetricCard.tsx
|
|
40761
|
-
var
|
|
41106
|
+
var import_jsx_runtime155 = require("react/jsx-runtime");
|
|
40762
41107
|
var AudienceMetricCard = ({
|
|
40763
41108
|
title,
|
|
40764
41109
|
metrics,
|
|
40765
41110
|
className
|
|
40766
41111
|
}) => {
|
|
40767
|
-
return /* @__PURE__ */ (0,
|
|
41112
|
+
return /* @__PURE__ */ (0, import_jsx_runtime155.jsxs)(
|
|
40768
41113
|
Card,
|
|
40769
41114
|
{
|
|
40770
41115
|
className: cn(
|
|
@@ -40772,13 +41117,13 @@ var AudienceMetricCard = ({
|
|
|
40772
41117
|
className
|
|
40773
41118
|
),
|
|
40774
41119
|
children: [
|
|
40775
|
-
/* @__PURE__ */ (0,
|
|
40776
|
-
/* @__PURE__ */ (0,
|
|
40777
|
-
/* @__PURE__ */ (0,
|
|
40778
|
-
/* @__PURE__ */ (0,
|
|
40779
|
-
/* @__PURE__ */ (0,
|
|
41120
|
+
/* @__PURE__ */ (0, import_jsx_runtime155.jsx)(CardHeader, { className: "pb-2", children: /* @__PURE__ */ (0, import_jsx_runtime155.jsx)(CardTitle, { className: "text-lg font-bold text-gray-900", children: title }) }),
|
|
41121
|
+
/* @__PURE__ */ (0, import_jsx_runtime155.jsx)(CardContent, { className: "space-y-4", children: metrics.map((metric, i) => /* @__PURE__ */ (0, import_jsx_runtime155.jsxs)("div", { className: "space-y-1.5", children: [
|
|
41122
|
+
/* @__PURE__ */ (0, import_jsx_runtime155.jsxs)("div", { className: "flex justify-between items-center text-sm", children: [
|
|
41123
|
+
/* @__PURE__ */ (0, import_jsx_runtime155.jsx)("span", { className: "font-medium text-gray-700", children: metric.label }),
|
|
41124
|
+
/* @__PURE__ */ (0, import_jsx_runtime155.jsx)("span", { className: "font-bold text-gray-900", children: metric.value })
|
|
40780
41125
|
] }),
|
|
40781
|
-
metric.percentage !== void 0 && /* @__PURE__ */ (0,
|
|
41126
|
+
metric.percentage !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime155.jsx)(
|
|
40782
41127
|
ProgressAtom,
|
|
40783
41128
|
{
|
|
40784
41129
|
id: `progress-${i}`,
|
|
@@ -40795,8 +41140,8 @@ var AudienceMetricCard = ({
|
|
|
40795
41140
|
};
|
|
40796
41141
|
|
|
40797
41142
|
// src/molecules/creator-discovery/CreatorGridCard/CreatorGridCard.tsx
|
|
40798
|
-
var
|
|
40799
|
-
var TikTokIcon2 = ({ className }) => /* @__PURE__ */ (0,
|
|
41143
|
+
var import_jsx_runtime156 = require("react/jsx-runtime");
|
|
41144
|
+
var TikTokIcon2 = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime156.jsx)(Video, { className });
|
|
40800
41145
|
var CreatorGridCard = ({
|
|
40801
41146
|
bannerSrc,
|
|
40802
41147
|
avatarSrc,
|
|
@@ -40824,7 +41169,7 @@ var CreatorGridCard = ({
|
|
|
40824
41169
|
const safePlatforms = Array.isArray(platforms) ? platforms : [];
|
|
40825
41170
|
const safeMetrics = Array.isArray(metrics) ? metrics : [];
|
|
40826
41171
|
const displayName = typeof name === "string" ? name : String(name || "");
|
|
40827
|
-
return /* @__PURE__ */ (0,
|
|
41172
|
+
return /* @__PURE__ */ (0, import_jsx_runtime156.jsxs)(
|
|
40828
41173
|
Card,
|
|
40829
41174
|
{
|
|
40830
41175
|
className: cn(
|
|
@@ -40832,43 +41177,43 @@ var CreatorGridCard = ({
|
|
|
40832
41177
|
className
|
|
40833
41178
|
),
|
|
40834
41179
|
children: [
|
|
40835
|
-
/* @__PURE__ */ (0,
|
|
40836
|
-
bannerSrc ? /* @__PURE__ */ (0,
|
|
41180
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsxs)("div", { className: "relative h-32 w-full overflow-hidden", children: [
|
|
41181
|
+
bannerSrc ? /* @__PURE__ */ (0, import_jsx_runtime156.jsx)(
|
|
40837
41182
|
"img",
|
|
40838
41183
|
{
|
|
40839
41184
|
src: bannerSrc,
|
|
40840
41185
|
alt: displayName,
|
|
40841
41186
|
className: "h-full w-full object-cover transition-transform duration-500 group-hover:scale-110"
|
|
40842
41187
|
}
|
|
40843
|
-
) : /* @__PURE__ */ (0,
|
|
40844
|
-
/* @__PURE__ */ (0,
|
|
41188
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime156.jsx)("div", { className: "h-full w-full bg-gradient-to-br from-purple-500 to-indigo-600" }),
|
|
41189
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsx)("div", { className: "absolute inset-x-0 bottom-0 h-1/2 bg-gradient-to-t from-black/20 to-transparent" })
|
|
40845
41190
|
] }),
|
|
40846
|
-
/* @__PURE__ */ (0,
|
|
40847
|
-
/* @__PURE__ */ (0,
|
|
40848
|
-
/* @__PURE__ */ (0,
|
|
40849
|
-
/* @__PURE__ */ (0,
|
|
41191
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsxs)(CardContent, { className: "relative pt-0 px-5 pb-6", children: [
|
|
41192
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsx)("div", { className: "absolute -top-10 left-5", children: /* @__PURE__ */ (0, import_jsx_runtime156.jsxs)(Avatar, { className: "h-20 w-20 border-4 border-[var(--card-background)] shadow-lg ring-2 ring-purple-100/20", children: [
|
|
41193
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsx)(AvatarImage, { src: avatarSrc, alt: displayName }),
|
|
41194
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsx)(AvatarFallback, { className: "bg-purple-500/10 text-purple-500 font-bold text-xl", children: displayName.charAt(0) || "?" })
|
|
40850
41195
|
] }) }),
|
|
40851
|
-
/* @__PURE__ */ (0,
|
|
40852
|
-
/* @__PURE__ */ (0,
|
|
40853
|
-
/* @__PURE__ */ (0,
|
|
41196
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsxs)("div", { className: "mt-12 flex flex-col gap-1", children: [
|
|
41197
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsx)("h3", { className: "text-xl font-bold text-[var(--foreground)] truncate", children: displayName }),
|
|
41198
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsxs)("p", { className: "text-sm text-[var(--foreground)]/60 font-medium", children: [
|
|
40854
41199
|
"@",
|
|
40855
41200
|
handle
|
|
40856
41201
|
] })
|
|
40857
41202
|
] }),
|
|
40858
|
-
/* @__PURE__ */ (0,
|
|
41203
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsx)("div", { className: "mt-4 flex gap-2", children: safePlatforms.map((p, i) => {
|
|
40859
41204
|
const Icon3 = getIcon(p);
|
|
40860
|
-
return Icon3 ? /* @__PURE__ */ (0,
|
|
41205
|
+
return Icon3 ? /* @__PURE__ */ (0, import_jsx_runtime156.jsx)(
|
|
40861
41206
|
"div",
|
|
40862
41207
|
{
|
|
40863
41208
|
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",
|
|
40864
|
-
children: /* @__PURE__ */ (0,
|
|
41209
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime156.jsx)(Icon3, { className: "h-4 w-4" })
|
|
40865
41210
|
},
|
|
40866
41211
|
typeof p === "string" ? p : i
|
|
40867
41212
|
) : null;
|
|
40868
41213
|
}) }),
|
|
40869
|
-
/* @__PURE__ */ (0,
|
|
40870
|
-
/* @__PURE__ */ (0,
|
|
40871
|
-
/* @__PURE__ */ (0,
|
|
41214
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsx)("div", { className: "mt-6 grid grid-cols-2 gap-4 border-t border-[var(--border-color)] pt-4", children: safeMetrics.map((m, i) => /* @__PURE__ */ (0, import_jsx_runtime156.jsxs)("div", { className: "flex flex-col", children: [
|
|
41215
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsx)("span", { className: "text-[10px] font-bold uppercase tracking-wider text-[var(--foreground)]/40", children: m.label }),
|
|
41216
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsx)("span", { className: "text-sm font-bold text-[var(--primary-color)]", children: m.value })
|
|
40872
41217
|
] }, i)) })
|
|
40873
41218
|
] })
|
|
40874
41219
|
]
|
|
@@ -40877,15 +41222,15 @@ var CreatorGridCard = ({
|
|
|
40877
41222
|
};
|
|
40878
41223
|
|
|
40879
41224
|
// src/molecules/creator-discovery/BrandAffinityGroup/BrandAffinityGroup.tsx
|
|
40880
|
-
var
|
|
41225
|
+
var import_jsx_runtime157 = require("react/jsx-runtime");
|
|
40881
41226
|
var BrandAffinityGroup = ({
|
|
40882
41227
|
brands,
|
|
40883
41228
|
className
|
|
40884
41229
|
}) => {
|
|
40885
|
-
return /* @__PURE__ */ (0,
|
|
40886
|
-
/* @__PURE__ */ (0,
|
|
40887
|
-
/* @__PURE__ */ (0,
|
|
40888
|
-
/* @__PURE__ */ (0,
|
|
41230
|
+
return /* @__PURE__ */ (0, import_jsx_runtime157.jsxs)("div", { className: cn("flex flex-col gap-3", className), children: [
|
|
41231
|
+
/* @__PURE__ */ (0, import_jsx_runtime157.jsx)("h5", { className: "text-[10px] font-bold uppercase tracking-widest text-muted-foreground", children: "Recent Collaborations" }),
|
|
41232
|
+
/* @__PURE__ */ (0, import_jsx_runtime157.jsx)("div", { className: "flex flex-wrap gap-4 items-center", children: brands.map((brand, i) => /* @__PURE__ */ (0, import_jsx_runtime157.jsxs)("div", { className: "group relative", children: [
|
|
41233
|
+
/* @__PURE__ */ (0, import_jsx_runtime157.jsx)("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__ */ (0, import_jsx_runtime157.jsx)(
|
|
40889
41234
|
"img",
|
|
40890
41235
|
{
|
|
40891
41236
|
src: brand.logoSrc,
|
|
@@ -40893,18 +41238,18 @@ var BrandAffinityGroup = ({
|
|
|
40893
41238
|
className: "max-h-full max-w-full object-contain"
|
|
40894
41239
|
}
|
|
40895
41240
|
) }),
|
|
40896
|
-
/* @__PURE__ */ (0,
|
|
41241
|
+
/* @__PURE__ */ (0, import_jsx_runtime157.jsx)("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 })
|
|
40897
41242
|
] }, i)) })
|
|
40898
41243
|
] });
|
|
40899
41244
|
};
|
|
40900
41245
|
|
|
40901
41246
|
// src/molecules/creator-discovery/ContentPreviewGallery/ContentPreviewGallery.tsx
|
|
40902
|
-
var
|
|
41247
|
+
var import_jsx_runtime158 = require("react/jsx-runtime");
|
|
40903
41248
|
var ContentPreviewGallery = ({
|
|
40904
41249
|
items,
|
|
40905
41250
|
className
|
|
40906
41251
|
}) => {
|
|
40907
|
-
return /* @__PURE__ */ (0,
|
|
41252
|
+
return /* @__PURE__ */ (0, import_jsx_runtime158.jsx)("div", { className: cn("grid grid-cols-2 gap-2", className), children: items.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime158.jsxs)(
|
|
40908
41253
|
"a",
|
|
40909
41254
|
{
|
|
40910
41255
|
href: item.url || "#",
|
|
@@ -40912,7 +41257,7 @@ var ContentPreviewGallery = ({
|
|
|
40912
41257
|
rel: "noopener noreferrer",
|
|
40913
41258
|
className: "group relative aspect-square overflow-hidden rounded-2xl bg-gray-100",
|
|
40914
41259
|
children: [
|
|
40915
|
-
/* @__PURE__ */ (0,
|
|
41260
|
+
/* @__PURE__ */ (0, import_jsx_runtime158.jsx)(
|
|
40916
41261
|
"img",
|
|
40917
41262
|
{
|
|
40918
41263
|
src: item.thumbnail,
|
|
@@ -40920,8 +41265,8 @@ var ContentPreviewGallery = ({
|
|
|
40920
41265
|
className: "h-full w-full object-cover transition-transform duration-500 group-hover:scale-110"
|
|
40921
41266
|
}
|
|
40922
41267
|
),
|
|
40923
|
-
item.type === "video" && /* @__PURE__ */ (0,
|
|
40924
|
-
/* @__PURE__ */ (0,
|
|
41268
|
+
item.type === "video" && /* @__PURE__ */ (0, import_jsx_runtime158.jsx)("div", { className: "absolute inset-0 flex items-center justify-center bg-black/10 group-hover:bg-black/20 transition-colors", children: /* @__PURE__ */ (0, import_jsx_runtime158.jsx)("div", { className: "rounded-full bg-white/30 backdrop-blur-md p-3 text-white ring-1 ring-white/50", children: /* @__PURE__ */ (0, import_jsx_runtime158.jsx)(Play, { className: "h-6 w-6 fill-white" }) }) }),
|
|
41269
|
+
/* @__PURE__ */ (0, import_jsx_runtime158.jsx)("div", { className: "absolute inset-0 ring-1 ring-inset ring-black/10 rounded-2xl" })
|
|
40925
41270
|
]
|
|
40926
41271
|
},
|
|
40927
41272
|
i
|
|
@@ -40929,10 +41274,10 @@ var ContentPreviewGallery = ({
|
|
|
40929
41274
|
};
|
|
40930
41275
|
|
|
40931
41276
|
// src/molecules/creator-discovery/AudienceDemographicsCard/AudienceDemographicsCard.tsx
|
|
40932
|
-
var
|
|
41277
|
+
var import_jsx_runtime159 = require("react/jsx-runtime");
|
|
40933
41278
|
var AudienceDemographicsCard = ({ title, data, config, demographicType, className }) => {
|
|
40934
41279
|
const chartType = demographicType === "location" ? "bar" : "pie";
|
|
40935
|
-
return /* @__PURE__ */ (0,
|
|
41280
|
+
return /* @__PURE__ */ (0, import_jsx_runtime159.jsxs)(
|
|
40936
41281
|
Card,
|
|
40937
41282
|
{
|
|
40938
41283
|
className: cn(
|
|
@@ -40940,8 +41285,8 @@ var AudienceDemographicsCard = ({ title, data, config, demographicType, classNam
|
|
|
40940
41285
|
className
|
|
40941
41286
|
),
|
|
40942
41287
|
children: [
|
|
40943
|
-
/* @__PURE__ */ (0,
|
|
40944
|
-
/* @__PURE__ */ (0,
|
|
41288
|
+
/* @__PURE__ */ (0, import_jsx_runtime159.jsx)(CardHeader, { className: "pb-2", children: /* @__PURE__ */ (0, import_jsx_runtime159.jsx)(CardTitle, { className: "text-lg font-bold text-gray-900", children: title }) }),
|
|
41289
|
+
/* @__PURE__ */ (0, import_jsx_runtime159.jsx)(CardContent, { children: /* @__PURE__ */ (0, import_jsx_runtime159.jsx)("div", { className: "h-[250px] w-full", children: /* @__PURE__ */ (0, import_jsx_runtime159.jsx)(
|
|
40945
41290
|
ChartAtom,
|
|
40946
41291
|
{
|
|
40947
41292
|
type: "chart",
|
|
@@ -40960,7 +41305,7 @@ var AudienceDemographicsCard = ({ title, data, config, demographicType, classNam
|
|
|
40960
41305
|
};
|
|
40961
41306
|
|
|
40962
41307
|
// src/molecules/creator-discovery/GrowthChartCard/GrowthChartCard.tsx
|
|
40963
|
-
var
|
|
41308
|
+
var import_jsx_runtime160 = require("react/jsx-runtime");
|
|
40964
41309
|
var GrowthChartCard = ({
|
|
40965
41310
|
title,
|
|
40966
41311
|
data,
|
|
@@ -40969,7 +41314,7 @@ var GrowthChartCard = ({
|
|
|
40969
41314
|
period,
|
|
40970
41315
|
className
|
|
40971
41316
|
}) => {
|
|
40972
|
-
return /* @__PURE__ */ (0,
|
|
41317
|
+
return /* @__PURE__ */ (0, import_jsx_runtime160.jsxs)(
|
|
40973
41318
|
Card,
|
|
40974
41319
|
{
|
|
40975
41320
|
className: cn(
|
|
@@ -40977,15 +41322,15 @@ var GrowthChartCard = ({
|
|
|
40977
41322
|
className
|
|
40978
41323
|
),
|
|
40979
41324
|
children: [
|
|
40980
|
-
/* @__PURE__ */ (0,
|
|
40981
|
-
/* @__PURE__ */ (0,
|
|
40982
|
-
/* @__PURE__ */ (0,
|
|
40983
|
-
/* @__PURE__ */ (0,
|
|
41325
|
+
/* @__PURE__ */ (0, import_jsx_runtime160.jsxs)(CardHeader, { className: "flex flex-row items-center justify-between pb-2 space-y-0", children: [
|
|
41326
|
+
/* @__PURE__ */ (0, import_jsx_runtime160.jsxs)("div", { children: [
|
|
41327
|
+
/* @__PURE__ */ (0, import_jsx_runtime160.jsx)(CardTitle, { className: "text-lg font-bold text-gray-900", children: title }),
|
|
41328
|
+
/* @__PURE__ */ (0, import_jsx_runtime160.jsx)("p", { className: "text-xs text-muted-foreground", children: period })
|
|
40984
41329
|
] }),
|
|
40985
|
-
/* @__PURE__ */ (0,
|
|
41330
|
+
/* @__PURE__ */ (0, import_jsx_runtime160.jsx)("div", { className: "bg-green-50 p-2 rounded-xl", children: /* @__PURE__ */ (0, import_jsx_runtime160.jsx)(TrendingUp, { className: "w-4 h-4 text-green-600" }) })
|
|
40986
41331
|
] }),
|
|
40987
|
-
/* @__PURE__ */ (0,
|
|
40988
|
-
/* @__PURE__ */ (0,
|
|
41332
|
+
/* @__PURE__ */ (0, import_jsx_runtime160.jsxs)(CardContent, { children: [
|
|
41333
|
+
/* @__PURE__ */ (0, import_jsx_runtime160.jsx)("div", { className: "h-[200px] w-full mt-4", children: /* @__PURE__ */ (0, import_jsx_runtime160.jsx)(
|
|
40989
41334
|
ChartAtom,
|
|
40990
41335
|
{
|
|
40991
41336
|
type: "chart",
|
|
@@ -40998,9 +41343,9 @@ var GrowthChartCard = ({
|
|
|
40998
41343
|
showLegend: false
|
|
40999
41344
|
}
|
|
41000
41345
|
) }),
|
|
41001
|
-
/* @__PURE__ */ (0,
|
|
41002
|
-
/* @__PURE__ */ (0,
|
|
41003
|
-
/* @__PURE__ */ (0,
|
|
41346
|
+
/* @__PURE__ */ (0, import_jsx_runtime160.jsxs)("div", { className: "mt-4 flex items-center justify-between", children: [
|
|
41347
|
+
/* @__PURE__ */ (0, import_jsx_runtime160.jsx)("span", { className: "text-sm font-medium text-gray-500", children: metric }),
|
|
41348
|
+
/* @__PURE__ */ (0, import_jsx_runtime160.jsx)("span", { className: "text-sm font-bold text-purple-600", children: "+12.5%" })
|
|
41004
41349
|
] })
|
|
41005
41350
|
] })
|
|
41006
41351
|
]
|
|
@@ -41009,24 +41354,24 @@ var GrowthChartCard = ({
|
|
|
41009
41354
|
};
|
|
41010
41355
|
|
|
41011
41356
|
// src/molecules/creator-discovery/TopPostsGrid/TopPostsGrid.tsx
|
|
41012
|
-
var
|
|
41357
|
+
var import_jsx_runtime161 = require("react/jsx-runtime");
|
|
41013
41358
|
var TopPostsGrid = ({
|
|
41014
41359
|
posts,
|
|
41015
41360
|
className
|
|
41016
41361
|
}) => {
|
|
41017
|
-
return /* @__PURE__ */ (0,
|
|
41362
|
+
return /* @__PURE__ */ (0, import_jsx_runtime161.jsx)(
|
|
41018
41363
|
"div",
|
|
41019
41364
|
{
|
|
41020
41365
|
className: cn(
|
|
41021
41366
|
"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",
|
|
41022
41367
|
className
|
|
41023
41368
|
),
|
|
41024
|
-
children: posts.map((post, i) => /* @__PURE__ */ (0,
|
|
41369
|
+
children: posts.map((post, i) => /* @__PURE__ */ (0, import_jsx_runtime161.jsxs)(
|
|
41025
41370
|
"div",
|
|
41026
41371
|
{
|
|
41027
41372
|
className: "group relative aspect-square overflow-hidden rounded-2xl bg-gray-100 border border-purple-50",
|
|
41028
41373
|
children: [
|
|
41029
|
-
/* @__PURE__ */ (0,
|
|
41374
|
+
/* @__PURE__ */ (0, import_jsx_runtime161.jsx)(
|
|
41030
41375
|
"img",
|
|
41031
41376
|
{
|
|
41032
41377
|
src: post.thumbnail,
|
|
@@ -41034,25 +41379,25 @@ var TopPostsGrid = ({
|
|
|
41034
41379
|
className: "h-full w-full object-cover transition-transform duration-500 group-hover:scale-110"
|
|
41035
41380
|
}
|
|
41036
41381
|
),
|
|
41037
|
-
/* @__PURE__ */ (0,
|
|
41038
|
-
/* @__PURE__ */ (0,
|
|
41039
|
-
/* @__PURE__ */ (0,
|
|
41040
|
-
/* @__PURE__ */ (0,
|
|
41382
|
+
/* @__PURE__ */ (0, import_jsx_runtime161.jsxs)("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: [
|
|
41383
|
+
/* @__PURE__ */ (0, import_jsx_runtime161.jsxs)("div", { className: "flex items-center gap-4 text-white text-xs font-bold", children: [
|
|
41384
|
+
/* @__PURE__ */ (0, import_jsx_runtime161.jsxs)("span", { className: "flex items-center gap-1", children: [
|
|
41385
|
+
/* @__PURE__ */ (0, import_jsx_runtime161.jsx)(Heart, { className: "w-3 h-3 fill-white" }),
|
|
41041
41386
|
" ",
|
|
41042
41387
|
post.likes
|
|
41043
41388
|
] }),
|
|
41044
|
-
/* @__PURE__ */ (0,
|
|
41045
|
-
/* @__PURE__ */ (0,
|
|
41389
|
+
/* @__PURE__ */ (0, import_jsx_runtime161.jsxs)("span", { className: "flex items-center gap-1", children: [
|
|
41390
|
+
/* @__PURE__ */ (0, import_jsx_runtime161.jsx)(MessageCircle, { className: "w-3 h-3 fill-white" }),
|
|
41046
41391
|
" ",
|
|
41047
41392
|
post.comments
|
|
41048
41393
|
] }),
|
|
41049
|
-
/* @__PURE__ */ (0,
|
|
41050
|
-
/* @__PURE__ */ (0,
|
|
41394
|
+
/* @__PURE__ */ (0, import_jsx_runtime161.jsxs)("span", { className: "flex items-center gap-1", children: [
|
|
41395
|
+
/* @__PURE__ */ (0, import_jsx_runtime161.jsx)(ChartColumn, { className: "w-3 h-3" }),
|
|
41051
41396
|
" ",
|
|
41052
41397
|
post.engagement
|
|
41053
41398
|
] })
|
|
41054
41399
|
] }),
|
|
41055
|
-
/* @__PURE__ */ (0,
|
|
41400
|
+
/* @__PURE__ */ (0, import_jsx_runtime161.jsx)("span", { className: "text-[10px] text-gray-300 mt-2", children: post.date })
|
|
41056
41401
|
] })
|
|
41057
41402
|
]
|
|
41058
41403
|
},
|
|
@@ -41063,7 +41408,7 @@ var TopPostsGrid = ({
|
|
|
41063
41408
|
};
|
|
41064
41409
|
|
|
41065
41410
|
// src/molecules/creator-discovery/CreatorActionHeader/CreatorActionHeader.tsx
|
|
41066
|
-
var
|
|
41411
|
+
var import_jsx_runtime162 = require("react/jsx-runtime");
|
|
41067
41412
|
var CreatorActionHeader = ({
|
|
41068
41413
|
bannerSrc,
|
|
41069
41414
|
avatarSrc,
|
|
@@ -41072,7 +41417,7 @@ var CreatorActionHeader = ({
|
|
|
41072
41417
|
actions,
|
|
41073
41418
|
className
|
|
41074
41419
|
}) => {
|
|
41075
|
-
return /* @__PURE__ */ (0,
|
|
41420
|
+
return /* @__PURE__ */ (0, import_jsx_runtime162.jsxs)(
|
|
41076
41421
|
"div",
|
|
41077
41422
|
{
|
|
41078
41423
|
className: cn(
|
|
@@ -41080,8 +41425,8 @@ var CreatorActionHeader = ({
|
|
|
41080
41425
|
className
|
|
41081
41426
|
),
|
|
41082
41427
|
children: [
|
|
41083
|
-
/* @__PURE__ */ (0,
|
|
41084
|
-
bannerSrc && /* @__PURE__ */ (0,
|
|
41428
|
+
/* @__PURE__ */ (0, import_jsx_runtime162.jsxs)("div", { className: "h-48 w-full bg-gradient-to-r from-purple-100 to-indigo-100 relative", children: [
|
|
41429
|
+
bannerSrc && /* @__PURE__ */ (0, import_jsx_runtime162.jsx)(
|
|
41085
41430
|
"img",
|
|
41086
41431
|
{
|
|
41087
41432
|
src: bannerSrc,
|
|
@@ -41089,23 +41434,23 @@ var CreatorActionHeader = ({
|
|
|
41089
41434
|
alt: "Banner"
|
|
41090
41435
|
}
|
|
41091
41436
|
),
|
|
41092
|
-
/* @__PURE__ */ (0,
|
|
41437
|
+
/* @__PURE__ */ (0, import_jsx_runtime162.jsx)("div", { className: "absolute inset-0 bg-black/5" })
|
|
41093
41438
|
] }),
|
|
41094
|
-
/* @__PURE__ */ (0,
|
|
41095
|
-
/* @__PURE__ */ (0,
|
|
41096
|
-
/* @__PURE__ */ (0,
|
|
41097
|
-
/* @__PURE__ */ (0,
|
|
41098
|
-
/* @__PURE__ */ (0,
|
|
41439
|
+
/* @__PURE__ */ (0, import_jsx_runtime162.jsxs)("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: [
|
|
41440
|
+
/* @__PURE__ */ (0, import_jsx_runtime162.jsxs)("div", { className: "flex flex-col md:flex-row items-start md:items-end gap-6", children: [
|
|
41441
|
+
/* @__PURE__ */ (0, import_jsx_runtime162.jsx)("div", { className: "p-2 bg-white rounded-[32px] shadow-lg", children: /* @__PURE__ */ (0, import_jsx_runtime162.jsxs)(Avatar, { className: "h-32 w-32 rounded-[24px] border-4 border-white", children: [
|
|
41442
|
+
/* @__PURE__ */ (0, import_jsx_runtime162.jsx)(AvatarImage, { src: avatarSrc, className: "rounded-[24px]" }),
|
|
41443
|
+
/* @__PURE__ */ (0, import_jsx_runtime162.jsx)(AvatarFallback, { className: "rounded-[24px] bg-purple-50 text-purple-600 text-3xl font-bold", children: name.charAt(0) })
|
|
41099
41444
|
] }) }),
|
|
41100
|
-
/* @__PURE__ */ (0,
|
|
41101
|
-
/* @__PURE__ */ (0,
|
|
41102
|
-
/* @__PURE__ */ (0,
|
|
41445
|
+
/* @__PURE__ */ (0, import_jsx_runtime162.jsxs)("div", { className: "mb-2", children: [
|
|
41446
|
+
/* @__PURE__ */ (0, import_jsx_runtime162.jsx)("h1", { className: "text-3xl font-bold text-gray-900 tracking-tight", children: name }),
|
|
41447
|
+
/* @__PURE__ */ (0, import_jsx_runtime162.jsxs)("p", { className: "text-purple-600 font-medium tracking-wide", children: [
|
|
41103
41448
|
"@",
|
|
41104
41449
|
handle
|
|
41105
41450
|
] })
|
|
41106
41451
|
] })
|
|
41107
41452
|
] }),
|
|
41108
|
-
/* @__PURE__ */ (0,
|
|
41453
|
+
/* @__PURE__ */ (0, import_jsx_runtime162.jsx)("div", { className: "flex items-center gap-3 mb-2", children: actions.map((action, i) => /* @__PURE__ */ (0, import_jsx_runtime162.jsx)(
|
|
41109
41454
|
Button,
|
|
41110
41455
|
{
|
|
41111
41456
|
variant: action.variant || "default",
|
|
@@ -41124,9 +41469,9 @@ var CreatorActionHeader = ({
|
|
|
41124
41469
|
};
|
|
41125
41470
|
|
|
41126
41471
|
// src/molecules/creator-discovery/CreatorSearchBox/CreatorSearch.tsx
|
|
41127
|
-
var
|
|
41128
|
-
var
|
|
41129
|
-
var CreatorSearch =
|
|
41472
|
+
var import_react81 = __toESM(require("react"), 1);
|
|
41473
|
+
var import_jsx_runtime163 = require("react/jsx-runtime");
|
|
41474
|
+
var CreatorSearch = import_react81.default.memo(
|
|
41130
41475
|
({
|
|
41131
41476
|
selectionStatus,
|
|
41132
41477
|
isLatestMessage = true,
|
|
@@ -41135,7 +41480,7 @@ var CreatorSearch = import_react80.default.memo(
|
|
|
41135
41480
|
data,
|
|
41136
41481
|
...formCardProps
|
|
41137
41482
|
}) => {
|
|
41138
|
-
const fields = (0,
|
|
41483
|
+
const fields = (0, import_react81.useMemo)(() => {
|
|
41139
41484
|
const baseFields = providedFields || generateFieldsFromData(data);
|
|
41140
41485
|
return baseFields.map((field) => {
|
|
41141
41486
|
if (field.key === "platforms") {
|
|
@@ -41143,7 +41488,7 @@ var CreatorSearch = import_react80.default.memo(
|
|
|
41143
41488
|
...field,
|
|
41144
41489
|
renderDisplay: (val) => {
|
|
41145
41490
|
const platforms = Array.isArray(val) ? val : [val];
|
|
41146
|
-
return /* @__PURE__ */ (0,
|
|
41491
|
+
return /* @__PURE__ */ (0, import_jsx_runtime163.jsx)("div", { className: "flex flex-wrap gap-2", children: platforms.map((p) => /* @__PURE__ */ (0, import_jsx_runtime163.jsx)(
|
|
41147
41492
|
BadgeAtom,
|
|
41148
41493
|
{
|
|
41149
41494
|
id: `platform-${p}`,
|
|
@@ -41160,13 +41505,13 @@ var CreatorSearch = import_react80.default.memo(
|
|
|
41160
41505
|
if (field.key === "geography") {
|
|
41161
41506
|
return {
|
|
41162
41507
|
...field,
|
|
41163
|
-
renderDisplay: (val) => /* @__PURE__ */ (0,
|
|
41508
|
+
renderDisplay: (val) => /* @__PURE__ */ (0, import_jsx_runtime163.jsx)(CountrySelectDisplay, { value: val })
|
|
41164
41509
|
};
|
|
41165
41510
|
}
|
|
41166
41511
|
if (field.key === "keywordBundles") {
|
|
41167
41512
|
return {
|
|
41168
41513
|
...field,
|
|
41169
|
-
renderDisplay: (val) => /* @__PURE__ */ (0,
|
|
41514
|
+
renderDisplay: (val) => /* @__PURE__ */ (0, import_jsx_runtime163.jsx)(KeywordBundlesDisplay, { value: val })
|
|
41170
41515
|
};
|
|
41171
41516
|
}
|
|
41172
41517
|
if (field.key === "followerRange") {
|
|
@@ -41174,9 +41519,9 @@ var CreatorSearch = import_react80.default.memo(
|
|
|
41174
41519
|
...field,
|
|
41175
41520
|
renderDisplay: (val) => {
|
|
41176
41521
|
if (typeof val === "object" && val !== null) {
|
|
41177
|
-
return /* @__PURE__ */ (0,
|
|
41522
|
+
return /* @__PURE__ */ (0, import_jsx_runtime163.jsx)("span", { className: "text-white font-medium", children: `${val.min?.toLocaleString()} - ${val.max?.toLocaleString()} followers` });
|
|
41178
41523
|
}
|
|
41179
|
-
return /* @__PURE__ */ (0,
|
|
41524
|
+
return /* @__PURE__ */ (0, import_jsx_runtime163.jsxs)("span", { className: "text-white font-medium", children: [
|
|
41180
41525
|
val,
|
|
41181
41526
|
" followers"
|
|
41182
41527
|
] });
|
|
@@ -41186,7 +41531,7 @@ var CreatorSearch = import_react80.default.memo(
|
|
|
41186
41531
|
if (field.key === "initialCreators") {
|
|
41187
41532
|
return {
|
|
41188
41533
|
...field,
|
|
41189
|
-
renderDisplay: (val) => /* @__PURE__ */ (0,
|
|
41534
|
+
renderDisplay: (val) => /* @__PURE__ */ (0, import_jsx_runtime163.jsxs)("span", { className: "text-white font-medium", children: [
|
|
41190
41535
|
val,
|
|
41191
41536
|
" creators"
|
|
41192
41537
|
] })
|
|
@@ -41195,7 +41540,7 @@ var CreatorSearch = import_react80.default.memo(
|
|
|
41195
41540
|
return field;
|
|
41196
41541
|
});
|
|
41197
41542
|
}, [providedFields, data]);
|
|
41198
|
-
return /* @__PURE__ */ (0,
|
|
41543
|
+
return /* @__PURE__ */ (0, import_jsx_runtime163.jsx)("div", { className: "flex flex-col gap-2", children: /* @__PURE__ */ (0, import_jsx_runtime163.jsx)(
|
|
41199
41544
|
FormCard,
|
|
41200
41545
|
{
|
|
41201
41546
|
...formCardProps,
|
|
@@ -41204,9 +41549,9 @@ var CreatorSearch = import_react80.default.memo(
|
|
|
41204
41549
|
fields,
|
|
41205
41550
|
showTimeline: true,
|
|
41206
41551
|
className: cn("font-noto", className),
|
|
41207
|
-
footer: !isLatestMessage && selectionStatus ? /* @__PURE__ */ (0,
|
|
41208
|
-
/* @__PURE__ */ (0,
|
|
41209
|
-
/* @__PURE__ */ (0,
|
|
41552
|
+
footer: !isLatestMessage && selectionStatus ? /* @__PURE__ */ (0, import_jsx_runtime163.jsxs)("div", { className: "flex justify-end items-center gap-1.5 text-green-600 text-[10px] font-semibold py-4 pr-6", children: [
|
|
41553
|
+
/* @__PURE__ */ (0, import_jsx_runtime163.jsx)(CircleCheck, { className: "h-3.5 w-3.5" }),
|
|
41554
|
+
/* @__PURE__ */ (0, import_jsx_runtime163.jsx)("span", { children: selectionStatus === "agent" ? "Suggested by Agent" : "Selected by you" })
|
|
41210
41555
|
] }) : formCardProps.footer
|
|
41211
41556
|
}
|
|
41212
41557
|
) });
|
|
@@ -41215,10 +41560,10 @@ var CreatorSearch = import_react80.default.memo(
|
|
|
41215
41560
|
CreatorSearch.displayName = "CreatorSearch";
|
|
41216
41561
|
|
|
41217
41562
|
// src/molecules/creator-discovery/CampaignConceptCard/CampaignConceptCard.tsx
|
|
41218
|
-
var
|
|
41563
|
+
var import_react82 = __toESM(require("react"), 1);
|
|
41219
41564
|
var import_framer_motion = require("framer-motion");
|
|
41220
|
-
var
|
|
41221
|
-
var CampaignConceptCard =
|
|
41565
|
+
var import_jsx_runtime164 = require("react/jsx-runtime");
|
|
41566
|
+
var CampaignConceptCard = import_react82.default.memo(
|
|
41222
41567
|
({
|
|
41223
41568
|
index,
|
|
41224
41569
|
isRecommended,
|
|
@@ -41234,7 +41579,7 @@ var CampaignConceptCard = import_react81.default.memo(
|
|
|
41234
41579
|
onAction,
|
|
41235
41580
|
...formCardProps
|
|
41236
41581
|
}) => {
|
|
41237
|
-
const [internalIsOpen, setInternalIsOpen] = (0,
|
|
41582
|
+
const [internalIsOpen, setInternalIsOpen] = (0, import_react82.useState)(false);
|
|
41238
41583
|
const isOpen = controlledIsOpen !== void 0 ? controlledIsOpen : internalIsOpen;
|
|
41239
41584
|
const handleToggle = () => {
|
|
41240
41585
|
if (onToggle) {
|
|
@@ -41253,7 +41598,7 @@ var CampaignConceptCard = import_react81.default.memo(
|
|
|
41253
41598
|
});
|
|
41254
41599
|
};
|
|
41255
41600
|
const effectiveIsLatest = isLatestMessage && !hasUserResponded;
|
|
41256
|
-
const fields = (0,
|
|
41601
|
+
const fields = (0, import_react82.useMemo)(() => {
|
|
41257
41602
|
const baseFields = providedFields || generateFieldsFromData(data);
|
|
41258
41603
|
const FIELD_ORDER = [
|
|
41259
41604
|
"description",
|
|
@@ -41290,39 +41635,39 @@ var CampaignConceptCard = import_react81.default.memo(
|
|
|
41290
41635
|
label: "Budget Allocation",
|
|
41291
41636
|
renderDisplay: (val) => {
|
|
41292
41637
|
if (!val)
|
|
41293
|
-
return /* @__PURE__ */ (0,
|
|
41638
|
+
return /* @__PURE__ */ (0, import_jsx_runtime164.jsx)("span", { className: "text-muted-foreground text-sm", children: "-" });
|
|
41294
41639
|
if (Array.isArray(val)) {
|
|
41295
|
-
return /* @__PURE__ */ (0,
|
|
41640
|
+
return /* @__PURE__ */ (0, import_jsx_runtime164.jsx)("div", { className: "space-y-2", children: val.map((item, idx) => {
|
|
41296
41641
|
const label = item?.label ?? item?.key ?? `Item ${idx + 1}`;
|
|
41297
41642
|
const value = item?.value ?? item;
|
|
41298
|
-
return /* @__PURE__ */ (0,
|
|
41299
|
-
/* @__PURE__ */ (0,
|
|
41643
|
+
return /* @__PURE__ */ (0, import_jsx_runtime164.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
41644
|
+
/* @__PURE__ */ (0, import_jsx_runtime164.jsxs)("span", { className: "text-muted-foreground font-medium", children: [
|
|
41300
41645
|
idx + 1,
|
|
41301
41646
|
"."
|
|
41302
41647
|
] }),
|
|
41303
|
-
/* @__PURE__ */ (0,
|
|
41304
|
-
/* @__PURE__ */ (0,
|
|
41305
|
-
/* @__PURE__ */ (0,
|
|
41648
|
+
/* @__PURE__ */ (0, import_jsx_runtime164.jsx)("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) }),
|
|
41649
|
+
/* @__PURE__ */ (0, import_jsx_runtime164.jsx)("span", { className: "text-cardText", children: "=" }),
|
|
41650
|
+
/* @__PURE__ */ (0, import_jsx_runtime164.jsx)("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) })
|
|
41306
41651
|
] }, idx);
|
|
41307
41652
|
}) });
|
|
41308
41653
|
}
|
|
41309
41654
|
if (typeof val === "object") {
|
|
41310
41655
|
const entries = Object.entries(val);
|
|
41311
41656
|
if (entries.length === 0)
|
|
41312
|
-
return /* @__PURE__ */ (0,
|
|
41313
|
-
return /* @__PURE__ */ (0,
|
|
41314
|
-
/* @__PURE__ */ (0,
|
|
41657
|
+
return /* @__PURE__ */ (0, import_jsx_runtime164.jsx)("span", { className: "text-muted-foreground text-sm", children: "-" });
|
|
41658
|
+
return /* @__PURE__ */ (0, import_jsx_runtime164.jsx)("div", { className: "space-y-2", children: entries.map(([k, v], idx) => /* @__PURE__ */ (0, import_jsx_runtime164.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
41659
|
+
/* @__PURE__ */ (0, import_jsx_runtime164.jsxs)("span", { className: "text-muted-foreground font-medium", children: [
|
|
41315
41660
|
idx + 1,
|
|
41316
41661
|
"."
|
|
41317
41662
|
] }),
|
|
41318
|
-
/* @__PURE__ */ (0,
|
|
41319
|
-
/* @__PURE__ */ (0,
|
|
41320
|
-
/* @__PURE__ */ (0,
|
|
41663
|
+
/* @__PURE__ */ (0, import_jsx_runtime164.jsx)("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) }),
|
|
41664
|
+
/* @__PURE__ */ (0, import_jsx_runtime164.jsx)("span", { className: "text-cardText", children: "=" }),
|
|
41665
|
+
/* @__PURE__ */ (0, import_jsx_runtime164.jsx)("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) })
|
|
41321
41666
|
] }, k)) });
|
|
41322
41667
|
}
|
|
41323
|
-
return /* @__PURE__ */ (0,
|
|
41668
|
+
return /* @__PURE__ */ (0, import_jsx_runtime164.jsx)("span", { className: "text-muted-foreground text-sm", children: String(val) });
|
|
41324
41669
|
},
|
|
41325
|
-
renderEdit: (v, onChange) => /* @__PURE__ */ (0,
|
|
41670
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ (0, import_jsx_runtime164.jsx)(
|
|
41326
41671
|
Textarea,
|
|
41327
41672
|
{
|
|
41328
41673
|
value: typeof v === "object" ? Object.entries(v || {}).map(([k, val]) => `${k.replace(/_/g, " ")}: ${val}`).join("\n") : String(v || ""),
|
|
@@ -41347,8 +41692,8 @@ var CampaignConceptCard = import_react81.default.memo(
|
|
|
41347
41692
|
return {
|
|
41348
41693
|
...field,
|
|
41349
41694
|
label: "Geography",
|
|
41350
|
-
renderDisplay: (v) => /* @__PURE__ */ (0,
|
|
41351
|
-
renderEdit: (v, onChange) => /* @__PURE__ */ (0,
|
|
41695
|
+
renderDisplay: (v) => /* @__PURE__ */ (0, import_jsx_runtime164.jsx)(CountrySelectDisplay, { value: v }),
|
|
41696
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ (0, import_jsx_runtime164.jsx)(CountrySelectEdit, { value: v, onChange })
|
|
41352
41697
|
};
|
|
41353
41698
|
}
|
|
41354
41699
|
if (field.key === "estimatedCreators" || field.key === "estimated_creators") {
|
|
@@ -41357,11 +41702,11 @@ var CampaignConceptCard = import_react81.default.memo(
|
|
|
41357
41702
|
label: "Estimated Creators",
|
|
41358
41703
|
renderDisplay: (val) => {
|
|
41359
41704
|
if (!val)
|
|
41360
|
-
return /* @__PURE__ */ (0,
|
|
41705
|
+
return /* @__PURE__ */ (0, import_jsx_runtime164.jsx)("span", { className: "text-muted-foreground text-sm", children: "-" });
|
|
41361
41706
|
const displayValue = typeof val === "object" && !Array.isArray(val) ? `${val.min ?? 0}-${val.max ?? 0}` : String(val);
|
|
41362
|
-
return /* @__PURE__ */ (0,
|
|
41707
|
+
return /* @__PURE__ */ (0, import_jsx_runtime164.jsx)("span", { className: "text-cardText text-sm", children: displayValue });
|
|
41363
41708
|
},
|
|
41364
|
-
renderEdit: (v, onChange) => /* @__PURE__ */ (0,
|
|
41709
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ (0, import_jsx_runtime164.jsx)(
|
|
41365
41710
|
Input,
|
|
41366
41711
|
{
|
|
41367
41712
|
value: typeof v === "object" ? `${v.min ?? 0}-${v.max ?? 0}` : String(v || ""),
|
|
@@ -41384,8 +41729,8 @@ var CampaignConceptCard = import_react81.default.memo(
|
|
|
41384
41729
|
return {
|
|
41385
41730
|
...field,
|
|
41386
41731
|
label: field.label || "Primary KPI",
|
|
41387
|
-
renderDisplay: (val) => /* @__PURE__ */ (0,
|
|
41388
|
-
renderEdit: (v, onChange) => /* @__PURE__ */ (0,
|
|
41732
|
+
renderDisplay: (val) => /* @__PURE__ */ (0, import_jsx_runtime164.jsx)("span", { className: "text-cardText text-sm", children: val ? String(val) : "-" }),
|
|
41733
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ (0, import_jsx_runtime164.jsx)(
|
|
41389
41734
|
Input,
|
|
41390
41735
|
{
|
|
41391
41736
|
value: String(v || ""),
|
|
@@ -41402,9 +41747,9 @@ var CampaignConceptCard = import_react81.default.memo(
|
|
|
41402
41747
|
label: field.label || "Secondary KPIs",
|
|
41403
41748
|
renderDisplay: (val) => {
|
|
41404
41749
|
const display = Array.isArray(val) ? val.map(String).join(", ") : val ? String(val) : "-";
|
|
41405
|
-
return /* @__PURE__ */ (0,
|
|
41750
|
+
return /* @__PURE__ */ (0, import_jsx_runtime164.jsx)("span", { className: "text-cardText text-sm", children: display });
|
|
41406
41751
|
},
|
|
41407
|
-
renderEdit: (v, onChange) => /* @__PURE__ */ (0,
|
|
41752
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ (0, import_jsx_runtime164.jsx)(
|
|
41408
41753
|
Textarea,
|
|
41409
41754
|
{
|
|
41410
41755
|
value: Array.isArray(v) ? v.join(", ") : String(v || ""),
|
|
@@ -41421,15 +41766,15 @@ var CampaignConceptCard = import_react81.default.memo(
|
|
|
41421
41766
|
if (field.key === "platforms" || field.key === "target_platforms" || field.key === "targetPlatforms") {
|
|
41422
41767
|
return {
|
|
41423
41768
|
...field,
|
|
41424
|
-
renderDisplay: (v) => /* @__PURE__ */ (0,
|
|
41425
|
-
renderEdit: (v, onChange) => /* @__PURE__ */ (0,
|
|
41769
|
+
renderDisplay: (v) => /* @__PURE__ */ (0, import_jsx_runtime164.jsx)(PlatformSelectDisplay, { value: v }),
|
|
41770
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ (0, import_jsx_runtime164.jsx)(PlatformSelectEdit, { value: v, onChange })
|
|
41426
41771
|
};
|
|
41427
41772
|
}
|
|
41428
41773
|
if (field.key === "description" || field.key === "creator_strategy" || field.key === "creatorStrategy") {
|
|
41429
41774
|
return {
|
|
41430
41775
|
...field,
|
|
41431
41776
|
type: "textarea",
|
|
41432
|
-
renderDisplay: (val) => /* @__PURE__ */ (0,
|
|
41777
|
+
renderDisplay: (val) => /* @__PURE__ */ (0, import_jsx_runtime164.jsx)("span", { className: "text-cardText text-sm leading-relaxed", children: val ? String(val) : "-" })
|
|
41433
41778
|
};
|
|
41434
41779
|
}
|
|
41435
41780
|
return {
|
|
@@ -41437,10 +41782,10 @@ var CampaignConceptCard = import_react81.default.memo(
|
|
|
41437
41782
|
renderDisplay: (val) => {
|
|
41438
41783
|
if (Array.isArray(val)) {
|
|
41439
41784
|
if (val.length === 0)
|
|
41440
|
-
return /* @__PURE__ */ (0,
|
|
41441
|
-
return /* @__PURE__ */ (0,
|
|
41785
|
+
return /* @__PURE__ */ (0, import_jsx_runtime164.jsx)("span", { className: "text-muted-foreground text-sm", children: "-" });
|
|
41786
|
+
return /* @__PURE__ */ (0, import_jsx_runtime164.jsx)("div", { className: "flex flex-wrap gap-2 pt-1", children: val.map((item, idx) => {
|
|
41442
41787
|
const label = typeof item === "object" && item !== null ? item.label || item.value || item.name || JSON.stringify(item) : String(item);
|
|
41443
|
-
return /* @__PURE__ */ (0,
|
|
41788
|
+
return /* @__PURE__ */ (0, import_jsx_runtime164.jsx)(
|
|
41444
41789
|
"span",
|
|
41445
41790
|
{
|
|
41446
41791
|
className: "inline-flex items-center bg-black border border-cardBorder px-2 py-0.5 text-cardText text-xs font-medium rounded-md",
|
|
@@ -41451,14 +41796,14 @@ var CampaignConceptCard = import_react81.default.memo(
|
|
|
41451
41796
|
}) });
|
|
41452
41797
|
}
|
|
41453
41798
|
if (typeof val === "object" && val !== null) {
|
|
41454
|
-
return /* @__PURE__ */ (0,
|
|
41799
|
+
return /* @__PURE__ */ (0, import_jsx_runtime164.jsx)("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") });
|
|
41455
41800
|
}
|
|
41456
|
-
return /* @__PURE__ */ (0,
|
|
41801
|
+
return /* @__PURE__ */ (0, import_jsx_runtime164.jsx)("span", { className: "text-cardText text-sm", children: val !== void 0 && val !== null ? String(val) : "-" });
|
|
41457
41802
|
}
|
|
41458
41803
|
};
|
|
41459
41804
|
});
|
|
41460
41805
|
}, [providedFields, data]);
|
|
41461
|
-
return /* @__PURE__ */ (0,
|
|
41806
|
+
return /* @__PURE__ */ (0, import_jsx_runtime164.jsxs)(
|
|
41462
41807
|
"div",
|
|
41463
41808
|
{
|
|
41464
41809
|
className: cn(
|
|
@@ -41467,31 +41812,31 @@ var CampaignConceptCard = import_react81.default.memo(
|
|
|
41467
41812
|
className
|
|
41468
41813
|
),
|
|
41469
41814
|
children: [
|
|
41470
|
-
/* @__PURE__ */ (0,
|
|
41815
|
+
/* @__PURE__ */ (0, import_jsx_runtime164.jsxs)(
|
|
41471
41816
|
"div",
|
|
41472
41817
|
{
|
|
41473
41818
|
className: "px-4 py-2.5 relative flex items-center justify-between cursor-pointer select-none",
|
|
41474
41819
|
onClick: handleToggle,
|
|
41475
41820
|
children: [
|
|
41476
|
-
/* @__PURE__ */ (0,
|
|
41477
|
-
/* @__PURE__ */ (0,
|
|
41821
|
+
/* @__PURE__ */ (0, import_jsx_runtime164.jsxs)("div", { className: "flex-1", children: [
|
|
41822
|
+
/* @__PURE__ */ (0, import_jsx_runtime164.jsxs)("h3", { className: "text-cardText font-semibold text-sm", children: [
|
|
41478
41823
|
"Concept ",
|
|
41479
41824
|
index !== void 0 ? index : "",
|
|
41480
41825
|
" :",
|
|
41481
41826
|
" ",
|
|
41482
41827
|
typeof cardTitle === "object" ? JSON.stringify(cardTitle) : String(cardTitle)
|
|
41483
41828
|
] }),
|
|
41484
|
-
/* @__PURE__ */ (0,
|
|
41485
|
-
isRecommended && /* @__PURE__ */ (0,
|
|
41486
|
-
!effectiveIsLatest && selectionStatus && /* @__PURE__ */ (0,
|
|
41829
|
+
/* @__PURE__ */ (0, import_jsx_runtime164.jsxs)("div", { className: "flex flex-wrap gap-2", children: [
|
|
41830
|
+
isRecommended && /* @__PURE__ */ (0, import_jsx_runtime164.jsx)("span", { className: "text-[10px] font-semibold uppercase tracking-widest text-gold", children: "Recommended" }),
|
|
41831
|
+
!effectiveIsLatest && selectionStatus && /* @__PURE__ */ (0, import_jsx_runtime164.jsx)("span", { className: "text-[10px] font-semibold uppercase tracking-widest text-gold", children: selectionStatus === "agent" ? "Selected by Agent" : "Selected by You" })
|
|
41487
41832
|
] })
|
|
41488
41833
|
] }),
|
|
41489
|
-
/* @__PURE__ */ (0,
|
|
41834
|
+
/* @__PURE__ */ (0, import_jsx_runtime164.jsx)(
|
|
41490
41835
|
"div",
|
|
41491
41836
|
{
|
|
41492
41837
|
className: "flex items-center gap-2 ml-3",
|
|
41493
41838
|
onClick: (e) => e.stopPropagation(),
|
|
41494
|
-
children: /* @__PURE__ */ (0,
|
|
41839
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime164.jsx)(
|
|
41495
41840
|
"button",
|
|
41496
41841
|
{
|
|
41497
41842
|
onClick: (e) => {
|
|
@@ -41502,7 +41847,7 @@ var CampaignConceptCard = import_react81.default.memo(
|
|
|
41502
41847
|
className: "p-2 bg-cardSurface hover:bg-gray200 text-cardText rounded-lg",
|
|
41503
41848
|
"aria-label": isOpen ? "Collapse" : "Expand",
|
|
41504
41849
|
title: isOpen ? "Collapse" : "Expand",
|
|
41505
|
-
children: /* @__PURE__ */ (0,
|
|
41850
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime164.jsx)(
|
|
41506
41851
|
ChevronDown,
|
|
41507
41852
|
{
|
|
41508
41853
|
className: `h-4 w-4 transition-transform ${isOpen ? "rotate-0" : "-rotate-90"}`
|
|
@@ -41515,7 +41860,7 @@ var CampaignConceptCard = import_react81.default.memo(
|
|
|
41515
41860
|
]
|
|
41516
41861
|
}
|
|
41517
41862
|
),
|
|
41518
|
-
/* @__PURE__ */ (0,
|
|
41863
|
+
/* @__PURE__ */ (0, import_jsx_runtime164.jsx)(import_framer_motion.AnimatePresence, { initial: false, children: isOpen && /* @__PURE__ */ (0, import_jsx_runtime164.jsx)(
|
|
41519
41864
|
import_framer_motion.motion.div,
|
|
41520
41865
|
{
|
|
41521
41866
|
initial: { height: 0, opacity: 0 },
|
|
@@ -41523,8 +41868,8 @@ var CampaignConceptCard = import_react81.default.memo(
|
|
|
41523
41868
|
exit: { height: 0, opacity: 0 },
|
|
41524
41869
|
transition: { duration: 0.2, ease: "easeIn" },
|
|
41525
41870
|
className: "overflow-hidden",
|
|
41526
|
-
children: /* @__PURE__ */ (0,
|
|
41527
|
-
/* @__PURE__ */ (0,
|
|
41871
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime164.jsxs)("div", { className: "px-3 py-2 w-full relative", children: [
|
|
41872
|
+
/* @__PURE__ */ (0, import_jsx_runtime164.jsx)(
|
|
41528
41873
|
"div",
|
|
41529
41874
|
{
|
|
41530
41875
|
className: "absolute left-[48px] top-[70px] bottom-[40px] w-[2px]",
|
|
@@ -41533,7 +41878,7 @@ var CampaignConceptCard = import_react81.default.memo(
|
|
|
41533
41878
|
}
|
|
41534
41879
|
}
|
|
41535
41880
|
),
|
|
41536
|
-
/* @__PURE__ */ (0,
|
|
41881
|
+
/* @__PURE__ */ (0, import_jsx_runtime164.jsx)(
|
|
41537
41882
|
FormCard,
|
|
41538
41883
|
{
|
|
41539
41884
|
...formCardProps,
|
|
@@ -41547,9 +41892,9 @@ var CampaignConceptCard = import_react81.default.memo(
|
|
|
41547
41892
|
hideTitle: true,
|
|
41548
41893
|
hideCopyButton: true,
|
|
41549
41894
|
className: "bg-transparent border-none shadow-none mb-0 p-0",
|
|
41550
|
-
footer: !effectiveIsLatest && selectionStatus ? /* @__PURE__ */ (0,
|
|
41551
|
-
/* @__PURE__ */ (0,
|
|
41552
|
-
/* @__PURE__ */ (0,
|
|
41895
|
+
footer: !effectiveIsLatest && selectionStatus ? /* @__PURE__ */ (0, import_jsx_runtime164.jsxs)("div", { className: "flex justify-end items-center gap-1 text-green-600 text-[10px] font-semibold py-2 pr-4", children: [
|
|
41896
|
+
/* @__PURE__ */ (0, import_jsx_runtime164.jsx)(CircleCheck, { className: "h-3.5 w-3.5" }),
|
|
41897
|
+
/* @__PURE__ */ (0, import_jsx_runtime164.jsx)("span", { children: selectionStatus === "agent" ? "Selected by Agent" : "Selected by You" })
|
|
41553
41898
|
] }) : formCardProps.footer
|
|
41554
41899
|
}
|
|
41555
41900
|
)
|
|
@@ -41565,14 +41910,14 @@ var CampaignConceptCard = import_react81.default.memo(
|
|
|
41565
41910
|
CampaignConceptCard.displayName = "CampaignConceptCard";
|
|
41566
41911
|
|
|
41567
41912
|
// src/molecules/creator-discovery/CreatorWidget/CreatorWidget.tsx
|
|
41568
|
-
var
|
|
41913
|
+
var import_react90 = require("react");
|
|
41569
41914
|
|
|
41570
41915
|
// src/molecules/creator-discovery/CreatorWidget/CreatorImageList.tsx
|
|
41571
|
-
var
|
|
41572
|
-
var
|
|
41916
|
+
var import_react83 = require("react");
|
|
41917
|
+
var import_jsx_runtime165 = require("react/jsx-runtime");
|
|
41573
41918
|
function useMediaQuery(query) {
|
|
41574
|
-
const [matches, setMatches] = (0,
|
|
41575
|
-
(0,
|
|
41919
|
+
const [matches, setMatches] = (0, import_react83.useState)(false);
|
|
41920
|
+
(0, import_react83.useEffect)(() => {
|
|
41576
41921
|
const media = window.matchMedia(query);
|
|
41577
41922
|
const listener = () => setMatches(media.matches);
|
|
41578
41923
|
listener();
|
|
@@ -41590,8 +41935,8 @@ function CreatorImage({
|
|
|
41590
41935
|
const processedCount = Math.floor(creatorsPercentage / 100 * totalCreators);
|
|
41591
41936
|
const isProcessed = idx < processedCount;
|
|
41592
41937
|
const isCurrentlyProcessing = idx === processedCount;
|
|
41593
|
-
return /* @__PURE__ */ (0,
|
|
41594
|
-
/* @__PURE__ */ (0,
|
|
41938
|
+
return /* @__PURE__ */ (0, import_jsx_runtime165.jsxs)("div", { className: "relative w-8 h-8", children: [
|
|
41939
|
+
/* @__PURE__ */ (0, import_jsx_runtime165.jsx)(
|
|
41595
41940
|
"img",
|
|
41596
41941
|
{
|
|
41597
41942
|
src: img,
|
|
@@ -41599,9 +41944,9 @@ function CreatorImage({
|
|
|
41599
41944
|
className: `w-8 h-8 rounded-full border-2 ${isProcessed ? "border-green-600" : "border-foreground"} object-cover transition-all duration-300`
|
|
41600
41945
|
}
|
|
41601
41946
|
),
|
|
41602
|
-
!isProcessed && /* @__PURE__ */ (0,
|
|
41603
|
-
isCurrentlyProcessing && /* @__PURE__ */ (0,
|
|
41604
|
-
/* @__PURE__ */ (0,
|
|
41947
|
+
!isProcessed && /* @__PURE__ */ (0, import_jsx_runtime165.jsx)("div", { className: "absolute inset-0 bg-black/50 rounded-full pointer-events-none" }),
|
|
41948
|
+
isCurrentlyProcessing && /* @__PURE__ */ (0, import_jsx_runtime165.jsxs)(import_jsx_runtime165.Fragment, { children: [
|
|
41949
|
+
/* @__PURE__ */ (0, import_jsx_runtime165.jsx)(
|
|
41605
41950
|
"div",
|
|
41606
41951
|
{
|
|
41607
41952
|
className: "absolute inset-0 bg-black/50 rounded-full pointer-events-none",
|
|
@@ -41617,7 +41962,7 @@ function CreatorImage({
|
|
|
41617
41962
|
}
|
|
41618
41963
|
}
|
|
41619
41964
|
),
|
|
41620
|
-
/* @__PURE__ */ (0,
|
|
41965
|
+
/* @__PURE__ */ (0, import_jsx_runtime165.jsx)("div", { className: "absolute inset-0 rounded-full border-2 border-[#9CA3AF]/30 pointer-events-none" })
|
|
41621
41966
|
] })
|
|
41622
41967
|
] });
|
|
41623
41968
|
}
|
|
@@ -41630,8 +41975,8 @@ function CreatorImageList({
|
|
|
41630
41975
|
const isMobile = useMediaQuery("(max-width: 640px)");
|
|
41631
41976
|
const isTablet = useMediaQuery("(min-width: 641px) and (max-width: 1024px)");
|
|
41632
41977
|
const visibleCount = isMobile ? 7 : isTablet ? 10 : isAgentOutput ? 6 : 15;
|
|
41633
|
-
return /* @__PURE__ */ (0,
|
|
41634
|
-
creatorImages.slice(0, visibleCount).map((img, idx) => /* @__PURE__ */ (0,
|
|
41978
|
+
return /* @__PURE__ */ (0, import_jsx_runtime165.jsxs)("div", { className: "flex flex-nowrap sm:flex-wrap -space-x-2 w-fit", children: [
|
|
41979
|
+
creatorImages.slice(0, visibleCount).map((img, idx) => /* @__PURE__ */ (0, import_jsx_runtime165.jsx)(
|
|
41635
41980
|
CreatorImage,
|
|
41636
41981
|
{
|
|
41637
41982
|
img,
|
|
@@ -41641,7 +41986,7 @@ function CreatorImageList({
|
|
|
41641
41986
|
},
|
|
41642
41987
|
idx
|
|
41643
41988
|
)),
|
|
41644
|
-
creatorLength > visibleCount && /* @__PURE__ */ (0,
|
|
41989
|
+
creatorLength > visibleCount && /* @__PURE__ */ (0, import_jsx_runtime165.jsxs)(
|
|
41645
41990
|
"div",
|
|
41646
41991
|
{
|
|
41647
41992
|
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"}`,
|
|
@@ -41655,28 +42000,28 @@ function CreatorImageList({
|
|
|
41655
42000
|
}
|
|
41656
42001
|
|
|
41657
42002
|
// src/molecules/creator-discovery/CreatorWidget/CreatorProgressBar.tsx
|
|
41658
|
-
var
|
|
42003
|
+
var import_react84 = require("react");
|
|
41659
42004
|
var import_framer_motion2 = require("framer-motion");
|
|
41660
|
-
var
|
|
42005
|
+
var import_jsx_runtime166 = require("react/jsx-runtime");
|
|
41661
42006
|
function truncateName(name, maxLength) {
|
|
41662
42007
|
if (!name || name.length <= maxLength) return name || "";
|
|
41663
42008
|
return name.substring(0, maxLength) + "...";
|
|
41664
42009
|
}
|
|
41665
42010
|
function ProgressBar({ overallPercentage }) {
|
|
41666
|
-
const [showTooltip, setShowTooltip] = (0,
|
|
41667
|
-
(0,
|
|
42011
|
+
const [showTooltip, setShowTooltip] = (0, import_react84.useState)(true);
|
|
42012
|
+
(0, import_react84.useEffect)(() => {
|
|
41668
42013
|
if (overallPercentage && overallPercentage >= 100) {
|
|
41669
42014
|
setShowTooltip(false);
|
|
41670
42015
|
}
|
|
41671
42016
|
}, [overallPercentage]);
|
|
41672
|
-
return /* @__PURE__ */ (0,
|
|
42017
|
+
return /* @__PURE__ */ (0, import_jsx_runtime166.jsx)("div", { className: "relative w-full", children: /* @__PURE__ */ (0, import_jsx_runtime166.jsx)("div", { className: "md:w-full dark:bg-purple500 bg-gray-200 rounded-full h-[6px]", children: /* @__PURE__ */ (0, import_jsx_runtime166.jsx)(
|
|
41673
42018
|
import_framer_motion2.motion.div,
|
|
41674
42019
|
{
|
|
41675
42020
|
className: "bg-purple100 h-[6px] rounded-full relative",
|
|
41676
42021
|
initial: { width: 0 },
|
|
41677
42022
|
animate: { width: `${overallPercentage}%` },
|
|
41678
42023
|
transition: { duration: 0.5, ease: "easeOut" },
|
|
41679
|
-
children: /* @__PURE__ */ (0,
|
|
42024
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime166.jsx)(import_framer_motion2.AnimatePresence, { children: showTooltip && /* @__PURE__ */ (0, import_jsx_runtime166.jsxs)(
|
|
41680
42025
|
import_framer_motion2.motion.div,
|
|
41681
42026
|
{
|
|
41682
42027
|
initial: { opacity: 0, y: 5 },
|
|
@@ -41686,9 +42031,9 @@ function ProgressBar({ overallPercentage }) {
|
|
|
41686
42031
|
children: [
|
|
41687
42032
|
overallPercentage ? Math.round(overallPercentage) : 0,
|
|
41688
42033
|
"%",
|
|
41689
|
-
/* @__PURE__ */ (0,
|
|
41690
|
-
/* @__PURE__ */ (0,
|
|
41691
|
-
/* @__PURE__ */ (0,
|
|
42034
|
+
/* @__PURE__ */ (0, import_jsx_runtime166.jsxs)("div", { className: "absolute left-1/2 top-full -translate-x-1/2", children: [
|
|
42035
|
+
/* @__PURE__ */ (0, import_jsx_runtime166.jsx)("div", { className: "w-0 h-0 border-l-[6px] border-r-[6px] border-t-[6px] border-transparent border-t-gray300" }),
|
|
42036
|
+
/* @__PURE__ */ (0, import_jsx_runtime166.jsx)("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" })
|
|
41692
42037
|
] })
|
|
41693
42038
|
]
|
|
41694
42039
|
}
|
|
@@ -41700,38 +42045,38 @@ function CreatorProgressBar({
|
|
|
41700
42045
|
statusDetails,
|
|
41701
42046
|
timeRemaining: _timeRemaining
|
|
41702
42047
|
}) {
|
|
41703
|
-
return /* @__PURE__ */ (0,
|
|
41704
|
-
/* @__PURE__ */ (0,
|
|
41705
|
-
/* @__PURE__ */ (0,
|
|
42048
|
+
return /* @__PURE__ */ (0, import_jsx_runtime166.jsxs)("div", { children: [
|
|
42049
|
+
/* @__PURE__ */ (0, import_jsx_runtime166.jsx)(ProgressBar, { overallPercentage: statusDetails?.overall_percentage }),
|
|
42050
|
+
/* @__PURE__ */ (0, import_jsx_runtime166.jsx)("div", { className: "dark:text-gray400 text-gray-500 text-xs mt-2", children: (statusDetails?.overall_percentage ?? 0) < 100 && /* @__PURE__ */ (0, import_jsx_runtime166.jsx)("span", { children: statusDetails?.thinking_message ? truncateName(statusDetails.thinking_message, 200) : "Processing..." }) })
|
|
41706
42051
|
] });
|
|
41707
42052
|
}
|
|
41708
42053
|
|
|
41709
42054
|
// src/molecules/creator-discovery/CreatorWidget/CreatorWidgetSkeleton.tsx
|
|
41710
|
-
var
|
|
42055
|
+
var import_jsx_runtime167 = require("react/jsx-runtime");
|
|
41711
42056
|
function CreatorWidgetSkeleton() {
|
|
41712
|
-
return /* @__PURE__ */ (0,
|
|
41713
|
-
/* @__PURE__ */ (0,
|
|
41714
|
-
/* @__PURE__ */ (0,
|
|
41715
|
-
/* @__PURE__ */ (0,
|
|
42057
|
+
return /* @__PURE__ */ (0, import_jsx_runtime167.jsx)("div", { className: "bg-background dark:bg-gray50 rounded-[25px] border border-gray300 overflow-hidden shadow-sm w-full relative", children: /* @__PURE__ */ (0, import_jsx_runtime167.jsxs)("div", { className: "p-4 md:p-6 space-y-4", children: [
|
|
42058
|
+
/* @__PURE__ */ (0, import_jsx_runtime167.jsx)("div", { className: "flex flex-col md:flex-row md:items-center md:justify-between gap-4 relative", children: /* @__PURE__ */ (0, import_jsx_runtime167.jsxs)("div", { className: "flex flex-col gap-2 md:gap-4", children: [
|
|
42059
|
+
/* @__PURE__ */ (0, import_jsx_runtime167.jsx)("div", { className: "w-40 h-6 bg-purple200 rounded-md animate-pulse" }),
|
|
42060
|
+
/* @__PURE__ */ (0, import_jsx_runtime167.jsx)("div", { className: "w-64 h-7 bg-gray200 dark:bg-gray300 rounded animate-pulse" })
|
|
41716
42061
|
] }) }),
|
|
41717
|
-
/* @__PURE__ */ (0,
|
|
41718
|
-
/* @__PURE__ */ (0,
|
|
41719
|
-
/* @__PURE__ */ (0,
|
|
42062
|
+
/* @__PURE__ */ (0, import_jsx_runtime167.jsxs)("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: [
|
|
42063
|
+
/* @__PURE__ */ (0, import_jsx_runtime167.jsxs)("div", { className: "flex flex-col gap-4 md:gap-6 min-w-0", children: [
|
|
42064
|
+
/* @__PURE__ */ (0, import_jsx_runtime167.jsx)("div", { className: "flex -space-x-2", children: Array.from({ length: 10 }).map((_, idx) => /* @__PURE__ */ (0, import_jsx_runtime167.jsx)(
|
|
41720
42065
|
"div",
|
|
41721
42066
|
{
|
|
41722
42067
|
className: "w-8 h-8 md:w-10 md:h-10 rounded-full border-2 border-gray300 bg-gray200 animate-pulse"
|
|
41723
42068
|
},
|
|
41724
42069
|
idx
|
|
41725
42070
|
)) }),
|
|
41726
|
-
/* @__PURE__ */ (0,
|
|
42071
|
+
/* @__PURE__ */ (0, import_jsx_runtime167.jsx)("div", { className: "space-y-2", children: /* @__PURE__ */ (0, import_jsx_runtime167.jsx)("div", { className: "w-full max-w-xs bg-gray200 rounded-full h-2 animate-pulse" }) })
|
|
41727
42072
|
] }),
|
|
41728
|
-
/* @__PURE__ */ (0,
|
|
42073
|
+
/* @__PURE__ */ (0, import_jsx_runtime167.jsx)("div", { className: "px-6 py-2 bg-gray200 rounded-[30px] animate-pulse h-10 w-48" })
|
|
41729
42074
|
] })
|
|
41730
42075
|
] }) });
|
|
41731
42076
|
}
|
|
41732
42077
|
|
|
41733
42078
|
// src/molecules/creator-discovery/CreatorWidget/CreatorCompactView.tsx
|
|
41734
|
-
var
|
|
42079
|
+
var import_jsx_runtime168 = require("react/jsx-runtime");
|
|
41735
42080
|
function CreatorCompactView({
|
|
41736
42081
|
versions,
|
|
41737
42082
|
selectedVersion,
|
|
@@ -41748,16 +42093,16 @@ function CreatorCompactView({
|
|
|
41748
42093
|
const isComplete = versionStatus === "completed" || versionStatus === "complete";
|
|
41749
42094
|
const statusTitle = isComplete ? "Creator Search Complete" : versionStatus === "failed" ? "Creator Search Failed" : "Creator Search Processing";
|
|
41750
42095
|
if (isLoading) {
|
|
41751
|
-
return /* @__PURE__ */ (0,
|
|
42096
|
+
return /* @__PURE__ */ (0, import_jsx_runtime168.jsx)(CreatorWidgetSkeleton, {});
|
|
41752
42097
|
}
|
|
41753
|
-
return /* @__PURE__ */ (0,
|
|
41754
|
-
/* @__PURE__ */ (0,
|
|
41755
|
-
/* @__PURE__ */ (0,
|
|
41756
|
-
/* @__PURE__ */ (0,
|
|
41757
|
-
/* @__PURE__ */ (0,
|
|
42098
|
+
return /* @__PURE__ */ (0, import_jsx_runtime168.jsx)("div", { className: "bg-background dark:bg-gray100 rounded-[25px] border border-gray300 overflow-hidden shadow-sm w-full relative", children: /* @__PURE__ */ (0, import_jsx_runtime168.jsxs)("div", { className: "p-4 md:p-6 space-y-4", children: [
|
|
42099
|
+
/* @__PURE__ */ (0, import_jsx_runtime168.jsxs)("div", { className: "flex flex-col md:flex-row md:items-center md:justify-between gap-4 relative", children: [
|
|
42100
|
+
/* @__PURE__ */ (0, import_jsx_runtime168.jsxs)("div", { className: "flex flex-col gap-2 md:gap-4", children: [
|
|
42101
|
+
/* @__PURE__ */ (0, import_jsx_runtime168.jsx)("h4", { className: "w-fit rounded-md bg-purple200 px-2 py-[4px] text-xs font-medium text-purpleText", children: "VERIFIED CREATORS LIST" }),
|
|
42102
|
+
/* @__PURE__ */ (0, import_jsx_runtime168.jsx)("h3", { className: "text-gray900 md:text-lg font-bold", children: statusTitle })
|
|
41758
42103
|
] }),
|
|
41759
|
-
versions.length > 1 && /* @__PURE__ */ (0,
|
|
41760
|
-
/* @__PURE__ */ (0,
|
|
42104
|
+
versions.length > 1 && /* @__PURE__ */ (0, import_jsx_runtime168.jsx)("div", { className: "relative md:self-start", children: /* @__PURE__ */ (0, import_jsx_runtime168.jsxs)(DropdownMenu, { children: [
|
|
42105
|
+
/* @__PURE__ */ (0, import_jsx_runtime168.jsxs)(
|
|
41761
42106
|
DropdownMenuTrigger,
|
|
41762
42107
|
{
|
|
41763
42108
|
disabled: !isComplete,
|
|
@@ -41765,11 +42110,11 @@ function CreatorCompactView({
|
|
|
41765
42110
|
children: [
|
|
41766
42111
|
"Version ",
|
|
41767
42112
|
selectedVersion ?? "-",
|
|
41768
|
-
/* @__PURE__ */ (0,
|
|
42113
|
+
/* @__PURE__ */ (0, import_jsx_runtime168.jsx)(ChevronDown, { className: "w-3 h-3 md:w-4 md:h-4 transition-transform" })
|
|
41769
42114
|
]
|
|
41770
42115
|
}
|
|
41771
42116
|
),
|
|
41772
|
-
/* @__PURE__ */ (0,
|
|
42117
|
+
/* @__PURE__ */ (0, import_jsx_runtime168.jsx)(DropdownMenuContent, { className: "bg-gray25 border-2 border-gray400 min-w-[120px] max-h-[150px] overflow-y-auto", children: versions.map((v) => /* @__PURE__ */ (0, import_jsx_runtime168.jsxs)(
|
|
41773
42118
|
DropdownMenuItem,
|
|
41774
42119
|
{
|
|
41775
42120
|
onClick: () => onVersionSelect(v),
|
|
@@ -41783,12 +42128,12 @@ function CreatorCompactView({
|
|
|
41783
42128
|
)) })
|
|
41784
42129
|
] }) })
|
|
41785
42130
|
] }),
|
|
41786
|
-
/* @__PURE__ */ (0,
|
|
41787
|
-
/* @__PURE__ */ (0,
|
|
41788
|
-
/* @__PURE__ */ (0,
|
|
41789
|
-
] }) : /* @__PURE__ */ (0,
|
|
41790
|
-
/* @__PURE__ */ (0,
|
|
41791
|
-
/* @__PURE__ */ (0,
|
|
42131
|
+
/* @__PURE__ */ (0, import_jsx_runtime168.jsx)("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__ */ (0, import_jsx_runtime168.jsxs)("div", { className: "flex flex-col items-center justify-center w-full py-6 md:py-8 text-center text-red-500", children: [
|
|
42132
|
+
/* @__PURE__ */ (0, import_jsx_runtime168.jsx)("p", { className: "text-base md:text-lg font-semibold mb-2", children: "Creator Search Failed" }),
|
|
42133
|
+
/* @__PURE__ */ (0, import_jsx_runtime168.jsx)("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." })
|
|
42134
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime168.jsxs)(import_jsx_runtime168.Fragment, { children: [
|
|
42135
|
+
/* @__PURE__ */ (0, import_jsx_runtime168.jsxs)("div", { className: "flex flex-col gap-4 md:gap-6 min-w-0", children: [
|
|
42136
|
+
/* @__PURE__ */ (0, import_jsx_runtime168.jsx)(
|
|
41792
42137
|
CreatorImageList,
|
|
41793
42138
|
{
|
|
41794
42139
|
creatorImages,
|
|
@@ -41797,7 +42142,7 @@ function CreatorCompactView({
|
|
|
41797
42142
|
initialCreatorsPercentage: statusDetails?.social_fetch_percentage
|
|
41798
42143
|
}
|
|
41799
42144
|
),
|
|
41800
|
-
/* @__PURE__ */ (0,
|
|
42145
|
+
/* @__PURE__ */ (0, import_jsx_runtime168.jsx)(
|
|
41801
42146
|
CreatorProgressBar,
|
|
41802
42147
|
{
|
|
41803
42148
|
statusDetails,
|
|
@@ -41805,7 +42150,7 @@ function CreatorCompactView({
|
|
|
41805
42150
|
}
|
|
41806
42151
|
)
|
|
41807
42152
|
] }),
|
|
41808
|
-
/* @__PURE__ */ (0,
|
|
42153
|
+
/* @__PURE__ */ (0, import_jsx_runtime168.jsxs)(
|
|
41809
42154
|
"button",
|
|
41810
42155
|
{
|
|
41811
42156
|
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"}`,
|
|
@@ -41815,7 +42160,7 @@ function CreatorCompactView({
|
|
|
41815
42160
|
"View ",
|
|
41816
42161
|
creatorLength,
|
|
41817
42162
|
" Verified Creators",
|
|
41818
|
-
/* @__PURE__ */ (0,
|
|
42163
|
+
/* @__PURE__ */ (0, import_jsx_runtime168.jsx)(Triangle, { className: "w-3 h-3 md:w-4 md:h-4 rotate-90 font-bold" })
|
|
41819
42164
|
]
|
|
41820
42165
|
}
|
|
41821
42166
|
)
|
|
@@ -41824,7 +42169,7 @@ function CreatorCompactView({
|
|
|
41824
42169
|
}
|
|
41825
42170
|
|
|
41826
42171
|
// src/molecules/creator-discovery/CreatorWidget/CreatorExpandedPanel.tsx
|
|
41827
|
-
var
|
|
42172
|
+
var import_react88 = require("react");
|
|
41828
42173
|
var import_react_dom2 = __toESM(require("react-dom"), 1);
|
|
41829
42174
|
var import_framer_motion5 = require("framer-motion");
|
|
41830
42175
|
|
|
@@ -42106,7 +42451,7 @@ var normalizeToIso2 = (input) => {
|
|
|
42106
42451
|
};
|
|
42107
42452
|
|
|
42108
42453
|
// src/molecules/creator-discovery/CreatorWidget/EngagedAudienceDemographics.tsx
|
|
42109
|
-
var
|
|
42454
|
+
var import_jsx_runtime169 = require("react/jsx-runtime");
|
|
42110
42455
|
function EngagedAudienceDemographics({
|
|
42111
42456
|
audienceDemographics
|
|
42112
42457
|
}) {
|
|
@@ -42124,31 +42469,31 @@ function EngagedAudienceDemographics({
|
|
|
42124
42469
|
if (hasAges) columns.push("1fr");
|
|
42125
42470
|
if (hasGenders) columns.push("0.4fr");
|
|
42126
42471
|
const gridTemplate = columns.join(" ");
|
|
42127
|
-
return /* @__PURE__ */ (0,
|
|
42128
|
-
/* @__PURE__ */ (0,
|
|
42129
|
-
/* @__PURE__ */ (0,
|
|
42472
|
+
return /* @__PURE__ */ (0, import_jsx_runtime169.jsxs)("div", { className: "flex flex-col gap-4", children: [
|
|
42473
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.jsx)("div", { className: "text-purpleText text-xs", children: /* @__PURE__ */ (0, import_jsx_runtime169.jsx)("span", { className: "rounded-md bg-purple200 px-2 py-[4px] font-sans", children: "ENGAGED AUDIENCE" }) }),
|
|
42474
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.jsxs)(
|
|
42130
42475
|
"div",
|
|
42131
42476
|
{
|
|
42132
42477
|
className: "flex flex-col sm:col-span-3 sm:grid gap-6",
|
|
42133
42478
|
style: { gridTemplateColumns: gridTemplate },
|
|
42134
42479
|
children: [
|
|
42135
|
-
hasCities && /* @__PURE__ */ (0,
|
|
42136
|
-
/* @__PURE__ */ (0,
|
|
42137
|
-
/* @__PURE__ */ (0,
|
|
42138
|
-
([code, value]) => /* @__PURE__ */ (0,
|
|
42480
|
+
hasCities && /* @__PURE__ */ (0, import_jsx_runtime169.jsxs)("div", { children: [
|
|
42481
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.jsx)("h4", { className: "text-xs text-gray700 mb-3", children: "Cities" }),
|
|
42482
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.jsx)("div", { className: "flex flex-col gap-3", children: Object.entries(audienceDemographics?.cities || {}).map(
|
|
42483
|
+
([code, value]) => /* @__PURE__ */ (0, import_jsx_runtime169.jsxs)(
|
|
42139
42484
|
"div",
|
|
42140
42485
|
{
|
|
42141
42486
|
className: "flex items-center gap-3 text-sm text-gray700",
|
|
42142
42487
|
children: [
|
|
42143
|
-
/* @__PURE__ */ (0,
|
|
42144
|
-
/* @__PURE__ */ (0,
|
|
42488
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.jsx)("span", { className: "w-[90px]", children: /* @__PURE__ */ (0, import_jsx_runtime169.jsx)("div", { className: "flex gap-1 items-center", children: /* @__PURE__ */ (0, import_jsx_runtime169.jsx)("span", { children: code.split(",")[0] }) }) }),
|
|
42489
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.jsx)("div", { className: "flex-1 bg-gray200 h-[6px] rounded-full overflow-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime169.jsx)(
|
|
42145
42490
|
"div",
|
|
42146
42491
|
{
|
|
42147
42492
|
className: "h-[6px] bg-purple100 rounded-full",
|
|
42148
42493
|
style: { width: `${value}%` }
|
|
42149
42494
|
}
|
|
42150
42495
|
) }),
|
|
42151
|
-
/* @__PURE__ */ (0,
|
|
42496
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.jsxs)("span", { className: "w-10 text-right font-medium", children: [
|
|
42152
42497
|
value,
|
|
42153
42498
|
"%"
|
|
42154
42499
|
] })
|
|
@@ -42158,29 +42503,29 @@ function EngagedAudienceDemographics({
|
|
|
42158
42503
|
)
|
|
42159
42504
|
) })
|
|
42160
42505
|
] }),
|
|
42161
|
-
hasCountries && /* @__PURE__ */ (0,
|
|
42162
|
-
/* @__PURE__ */ (0,
|
|
42163
|
-
/* @__PURE__ */ (0,
|
|
42506
|
+
hasCountries && /* @__PURE__ */ (0, import_jsx_runtime169.jsxs)("div", { children: [
|
|
42507
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.jsx)("h4", { className: "text-xs text-gray700 mb-3", children: "Countries" }),
|
|
42508
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.jsx)("div", { className: "flex flex-col gap-3", children: Object.entries(audienceDemographics?.countries || {}).map(
|
|
42164
42509
|
([code, value]) => {
|
|
42165
42510
|
const iso2 = normalizeToIso2(code);
|
|
42166
42511
|
const meta = codeToMeta[iso2];
|
|
42167
|
-
return /* @__PURE__ */ (0,
|
|
42512
|
+
return /* @__PURE__ */ (0, import_jsx_runtime169.jsxs)(
|
|
42168
42513
|
"div",
|
|
42169
42514
|
{
|
|
42170
42515
|
className: "flex items-center gap-3 text-sm text-gray700",
|
|
42171
42516
|
children: [
|
|
42172
|
-
/* @__PURE__ */ (0,
|
|
42173
|
-
/* @__PURE__ */ (0,
|
|
42174
|
-
/* @__PURE__ */ (0,
|
|
42517
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.jsx)("span", { className: "w-10", children: /* @__PURE__ */ (0, import_jsx_runtime169.jsxs)("div", { className: "flex gap-1 items-center", children: [
|
|
42518
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.jsx)("span", { className: "text-base", children: meta?.flag }),
|
|
42519
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.jsx)("span", { children: code })
|
|
42175
42520
|
] }) }),
|
|
42176
|
-
/* @__PURE__ */ (0,
|
|
42521
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.jsx)("div", { className: "flex-1 bg-gray200 h-[6px] rounded-full overflow-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime169.jsx)(
|
|
42177
42522
|
"div",
|
|
42178
42523
|
{
|
|
42179
42524
|
className: "h-[6px] bg-purple100 rounded-full",
|
|
42180
42525
|
style: { width: `${value}%` }
|
|
42181
42526
|
}
|
|
42182
42527
|
) }),
|
|
42183
|
-
/* @__PURE__ */ (0,
|
|
42528
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.jsxs)("span", { className: "w-10 text-right font-medium", children: [
|
|
42184
42529
|
value,
|
|
42185
42530
|
"%"
|
|
42186
42531
|
] })
|
|
@@ -42191,23 +42536,23 @@ function EngagedAudienceDemographics({
|
|
|
42191
42536
|
}
|
|
42192
42537
|
) })
|
|
42193
42538
|
] }),
|
|
42194
|
-
hasAges && /* @__PURE__ */ (0,
|
|
42195
|
-
/* @__PURE__ */ (0,
|
|
42196
|
-
/* @__PURE__ */ (0,
|
|
42197
|
-
([ageRange, value]) => /* @__PURE__ */ (0,
|
|
42539
|
+
hasAges && /* @__PURE__ */ (0, import_jsx_runtime169.jsxs)("div", { children: [
|
|
42540
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.jsx)("h4", { className: "text-xs text-gray700 mb-3", children: "Ages" }),
|
|
42541
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.jsx)("div", { className: "flex flex-col gap-3", children: Object.entries(audienceDemographics?.ages || {}).map(
|
|
42542
|
+
([ageRange, value]) => /* @__PURE__ */ (0, import_jsx_runtime169.jsxs)(
|
|
42198
42543
|
"div",
|
|
42199
42544
|
{
|
|
42200
42545
|
className: "flex items-center gap-3 text-sm text-gray700",
|
|
42201
42546
|
children: [
|
|
42202
|
-
/* @__PURE__ */ (0,
|
|
42203
|
-
/* @__PURE__ */ (0,
|
|
42547
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.jsx)("span", { className: "w-12", children: ageRange }),
|
|
42548
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.jsx)("div", { className: "flex-1 bg-gray200 h-[6px] rounded-full overflow-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime169.jsx)(
|
|
42204
42549
|
"div",
|
|
42205
42550
|
{
|
|
42206
42551
|
className: "h-[6px] bg-purple100 rounded-full",
|
|
42207
42552
|
style: { width: `${value}%` }
|
|
42208
42553
|
}
|
|
42209
42554
|
) }),
|
|
42210
|
-
/* @__PURE__ */ (0,
|
|
42555
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.jsxs)("span", { className: "w-10 text-right font-medium", children: [
|
|
42211
42556
|
value,
|
|
42212
42557
|
"%"
|
|
42213
42558
|
] })
|
|
@@ -42217,20 +42562,20 @@ function EngagedAudienceDemographics({
|
|
|
42217
42562
|
)
|
|
42218
42563
|
) })
|
|
42219
42564
|
] }),
|
|
42220
|
-
hasGenders && /* @__PURE__ */ (0,
|
|
42221
|
-
([gender, value]) => /* @__PURE__ */ (0,
|
|
42565
|
+
hasGenders && /* @__PURE__ */ (0, import_jsx_runtime169.jsx)("div", { className: "flex flex-col justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime169.jsx)("div", { className: "flex sm:flex-col gap-3", children: Object.entries(audienceDemographics?.genders || {}).map(
|
|
42566
|
+
([gender, value]) => /* @__PURE__ */ (0, import_jsx_runtime169.jsxs)(
|
|
42222
42567
|
"div",
|
|
42223
42568
|
{
|
|
42224
42569
|
className: "flex flex-col justify-center text-sm",
|
|
42225
42570
|
children: [
|
|
42226
|
-
/* @__PURE__ */ (0,
|
|
42227
|
-
gender === "female" ? /* @__PURE__ */ (0,
|
|
42228
|
-
/* @__PURE__ */ (0,
|
|
42571
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.jsxs)("div", { className: "flex items-center gap-1 mb-1", children: [
|
|
42572
|
+
gender === "female" ? /* @__PURE__ */ (0, import_jsx_runtime169.jsx)(Venus, { className: "text-red-500", strokeWidth: 3 }) : /* @__PURE__ */ (0, import_jsx_runtime169.jsx)(Mars, { className: "text-blue-500", strokeWidth: 3 }),
|
|
42573
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.jsxs)("span", { className: "capitalize text-gray800 text-xl", children: [
|
|
42229
42574
|
value,
|
|
42230
42575
|
"%"
|
|
42231
42576
|
] })
|
|
42232
42577
|
] }),
|
|
42233
|
-
/* @__PURE__ */ (0,
|
|
42578
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.jsx)("span", { className: "text-lg text-gray700", children: gender.charAt(0).toUpperCase() + gender.slice(1) })
|
|
42234
42579
|
]
|
|
42235
42580
|
},
|
|
42236
42581
|
gender
|
|
@@ -42243,40 +42588,40 @@ function EngagedAudienceDemographics({
|
|
|
42243
42588
|
}
|
|
42244
42589
|
|
|
42245
42590
|
// src/molecules/creator-discovery/CreatorWidget/PlatformIcons.tsx
|
|
42246
|
-
var
|
|
42591
|
+
var import_jsx_runtime170 = require("react/jsx-runtime");
|
|
42247
42592
|
function InstagramIcon({ className }) {
|
|
42248
|
-
return /* @__PURE__ */ (0,
|
|
42593
|
+
return /* @__PURE__ */ (0, import_jsx_runtime170.jsx)(
|
|
42249
42594
|
"svg",
|
|
42250
42595
|
{
|
|
42251
42596
|
className,
|
|
42252
42597
|
viewBox: "0 0 24 24",
|
|
42253
42598
|
fill: "currentColor",
|
|
42254
42599
|
xmlns: "http://www.w3.org/2000/svg",
|
|
42255
|
-
children: /* @__PURE__ */ (0,
|
|
42600
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime170.jsx)("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" })
|
|
42256
42601
|
}
|
|
42257
42602
|
);
|
|
42258
42603
|
}
|
|
42259
42604
|
function YouTubeIcon({ className }) {
|
|
42260
|
-
return /* @__PURE__ */ (0,
|
|
42605
|
+
return /* @__PURE__ */ (0, import_jsx_runtime170.jsx)(
|
|
42261
42606
|
"svg",
|
|
42262
42607
|
{
|
|
42263
42608
|
className,
|
|
42264
42609
|
viewBox: "0 0 24 24",
|
|
42265
42610
|
fill: "currentColor",
|
|
42266
42611
|
xmlns: "http://www.w3.org/2000/svg",
|
|
42267
|
-
children: /* @__PURE__ */ (0,
|
|
42612
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime170.jsx)("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" })
|
|
42268
42613
|
}
|
|
42269
42614
|
);
|
|
42270
42615
|
}
|
|
42271
42616
|
function TikTokIcon3({ className }) {
|
|
42272
|
-
return /* @__PURE__ */ (0,
|
|
42617
|
+
return /* @__PURE__ */ (0, import_jsx_runtime170.jsx)(
|
|
42273
42618
|
"svg",
|
|
42274
42619
|
{
|
|
42275
42620
|
className,
|
|
42276
42621
|
viewBox: "0 0 24 24",
|
|
42277
42622
|
fill: "currentColor",
|
|
42278
42623
|
xmlns: "http://www.w3.org/2000/svg",
|
|
42279
|
-
children: /* @__PURE__ */ (0,
|
|
42624
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime170.jsx)("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" })
|
|
42280
42625
|
}
|
|
42281
42626
|
);
|
|
42282
42627
|
}
|
|
@@ -42310,8 +42655,8 @@ function getPlatformIconColor(platform) {
|
|
|
42310
42655
|
}
|
|
42311
42656
|
|
|
42312
42657
|
// src/molecules/creator-discovery/CreatorWidget/PostCard.tsx
|
|
42313
|
-
var
|
|
42314
|
-
var
|
|
42658
|
+
var import_react85 = require("react");
|
|
42659
|
+
var import_jsx_runtime171 = require("react/jsx-runtime");
|
|
42315
42660
|
var formatFollowerCount = (count) => {
|
|
42316
42661
|
if (count >= 1e6) {
|
|
42317
42662
|
const millions = count / 1e6;
|
|
@@ -42324,15 +42669,15 @@ var formatFollowerCount = (count) => {
|
|
|
42324
42669
|
return Math.floor(count).toString();
|
|
42325
42670
|
};
|
|
42326
42671
|
function PostCard({ post, platformUsername }) {
|
|
42327
|
-
const [expanded, setExpanded] = (0,
|
|
42328
|
-
const [errored, setErrored] = (0,
|
|
42672
|
+
const [expanded, setExpanded] = (0, import_react85.useState)(false);
|
|
42673
|
+
const [errored, setErrored] = (0, import_react85.useState)(false);
|
|
42329
42674
|
const thumbnail = post.thumbnail_url || post.thumbnail || post.image || "";
|
|
42330
42675
|
const likes = post.engagement?.likes ?? post.likes ?? null;
|
|
42331
42676
|
const comments = post.engagement?.comments ?? post.comments ?? null;
|
|
42332
42677
|
const views = post.engagement?.views ?? post.engagement?.plays ?? post.views ?? post.plays ?? null;
|
|
42333
42678
|
const impressions = post.impressions ?? null;
|
|
42334
42679
|
const reach = post.reach ?? null;
|
|
42335
|
-
return /* @__PURE__ */ (0,
|
|
42680
|
+
return /* @__PURE__ */ (0, import_jsx_runtime171.jsxs)(
|
|
42336
42681
|
"div",
|
|
42337
42682
|
{
|
|
42338
42683
|
className: "rounded-xl overflow-hidden border border-gray500 bg-transparent shadow-sm cursor-pointer",
|
|
@@ -42341,7 +42686,7 @@ function PostCard({ post, platformUsername }) {
|
|
|
42341
42686
|
window.open(post.url, "_blank", "noopener,noreferrer");
|
|
42342
42687
|
},
|
|
42343
42688
|
children: [
|
|
42344
|
-
/* @__PURE__ */ (0,
|
|
42689
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsx)("div", { className: "w-full aspect-square relative bg-gray25", children: thumbnail && !errored ? /* @__PURE__ */ (0, import_jsx_runtime171.jsx)(
|
|
42345
42690
|
"img",
|
|
42346
42691
|
{
|
|
42347
42692
|
src: thumbnail,
|
|
@@ -42349,55 +42694,55 @@ function PostCard({ post, platformUsername }) {
|
|
|
42349
42694
|
className: "w-full h-full object-cover",
|
|
42350
42695
|
onError: () => setErrored(true)
|
|
42351
42696
|
}
|
|
42352
|
-
) : /* @__PURE__ */ (0,
|
|
42353
|
-
/* @__PURE__ */ (0,
|
|
42354
|
-
/* @__PURE__ */ (0,
|
|
42355
|
-
likes !== null && /* @__PURE__ */ (0,
|
|
42356
|
-
/* @__PURE__ */ (0,
|
|
42697
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime171.jsx)("div", { className: "w-full h-full flex items-center justify-center text-gray500 text-sm", children: "No preview" }) }),
|
|
42698
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsxs)("div", { className: "p-3", children: [
|
|
42699
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsxs)("div", { className: "flex items-center gap-4 text-sm text-gray600 mb-2", children: [
|
|
42700
|
+
likes !== null && /* @__PURE__ */ (0, import_jsx_runtime171.jsxs)("div", { className: "flex items-center gap-1", children: [
|
|
42701
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsx)("span", { children: formatFollowerCount(likes) }),
|
|
42357
42702
|
" ",
|
|
42358
|
-
/* @__PURE__ */ (0,
|
|
42703
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsx)(Heart, { size: 14 })
|
|
42359
42704
|
] }),
|
|
42360
|
-
comments !== null && /* @__PURE__ */ (0,
|
|
42361
|
-
/* @__PURE__ */ (0,
|
|
42705
|
+
comments !== null && /* @__PURE__ */ (0, import_jsx_runtime171.jsxs)("div", { className: "flex items-center gap-1", children: [
|
|
42706
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsx)("span", { children: formatFollowerCount(comments) }),
|
|
42362
42707
|
" ",
|
|
42363
|
-
/* @__PURE__ */ (0,
|
|
42708
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsx)(MessageCircle, { size: 14 })
|
|
42364
42709
|
] }),
|
|
42365
|
-
views !== null && /* @__PURE__ */ (0,
|
|
42366
|
-
/* @__PURE__ */ (0,
|
|
42710
|
+
views !== null && /* @__PURE__ */ (0, import_jsx_runtime171.jsxs)("div", { className: "flex items-center gap-1", children: [
|
|
42711
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsx)("span", { children: formatFollowerCount(views) }),
|
|
42367
42712
|
" ",
|
|
42368
|
-
/* @__PURE__ */ (0,
|
|
42713
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsx)(Eye, { size: 14 })
|
|
42369
42714
|
] })
|
|
42370
42715
|
] }),
|
|
42371
|
-
/* @__PURE__ */ (0,
|
|
42372
|
-
impressions !== null && /* @__PURE__ */ (0,
|
|
42373
|
-
/* @__PURE__ */ (0,
|
|
42716
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsxs)("div", { className: "flex gap-4 text-sm text-gray800 mb-2", children: [
|
|
42717
|
+
impressions !== null && /* @__PURE__ */ (0, import_jsx_runtime171.jsxs)("div", { children: [
|
|
42718
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsx)("span", { className: "text-gray500 font-bold", children: formatFollowerCount(impressions) }),
|
|
42374
42719
|
" ",
|
|
42375
42720
|
"est.Impressions"
|
|
42376
42721
|
] }),
|
|
42377
|
-
reach !== null && /* @__PURE__ */ (0,
|
|
42378
|
-
/* @__PURE__ */ (0,
|
|
42722
|
+
reach !== null && /* @__PURE__ */ (0, import_jsx_runtime171.jsxs)("div", { children: [
|
|
42723
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsx)("span", { className: "text-gray500 font-bold", children: formatFollowerCount(reach) }),
|
|
42379
42724
|
" ",
|
|
42380
42725
|
"est.Reach"
|
|
42381
42726
|
] })
|
|
42382
42727
|
] }),
|
|
42383
|
-
/* @__PURE__ */ (0,
|
|
42384
|
-
platformUsername && /* @__PURE__ */ (0,
|
|
42728
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsxs)("div", { className: "text-sm mb-1", children: [
|
|
42729
|
+
platformUsername && /* @__PURE__ */ (0, import_jsx_runtime171.jsxs)("div", { className: "text-md font-semibold text-gray500", children: [
|
|
42385
42730
|
"@",
|
|
42386
42731
|
platformUsername
|
|
42387
42732
|
] }),
|
|
42388
42733
|
["instagram", "tiktok"].includes(
|
|
42389
42734
|
post.platform?.toLowerCase() || ""
|
|
42390
|
-
) ? /* @__PURE__ */ (0,
|
|
42735
|
+
) ? /* @__PURE__ */ (0, import_jsx_runtime171.jsx)(import_jsx_runtime171.Fragment, { children: (() => {
|
|
42391
42736
|
const text = post.title || post.description || "";
|
|
42392
|
-
return /* @__PURE__ */ (0,
|
|
42393
|
-
/* @__PURE__ */ (0,
|
|
42737
|
+
return /* @__PURE__ */ (0, import_jsx_runtime171.jsxs)(import_jsx_runtime171.Fragment, { children: [
|
|
42738
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsx)(
|
|
42394
42739
|
"div",
|
|
42395
42740
|
{
|
|
42396
42741
|
className: `text-gray900 font-light mt-2 text-sm ${!expanded ? "line-clamp-3" : ""}`,
|
|
42397
42742
|
children: text
|
|
42398
42743
|
}
|
|
42399
42744
|
),
|
|
42400
|
-
text.length > 100 && /* @__PURE__ */ (0,
|
|
42745
|
+
text.length > 100 && /* @__PURE__ */ (0, import_jsx_runtime171.jsx)(
|
|
42401
42746
|
"button",
|
|
42402
42747
|
{
|
|
42403
42748
|
onClick: (e) => {
|
|
@@ -42409,9 +42754,9 @@ function PostCard({ post, platformUsername }) {
|
|
|
42409
42754
|
}
|
|
42410
42755
|
)
|
|
42411
42756
|
] });
|
|
42412
|
-
})() }) : /* @__PURE__ */ (0,
|
|
42413
|
-
post.title && /* @__PURE__ */ (0,
|
|
42414
|
-
post.description && /* @__PURE__ */ (0,
|
|
42757
|
+
})() }) : /* @__PURE__ */ (0, import_jsx_runtime171.jsxs)(import_jsx_runtime171.Fragment, { children: [
|
|
42758
|
+
post.title && /* @__PURE__ */ (0, import_jsx_runtime171.jsx)("div", { className: "text-gray900 font-light", children: post.title }),
|
|
42759
|
+
post.description && /* @__PURE__ */ (0, import_jsx_runtime171.jsx)(
|
|
42415
42760
|
"div",
|
|
42416
42761
|
{
|
|
42417
42762
|
className: "mt-2 text-sm text-gray900 overflow-hidden font-light",
|
|
@@ -42419,7 +42764,7 @@ function PostCard({ post, platformUsername }) {
|
|
|
42419
42764
|
children: post.description
|
|
42420
42765
|
}
|
|
42421
42766
|
),
|
|
42422
|
-
post.description && post.description.length > 200 && /* @__PURE__ */ (0,
|
|
42767
|
+
post.description && post.description.length > 200 && /* @__PURE__ */ (0, import_jsx_runtime171.jsx)(
|
|
42423
42768
|
"button",
|
|
42424
42769
|
{
|
|
42425
42770
|
onClick: (e) => {
|
|
@@ -42439,7 +42784,7 @@ function PostCard({ post, platformUsername }) {
|
|
|
42439
42784
|
}
|
|
42440
42785
|
|
|
42441
42786
|
// src/molecules/creator-discovery/CreatorWidget/PlatformPostsSection.tsx
|
|
42442
|
-
var
|
|
42787
|
+
var import_jsx_runtime172 = require("react/jsx-runtime");
|
|
42443
42788
|
var formatFollowerCount2 = (count) => {
|
|
42444
42789
|
if (count >= 1e6) {
|
|
42445
42790
|
const millions = count / 1e6;
|
|
@@ -42463,18 +42808,18 @@ function PlatformMetricsBanner({
|
|
|
42463
42808
|
const platformName = getPlatformName(platform);
|
|
42464
42809
|
const bgColor = getPlatformBgColor(platform);
|
|
42465
42810
|
const IconComponent = getPlatformIcon(platform);
|
|
42466
|
-
return /* @__PURE__ */ (0,
|
|
42811
|
+
return /* @__PURE__ */ (0, import_jsx_runtime172.jsxs)(
|
|
42467
42812
|
"div",
|
|
42468
42813
|
{
|
|
42469
42814
|
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 ",
|
|
42470
42815
|
style: { backgroundColor: bgColor },
|
|
42471
42816
|
children: [
|
|
42472
|
-
/* @__PURE__ */ (0,
|
|
42473
|
-
/* @__PURE__ */ (0,
|
|
42474
|
-
/* @__PURE__ */ (0,
|
|
42817
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsxs)("div", { className: "flex flex-col items-center min-w-[90px] md:min-w-0", children: [
|
|
42818
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsx)(IconComponent, { className: "w-5 h-5 md:w-6 md:h-6 text-gray900" }),
|
|
42819
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsx)("span", { className: "text-lg md:text-xl font-bold text-gray900", children: platform === "youtubeMetrics" ? formatFollowerCount2(metrics.subscribers || 0) : formatFollowerCount2(metrics.followers || 0) })
|
|
42475
42820
|
] }),
|
|
42476
|
-
/* @__PURE__ */ (0,
|
|
42477
|
-
/* @__PURE__ */ (0,
|
|
42821
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsxs)("div", { className: "flex flex-col items-start min-w-[130px] md:min-w-0", children: [
|
|
42822
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsxs)(
|
|
42478
42823
|
"span",
|
|
42479
42824
|
{
|
|
42480
42825
|
className: "text-base md:text-lg dark:text-white max-w-[90%] truncate cursor-default",
|
|
@@ -42485,22 +42830,22 @@ function PlatformMetricsBanner({
|
|
|
42485
42830
|
]
|
|
42486
42831
|
}
|
|
42487
42832
|
),
|
|
42488
|
-
/* @__PURE__ */ (0,
|
|
42833
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsx)("span", { className: "text-xs md:text-sm text-gray900 opacity-90", children: platformName })
|
|
42489
42834
|
] }),
|
|
42490
|
-
/* @__PURE__ */ (0,
|
|
42491
|
-
/* @__PURE__ */ (0,
|
|
42835
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsxs)("div", { className: "flex flex-col items-start min-w-[100px] md:min-w-0", children: [
|
|
42836
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsxs)("span", { className: "text-sm md:text-md font-semibold text-gray900", children: [
|
|
42492
42837
|
(metrics.engagementRate * 100).toFixed(2),
|
|
42493
42838
|
"%"
|
|
42494
42839
|
] }),
|
|
42495
|
-
/* @__PURE__ */ (0,
|
|
42840
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsx)("span", { className: "text-xs text-gray900 opacity-80", children: "Engagement Rate" })
|
|
42496
42841
|
] }),
|
|
42497
|
-
/* @__PURE__ */ (0,
|
|
42498
|
-
/* @__PURE__ */ (0,
|
|
42499
|
-
/* @__PURE__ */ (0,
|
|
42842
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsxs)("div", { className: "flex flex-col items-start min-w-[100px] md:min-w-0", children: [
|
|
42843
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsx)("span", { className: "text-sm md:text-md font-semibold text-gray900", children: Math.round(metrics.avgLikes)?.toLocaleString() }),
|
|
42844
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsx)("span", { className: "text-xs text-gray900 opacity-80", children: "Avg Likes" })
|
|
42500
42845
|
] }),
|
|
42501
|
-
/* @__PURE__ */ (0,
|
|
42502
|
-
/* @__PURE__ */ (0,
|
|
42503
|
-
/* @__PURE__ */ (0,
|
|
42846
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsxs)("div", { className: "flex flex-col items-start min-w-[100px] md:min-w-0", children: [
|
|
42847
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsx)("span", { className: "text-sm md:text-md font-semibold text-gray900", children: Math.round(metrics.avgComments)?.toLocaleString() }),
|
|
42848
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsx)("span", { className: "text-xs text-gray900 opacity-80", children: "Avg Comments" })
|
|
42504
42849
|
] })
|
|
42505
42850
|
]
|
|
42506
42851
|
}
|
|
@@ -42511,16 +42856,16 @@ function PlatformPostsSection({
|
|
|
42511
42856
|
posts = []
|
|
42512
42857
|
}) {
|
|
42513
42858
|
if (!platformMetrics) return null;
|
|
42514
|
-
return /* @__PURE__ */ (0,
|
|
42859
|
+
return /* @__PURE__ */ (0, import_jsx_runtime172.jsx)("div", { className: "flex flex-col gap-4", children: /* @__PURE__ */ (0, import_jsx_runtime172.jsx)("div", { className: "flex flex-col gap-8", children: Object.entries(platformMetrics || {}).map(
|
|
42515
42860
|
([platform, metrics]) => {
|
|
42516
42861
|
if (!metrics) return null;
|
|
42517
42862
|
if (metrics.followers === 0 && metrics.subscribers === 0)
|
|
42518
42863
|
return null;
|
|
42519
42864
|
const platformPosts = filterPostsByPlatform(posts, platform);
|
|
42520
42865
|
const platformUsername = metrics.username ?? metrics.channelName ?? "";
|
|
42521
|
-
return /* @__PURE__ */ (0,
|
|
42522
|
-
/* @__PURE__ */ (0,
|
|
42523
|
-
platformPosts.length > 0 && /* @__PURE__ */ (0,
|
|
42866
|
+
return /* @__PURE__ */ (0, import_jsx_runtime172.jsxs)("div", { className: "w-full flex flex-col gap-8", children: [
|
|
42867
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsx)(PlatformMetricsBanner, { platform, metrics }),
|
|
42868
|
+
platformPosts.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime172.jsx)("div", { className: "pr-6 sm:ml-8 sm:pr-7", children: /* @__PURE__ */ (0, import_jsx_runtime172.jsx)("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-4", children: platformPosts.map((post, idx) => /* @__PURE__ */ (0, import_jsx_runtime172.jsx)(
|
|
42524
42869
|
PostCard,
|
|
42525
42870
|
{
|
|
42526
42871
|
post,
|
|
@@ -42534,10 +42879,10 @@ function PlatformPostsSection({
|
|
|
42534
42879
|
}
|
|
42535
42880
|
|
|
42536
42881
|
// src/molecules/creator-discovery/CreatorWidget/BrandCollaborationsList.tsx
|
|
42537
|
-
var
|
|
42882
|
+
var import_react86 = require("react");
|
|
42538
42883
|
var import_react_dom = __toESM(require("react-dom"), 1);
|
|
42539
42884
|
var import_framer_motion3 = require("framer-motion");
|
|
42540
|
-
var
|
|
42885
|
+
var import_jsx_runtime173 = require("react/jsx-runtime");
|
|
42541
42886
|
var getSentimentRank = (score) => {
|
|
42542
42887
|
if (score >= 80) {
|
|
42543
42888
|
return {
|
|
@@ -42582,8 +42927,8 @@ function BrandMentionDetails({
|
|
|
42582
42927
|
) || [];
|
|
42583
42928
|
if (typeof window === "undefined") return null;
|
|
42584
42929
|
return import_react_dom.default.createPortal(
|
|
42585
|
-
/* @__PURE__ */ (0,
|
|
42586
|
-
/* @__PURE__ */ (0,
|
|
42930
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)(import_framer_motion3.AnimatePresence, { mode: "sync", children: open && /* @__PURE__ */ (0, import_jsx_runtime173.jsxs)(import_jsx_runtime173.Fragment, { children: [
|
|
42931
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)(
|
|
42587
42932
|
import_framer_motion3.motion.div,
|
|
42588
42933
|
{
|
|
42589
42934
|
initial: { opacity: 0 },
|
|
@@ -42598,7 +42943,7 @@ function BrandMentionDetails({
|
|
|
42598
42943
|
},
|
|
42599
42944
|
"brand-overlay"
|
|
42600
42945
|
),
|
|
42601
|
-
/* @__PURE__ */ (0,
|
|
42946
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsxs)(
|
|
42602
42947
|
import_framer_motion3.motion.div,
|
|
42603
42948
|
{
|
|
42604
42949
|
initial: { opacity: 0, scale: 0.95 },
|
|
@@ -42608,42 +42953,42 @@ function BrandMentionDetails({
|
|
|
42608
42953
|
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",
|
|
42609
42954
|
onClick: (e) => e.stopPropagation(),
|
|
42610
42955
|
children: [
|
|
42611
|
-
/* @__PURE__ */ (0,
|
|
42612
|
-
/* @__PURE__ */ (0,
|
|
42956
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { className: "flex justify-between items-center p-4 border-b border-gray300", children: [
|
|
42957
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("h3", { className: "text-lg font-bold text-gray900", children: [
|
|
42613
42958
|
"Brand Mention Details: ",
|
|
42614
42959
|
selectedBrand
|
|
42615
42960
|
] }),
|
|
42616
|
-
/* @__PURE__ */ (0,
|
|
42961
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)(
|
|
42617
42962
|
"button",
|
|
42618
42963
|
{
|
|
42619
42964
|
onClick: onClose,
|
|
42620
42965
|
className: "p-1 rounded-full hover:bg-gray200 transition-colors",
|
|
42621
|
-
children: /* @__PURE__ */ (0,
|
|
42966
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime173.jsx)(X, { className: "w-4 h-4" })
|
|
42622
42967
|
}
|
|
42623
42968
|
)
|
|
42624
42969
|
] }),
|
|
42625
|
-
/* @__PURE__ */ (0,
|
|
42626
|
-
brandStats && /* @__PURE__ */ (0,
|
|
42627
|
-
/* @__PURE__ */ (0,
|
|
42628
|
-
/* @__PURE__ */ (0,
|
|
42629
|
-
/* @__PURE__ */ (0,
|
|
42630
|
-
/* @__PURE__ */ (0,
|
|
42631
|
-
/* @__PURE__ */ (0,
|
|
42970
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { className: "flex flex-col gap-6 max-h-[70vh] overflow-y-auto p-4", children: [
|
|
42971
|
+
brandStats && /* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { className: "bg-gray25 border-2 border-gray200 rounded-xl p-4", children: [
|
|
42972
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("h3", { className: "text-lg font-bold text-gray900 mb-4", children: "Overview" }),
|
|
42973
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { className: "grid grid-cols-2 gap-4", children: [
|
|
42974
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { className: "bg-background rounded-lg p-3", children: [
|
|
42975
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "text-xs text-gray600", children: "Total Mentions" }),
|
|
42976
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "text-2xl font-bold text-gray900", children: brandStats.mentions })
|
|
42632
42977
|
] }),
|
|
42633
|
-
/* @__PURE__ */ (0,
|
|
42634
|
-
/* @__PURE__ */ (0,
|
|
42635
|
-
/* @__PURE__ */ (0,
|
|
42978
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { className: "bg-background rounded-lg p-3", children: [
|
|
42979
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "text-xs text-gray600", children: "Posts Count" }),
|
|
42980
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "text-2xl font-bold text-gray900", children: brandStats.postCount })
|
|
42636
42981
|
] }),
|
|
42637
|
-
/* @__PURE__ */ (0,
|
|
42638
|
-
/* @__PURE__ */ (0,
|
|
42639
|
-
/* @__PURE__ */ (0,
|
|
42982
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { className: "bg-background rounded-lg p-3", children: [
|
|
42983
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "text-xs text-gray600", children: "Avg Engagement" }),
|
|
42984
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { className: "text-2xl font-bold text-gray900", children: [
|
|
42640
42985
|
brandStats.averageEngagementRate?.toFixed(2),
|
|
42641
42986
|
"%"
|
|
42642
42987
|
] })
|
|
42643
42988
|
] }),
|
|
42644
|
-
/* @__PURE__ */ (0,
|
|
42645
|
-
/* @__PURE__ */ (0,
|
|
42646
|
-
/* @__PURE__ */ (0,
|
|
42989
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { className: "bg-background rounded-lg p-3", children: [
|
|
42990
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "text-xs text-gray600", children: "Effectiveness" }),
|
|
42991
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsxs)(
|
|
42647
42992
|
"div",
|
|
42648
42993
|
{
|
|
42649
42994
|
className: `text-2xl font-bold ${getSentimentRank(brandStats.effectivenessPercent).scoreColor}`,
|
|
@@ -42655,8 +43000,8 @@ function BrandMentionDetails({
|
|
|
42655
43000
|
)
|
|
42656
43001
|
] })
|
|
42657
43002
|
] }),
|
|
42658
|
-
/* @__PURE__ */ (0,
|
|
42659
|
-
(type, idx) => /* @__PURE__ */ (0,
|
|
43003
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "mt-3 flex gap-2 flex-wrap", children: brandStats.collaborationTypes?.map(
|
|
43004
|
+
(type, idx) => /* @__PURE__ */ (0, import_jsx_runtime173.jsx)(
|
|
42660
43005
|
"span",
|
|
42661
43006
|
{
|
|
42662
43007
|
className: "px-3 py-1 rounded-md text-xs font-medium bg-[#1D4324] text-[#72E285]",
|
|
@@ -42666,55 +43011,55 @@ function BrandMentionDetails({
|
|
|
42666
43011
|
)
|
|
42667
43012
|
) })
|
|
42668
43013
|
] }),
|
|
42669
|
-
/* @__PURE__ */ (0,
|
|
42670
|
-
/* @__PURE__ */ (0,
|
|
43014
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { children: [
|
|
43015
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("h3", { className: "text-lg font-bold text-gray900 mb-3", children: [
|
|
42671
43016
|
"Individual Mentions (",
|
|
42672
43017
|
brandMentions.length,
|
|
42673
43018
|
")"
|
|
42674
43019
|
] }),
|
|
42675
|
-
/* @__PURE__ */ (0,
|
|
43020
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "flex flex-col gap-3", children: brandMentions.map((mention, index) => {
|
|
42676
43021
|
const IconComponent = getPlatformIcon(mention?.platform);
|
|
42677
|
-
return /* @__PURE__ */ (0,
|
|
43022
|
+
return /* @__PURE__ */ (0, import_jsx_runtime173.jsxs)(
|
|
42678
43023
|
"div",
|
|
42679
43024
|
{
|
|
42680
43025
|
className: "bg-gray50 border-2 border-gray200 rounded-xl p-4 hover:border-purple100 transition-colors",
|
|
42681
43026
|
children: [
|
|
42682
|
-
/* @__PURE__ */ (0,
|
|
42683
|
-
/* @__PURE__ */ (0,
|
|
42684
|
-
/* @__PURE__ */ (0,
|
|
42685
|
-
/* @__PURE__ */ (0,
|
|
43027
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { className: "flex items-center justify-between mb-3", children: [
|
|
43028
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
43029
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)(IconComponent, { className: "w-5 h-5 text-gray900" }),
|
|
43030
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("span", { className: "text-sm font-medium text-gray700 capitalize", children: mention.platform })
|
|
42686
43031
|
] }),
|
|
42687
|
-
/* @__PURE__ */ (0,
|
|
42688
|
-
/* @__PURE__ */ (0,
|
|
42689
|
-
/* @__PURE__ */ (0,
|
|
43032
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
43033
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("span", { className: "px-2 py-1 rounded-md text-xs font-medium bg-[#1D4324] text-[#72E285]", children: mention.collaborationType }),
|
|
43034
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("span", { className: "text-xs text-gray600", children: [
|
|
42690
43035
|
Math.round(mention.confidence * 100),
|
|
42691
43036
|
"% confidence"
|
|
42692
43037
|
] })
|
|
42693
43038
|
] })
|
|
42694
43039
|
] }),
|
|
42695
|
-
/* @__PURE__ */ (0,
|
|
42696
|
-
/* @__PURE__ */ (0,
|
|
43040
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { className: "mb-2", children: [
|
|
43041
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("span", { className: "text-xs text-gray500", children: [
|
|
42697
43042
|
"Post ID:",
|
|
42698
43043
|
" "
|
|
42699
43044
|
] }),
|
|
42700
|
-
/* @__PURE__ */ (0,
|
|
43045
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("span", { className: "text-xs font-mono text-gray700", children: mention.post_id })
|
|
42701
43046
|
] }),
|
|
42702
|
-
/* @__PURE__ */ (0,
|
|
42703
|
-
/* @__PURE__ */ (0,
|
|
42704
|
-
/* @__PURE__ */ (0,
|
|
43047
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { className: "bg-background rounded-lg p-3 border border-gray300", children: [
|
|
43048
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "text-xs text-gray600 mb-1", children: "Evidence:" }),
|
|
43049
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("p", { className: "text-sm text-gray800 italic", children: [
|
|
42705
43050
|
"\u201C",
|
|
42706
43051
|
mention.evidence,
|
|
42707
43052
|
"\u201D"
|
|
42708
43053
|
] })
|
|
42709
43054
|
] }),
|
|
42710
|
-
/* @__PURE__ */ (0,
|
|
43055
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { className: "mt-2 text-xs text-gray500", children: [
|
|
42711
43056
|
"Source:",
|
|
42712
43057
|
" ",
|
|
42713
|
-
/* @__PURE__ */ (0,
|
|
42714
|
-
mention.handle && /* @__PURE__ */ (0,
|
|
43058
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("span", { className: "font-medium", children: mention.source }),
|
|
43059
|
+
mention.handle && /* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("span", { className: "ml-2", children: [
|
|
42715
43060
|
"Handle:",
|
|
42716
43061
|
" ",
|
|
42717
|
-
/* @__PURE__ */ (0,
|
|
43062
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("span", { className: "font-medium", children: mention.handle })
|
|
42718
43063
|
] })
|
|
42719
43064
|
] })
|
|
42720
43065
|
]
|
|
@@ -42723,7 +43068,7 @@ function BrandMentionDetails({
|
|
|
42723
43068
|
);
|
|
42724
43069
|
}) })
|
|
42725
43070
|
] }),
|
|
42726
|
-
brandMentions.length === 0 && /* @__PURE__ */ (0,
|
|
43071
|
+
brandMentions.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "text-center py-8 text-gray500", children: "No mentions found for this brand" })
|
|
42727
43072
|
] })
|
|
42728
43073
|
]
|
|
42729
43074
|
},
|
|
@@ -42736,16 +43081,16 @@ function BrandMentionDetails({
|
|
|
42736
43081
|
function BrandCollaborationsList({
|
|
42737
43082
|
brandBreakdown
|
|
42738
43083
|
}) {
|
|
42739
|
-
const [openDetails, setOpenDetails] = (0,
|
|
42740
|
-
const [selectedBrand, setSelectedBrand] = (0,
|
|
43084
|
+
const [openDetails, setOpenDetails] = (0, import_react86.useState)(false);
|
|
43085
|
+
const [selectedBrand, setSelectedBrand] = (0, import_react86.useState)("");
|
|
42741
43086
|
if (!brandBreakdown?.insights?.brandBreakdown || brandBreakdown.insights.brandBreakdown.length === 0) {
|
|
42742
43087
|
return null;
|
|
42743
43088
|
}
|
|
42744
|
-
return /* @__PURE__ */ (0,
|
|
42745
|
-
/* @__PURE__ */ (0,
|
|
42746
|
-
/* @__PURE__ */ (0,
|
|
42747
|
-
/* @__PURE__ */ (0,
|
|
42748
|
-
(item, index) => /* @__PURE__ */ (0,
|
|
43089
|
+
return /* @__PURE__ */ (0, import_jsx_runtime173.jsxs)(import_jsx_runtime173.Fragment, { children: [
|
|
43090
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { children: [
|
|
43091
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "text-purpleText text-xs mb-2", children: /* @__PURE__ */ (0, import_jsx_runtime173.jsx)("span", { className: "rounded-md bg-purple200 px-2 py-[4px] font-sans", children: "BRAND MENTIONS" }) }),
|
|
43092
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "flex flex-col gap-2 max-h-[220px] overflow-y-auto", children: brandBreakdown.insights.brandBreakdown.map(
|
|
43093
|
+
(item, index) => /* @__PURE__ */ (0, import_jsx_runtime173.jsxs)(
|
|
42749
43094
|
"div",
|
|
42750
43095
|
{
|
|
42751
43096
|
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",
|
|
@@ -42755,17 +43100,17 @@ function BrandCollaborationsList({
|
|
|
42755
43100
|
setOpenDetails(true);
|
|
42756
43101
|
},
|
|
42757
43102
|
children: [
|
|
42758
|
-
/* @__PURE__ */ (0,
|
|
42759
|
-
/* @__PURE__ */ (0,
|
|
42760
|
-
/* @__PURE__ */ (0,
|
|
42761
|
-
/* @__PURE__ */ (0,
|
|
42762
|
-
/* @__PURE__ */ (0,
|
|
42763
|
-
/* @__PURE__ */ (0,
|
|
43103
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "w-10 h-10 rounded-full bg-gray200 flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime173.jsx)("span", { className: "text-sm font-bold text-gray700", children: item.brand?.charAt(0)?.toUpperCase() || "?" }) }),
|
|
43104
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { className: "flex flex-col gap-1", children: [
|
|
43105
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "text-gray900 text-sm", children: item.brand }),
|
|
43106
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { className: "flex gap-2 text-xs text-gray600", children: [
|
|
43107
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { children: [
|
|
43108
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("span", { className: "text-gray900", children: item?.mentions }),
|
|
42764
43109
|
" ",
|
|
42765
43110
|
"Mention"
|
|
42766
43111
|
] }),
|
|
42767
|
-
/* @__PURE__ */ (0,
|
|
42768
|
-
/* @__PURE__ */ (0,
|
|
43112
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { children: [
|
|
43113
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)(
|
|
42769
43114
|
"span",
|
|
42770
43115
|
{
|
|
42771
43116
|
className: `${getSentimentRank(item.effectivenessPercent).scoreColor} font-bold`,
|
|
@@ -42783,7 +43128,7 @@ function BrandCollaborationsList({
|
|
|
42783
43128
|
)
|
|
42784
43129
|
) })
|
|
42785
43130
|
] }),
|
|
42786
|
-
/* @__PURE__ */ (0,
|
|
43131
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)(
|
|
42787
43132
|
BrandMentionDetails,
|
|
42788
43133
|
{
|
|
42789
43134
|
open: openDetails,
|
|
@@ -42796,9 +43141,9 @@ function BrandCollaborationsList({
|
|
|
42796
43141
|
}
|
|
42797
43142
|
|
|
42798
43143
|
// src/molecules/creator-discovery/CreatorWidget/CreatorGridView.tsx
|
|
42799
|
-
var
|
|
43144
|
+
var import_react87 = require("react");
|
|
42800
43145
|
var import_framer_motion4 = require("framer-motion");
|
|
42801
|
-
var
|
|
43146
|
+
var import_jsx_runtime174 = require("react/jsx-runtime");
|
|
42802
43147
|
var formatFollowerCount3 = (count) => {
|
|
42803
43148
|
if (count >= 1e6) {
|
|
42804
43149
|
const millions = count / 1e6;
|
|
@@ -42845,25 +43190,25 @@ var itemsExplanation = [
|
|
|
42845
43190
|
{ key: "brandSafety", label: "Brand Safety" }
|
|
42846
43191
|
];
|
|
42847
43192
|
function CreatorGridViewCard({ creator }) {
|
|
42848
|
-
const [isExpanded, setIsExpanded] = (0,
|
|
42849
|
-
const [showFullDescription, setShowFullDescription] = (0,
|
|
42850
|
-
const [isDescriptionOverflowing, setIsDescriptionOverflowing] = (0,
|
|
42851
|
-
const descriptionRef = (0,
|
|
42852
|
-
const cardRef = (0,
|
|
42853
|
-
const checkDescriptionOverflow = (0,
|
|
43193
|
+
const [isExpanded, setIsExpanded] = (0, import_react87.useState)(false);
|
|
43194
|
+
const [showFullDescription, setShowFullDescription] = (0, import_react87.useState)(false);
|
|
43195
|
+
const [isDescriptionOverflowing, setIsDescriptionOverflowing] = (0, import_react87.useState)(false);
|
|
43196
|
+
const descriptionRef = (0, import_react87.useRef)(null);
|
|
43197
|
+
const cardRef = (0, import_react87.useRef)(null);
|
|
43198
|
+
const checkDescriptionOverflow = (0, import_react87.useCallback)(() => {
|
|
42854
43199
|
const el = descriptionRef.current;
|
|
42855
43200
|
if (!el) return;
|
|
42856
43201
|
setIsDescriptionOverflowing(el.scrollHeight > el.clientHeight + 1);
|
|
42857
43202
|
}, []);
|
|
42858
|
-
(0,
|
|
43203
|
+
(0, import_react87.useEffect)(() => {
|
|
42859
43204
|
checkDescriptionOverflow();
|
|
42860
43205
|
}, [checkDescriptionOverflow, isExpanded, showFullDescription]);
|
|
42861
|
-
(0,
|
|
43206
|
+
(0, import_react87.useEffect)(() => {
|
|
42862
43207
|
const onResize = () => checkDescriptionOverflow();
|
|
42863
43208
|
window.addEventListener("resize", onResize);
|
|
42864
43209
|
return () => window.removeEventListener("resize", onResize);
|
|
42865
43210
|
}, [checkDescriptionOverflow]);
|
|
42866
|
-
const platformStats = (0,
|
|
43211
|
+
const platformStats = (0, import_react87.useMemo)(() => {
|
|
42867
43212
|
return [
|
|
42868
43213
|
{
|
|
42869
43214
|
platform: "instagram",
|
|
@@ -42899,7 +43244,7 @@ function CreatorGridViewCard({ creator }) {
|
|
|
42899
43244
|
};
|
|
42900
43245
|
const iso2 = normalizeToIso2(creator.country);
|
|
42901
43246
|
const meta = codeToMeta[iso2];
|
|
42902
|
-
return /* @__PURE__ */ (0,
|
|
43247
|
+
return /* @__PURE__ */ (0, import_jsx_runtime174.jsx)(
|
|
42903
43248
|
import_framer_motion4.motion.div,
|
|
42904
43249
|
{
|
|
42905
43250
|
ref: cardRef,
|
|
@@ -42910,10 +43255,10 @@ function CreatorGridViewCard({ creator }) {
|
|
|
42910
43255
|
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" : ""}`,
|
|
42911
43256
|
style: isExpanded ? { gridColumn: "1 / -1" } : {},
|
|
42912
43257
|
onClick: toggleExpanded,
|
|
42913
|
-
children: /* @__PURE__ */ (0,
|
|
42914
|
-
/* @__PURE__ */ (0,
|
|
42915
|
-
/* @__PURE__ */ (0,
|
|
42916
|
-
creator.profile_pic ? /* @__PURE__ */ (0,
|
|
43258
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime174.jsxs)("div", { className: "flex", children: [
|
|
43259
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsxs)("div", { className: `${isExpanded ? "w-1/3" : "w-full"}`, children: [
|
|
43260
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsxs)("div", { className: "relative w-full aspect-square mb-2", children: [
|
|
43261
|
+
creator.profile_pic ? /* @__PURE__ */ (0, import_jsx_runtime174.jsx)(
|
|
42917
43262
|
"img",
|
|
42918
43263
|
{
|
|
42919
43264
|
src: creator.profile_pic,
|
|
@@ -42921,15 +43266,15 @@ function CreatorGridViewCard({ creator }) {
|
|
|
42921
43266
|
className: "w-full h-full object-cover bg-primary/10",
|
|
42922
43267
|
style: { borderRadius: "10px 10px 0 0" }
|
|
42923
43268
|
}
|
|
42924
|
-
) : /* @__PURE__ */ (0,
|
|
43269
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime174.jsx)(
|
|
42925
43270
|
"div",
|
|
42926
43271
|
{
|
|
42927
43272
|
className: "w-full h-full bg-primary/10 flex items-center justify-center",
|
|
42928
43273
|
style: { borderRadius: "10px 10px 0 0" },
|
|
42929
|
-
children: /* @__PURE__ */ (0,
|
|
43274
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime174.jsx)("span", { className: "text-2xl text-primary", children: creator.name?.charAt(0) || "?" })
|
|
42930
43275
|
}
|
|
42931
43276
|
),
|
|
42932
|
-
/* @__PURE__ */ (0,
|
|
43277
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsx)(
|
|
42933
43278
|
"div",
|
|
42934
43279
|
{
|
|
42935
43280
|
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`,
|
|
@@ -42937,34 +43282,34 @@ function CreatorGridViewCard({ creator }) {
|
|
|
42937
43282
|
}
|
|
42938
43283
|
)
|
|
42939
43284
|
] }),
|
|
42940
|
-
/* @__PURE__ */ (0,
|
|
42941
|
-
/* @__PURE__ */ (0,
|
|
42942
|
-
/* @__PURE__ */ (0,
|
|
43285
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsxs)("div", { className: "px-3 pb-1", children: [
|
|
43286
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsxs)("div", { children: [
|
|
43287
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsx)(
|
|
42943
43288
|
"h3",
|
|
42944
43289
|
{
|
|
42945
43290
|
className: `${isExpanded ? "text-md" : "text-sm"} font-normal text-gray900 mb-1 line-clamp-2 text-start`,
|
|
42946
43291
|
children: creator.name || "Unnamed"
|
|
42947
43292
|
}
|
|
42948
43293
|
),
|
|
42949
|
-
/* @__PURE__ */ (0,
|
|
43294
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsxs)(
|
|
42950
43295
|
"div",
|
|
42951
43296
|
{
|
|
42952
43297
|
className: `${isExpanded ? "text-sm" : "text-xs"} text-gray700 mb-1 text-start flex items-center gap-1`,
|
|
42953
43298
|
children: [
|
|
42954
|
-
/* @__PURE__ */ (0,
|
|
42955
|
-
/* @__PURE__ */ (0,
|
|
43299
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsx)("span", { className: "text-base", children: meta?.flag }),
|
|
43300
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsx)("span", { children: meta?.name || creator.country || "Unknown" })
|
|
42956
43301
|
]
|
|
42957
43302
|
}
|
|
42958
43303
|
),
|
|
42959
|
-
isExpanded && creator?.sentiment?.detailedScores && /* @__PURE__ */ (0,
|
|
43304
|
+
isExpanded && creator?.sentiment?.detailedScores && /* @__PURE__ */ (0, import_jsx_runtime174.jsx)("div", { className: "overflow-x-auto", children: /* @__PURE__ */ (0, import_jsx_runtime174.jsx)("div", { className: "mt-2 w-[150px] flex gap-2", children: Object.entries(creator.sentiment.detailedScores).map(
|
|
42960
43305
|
([key, value]) => {
|
|
42961
43306
|
const itemRank = getSentimentRank2(value);
|
|
42962
|
-
return /* @__PURE__ */ (0,
|
|
43307
|
+
return /* @__PURE__ */ (0, import_jsx_runtime174.jsxs)(
|
|
42963
43308
|
"div",
|
|
42964
43309
|
{
|
|
42965
43310
|
className: "flex flex-col items-center w-[100px]",
|
|
42966
43311
|
children: [
|
|
42967
|
-
/* @__PURE__ */ (0,
|
|
43312
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsxs)(
|
|
42968
43313
|
"span",
|
|
42969
43314
|
{
|
|
42970
43315
|
className: `text-[14px] font-bold ${itemRank.scoreColor}`,
|
|
@@ -42974,7 +43319,7 @@ function CreatorGridViewCard({ creator }) {
|
|
|
42974
43319
|
]
|
|
42975
43320
|
}
|
|
42976
43321
|
),
|
|
42977
|
-
/* @__PURE__ */ (0,
|
|
43322
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsx)("div", { className: "flex items-center justify-center gap-1 w-full", children: /* @__PURE__ */ (0, import_jsx_runtime174.jsx)("span", { className: "text-xs dark:text-gray500 text-center px-1", children: itemsExplanation.find(
|
|
42978
43323
|
(item) => item.key === key
|
|
42979
43324
|
)?.label }) })
|
|
42980
43325
|
]
|
|
@@ -42984,20 +43329,20 @@ function CreatorGridViewCard({ creator }) {
|
|
|
42984
43329
|
}
|
|
42985
43330
|
) }) })
|
|
42986
43331
|
] }),
|
|
42987
|
-
!isExpanded && /* @__PURE__ */ (0,
|
|
42988
|
-
({ platform, icon: Icon3, followers }) => /* @__PURE__ */ (0,
|
|
43332
|
+
!isExpanded && /* @__PURE__ */ (0, import_jsx_runtime174.jsx)("div", { className: "flex gap-2 justify-between", children: platformStats.map(
|
|
43333
|
+
({ platform, icon: Icon3, followers }) => /* @__PURE__ */ (0, import_jsx_runtime174.jsxs)(
|
|
42989
43334
|
"div",
|
|
42990
43335
|
{
|
|
42991
43336
|
className: "flex flex-col items-center gap-1",
|
|
42992
43337
|
title: `${formatFollowerCount3(followers)} followers`,
|
|
42993
43338
|
children: [
|
|
42994
|
-
/* @__PURE__ */ (0,
|
|
43339
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsx)(
|
|
42995
43340
|
Icon3,
|
|
42996
43341
|
{
|
|
42997
43342
|
className: `w-5 h-5 ${getPlatformIconColor(platform)}`
|
|
42998
43343
|
}
|
|
42999
43344
|
),
|
|
43000
|
-
/* @__PURE__ */ (0,
|
|
43345
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsx)("span", { className: "text-xs dark:text-gray500", children: followers > 0 && formatFollowerCount3(followers) })
|
|
43001
43346
|
]
|
|
43002
43347
|
},
|
|
43003
43348
|
platform
|
|
@@ -43005,20 +43350,20 @@ function CreatorGridViewCard({ creator }) {
|
|
|
43005
43350
|
) })
|
|
43006
43351
|
] })
|
|
43007
43352
|
] }),
|
|
43008
|
-
isExpanded && /* @__PURE__ */ (0,
|
|
43009
|
-
/* @__PURE__ */ (0,
|
|
43010
|
-
/* @__PURE__ */ (0,
|
|
43353
|
+
isExpanded && /* @__PURE__ */ (0, import_jsx_runtime174.jsx)("div", { className: "flex-1 border-l border-gray300 p-6 overflow-hidden transition-all duration-300 ease-in-out", children: /* @__PURE__ */ (0, import_jsx_runtime174.jsxs)("div", { className: "space-y-4", children: [
|
|
43354
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsxs)("div", { children: [
|
|
43355
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsxs)(
|
|
43011
43356
|
"div",
|
|
43012
43357
|
{
|
|
43013
43358
|
ref: descriptionRef,
|
|
43014
43359
|
className: `${showFullDescription ? "" : "max-h-[80px] overflow-hidden"} relative`,
|
|
43015
43360
|
children: [
|
|
43016
|
-
/* @__PURE__ */ (0,
|
|
43017
|
-
!showFullDescription && isDescriptionOverflowing && /* @__PURE__ */ (0,
|
|
43361
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsx)("p", { className: "text-sm text-gray700 leading-relaxed", children: creator.description || "No description provided." }),
|
|
43362
|
+
!showFullDescription && isDescriptionOverflowing && /* @__PURE__ */ (0, import_jsx_runtime174.jsx)("div", { className: "pointer-events-none absolute bottom-0 left-0 right-0 h-10 bg-gradient-to-t from-gray25 to-transparent" })
|
|
43018
43363
|
]
|
|
43019
43364
|
}
|
|
43020
43365
|
),
|
|
43021
|
-
(isDescriptionOverflowing || showFullDescription) && /* @__PURE__ */ (0,
|
|
43366
|
+
(isDescriptionOverflowing || showFullDescription) && /* @__PURE__ */ (0, import_jsx_runtime174.jsx)(
|
|
43022
43367
|
"button",
|
|
43023
43368
|
{
|
|
43024
43369
|
onClick: (e) => {
|
|
@@ -43030,38 +43375,38 @@ function CreatorGridViewCard({ creator }) {
|
|
|
43030
43375
|
}
|
|
43031
43376
|
)
|
|
43032
43377
|
] }),
|
|
43033
|
-
/* @__PURE__ */ (0,
|
|
43034
|
-
({ platform, icon: Icon3, followers, engagement }) => /* @__PURE__ */ (0,
|
|
43035
|
-
/* @__PURE__ */ (0,
|
|
43378
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsx)("div", { className: "flex gap-6 justify-start items-center", children: platformStats.map(
|
|
43379
|
+
({ platform, icon: Icon3, followers, engagement }) => /* @__PURE__ */ (0, import_jsx_runtime174.jsxs)("div", { className: "flex items-center gap-3", children: [
|
|
43380
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsxs)(
|
|
43036
43381
|
"div",
|
|
43037
43382
|
{
|
|
43038
43383
|
className: "flex items-center gap-1",
|
|
43039
43384
|
title: `${formatFollowerCount3(followers)} followers`,
|
|
43040
43385
|
children: [
|
|
43041
|
-
/* @__PURE__ */ (0,
|
|
43386
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsx)(
|
|
43042
43387
|
Icon3,
|
|
43043
43388
|
{
|
|
43044
43389
|
className: `w-5 h-5 ${getPlatformIconColor(platform)}`
|
|
43045
43390
|
}
|
|
43046
43391
|
),
|
|
43047
|
-
/* @__PURE__ */ (0,
|
|
43392
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsx)("span", { className: "text-xs dark:text-gray500", children: followers > 0 ? formatFollowerCount3(followers) : "0" })
|
|
43048
43393
|
]
|
|
43049
43394
|
}
|
|
43050
43395
|
),
|
|
43051
|
-
/* @__PURE__ */ (0,
|
|
43052
|
-
/* @__PURE__ */ (0,
|
|
43053
|
-
/* @__PURE__ */ (0,
|
|
43396
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsxs)("div", { className: "flex items-center gap-1", children: [
|
|
43397
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsx)(ChartColumn, { className: "w-5 h-5 dark:text-gray500" }),
|
|
43398
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsxs)("span", { className: "text-sm dark:text-gray500 w-[40px]", children: [
|
|
43054
43399
|
(engagement * 100).toFixed(1),
|
|
43055
43400
|
"%"
|
|
43056
43401
|
] })
|
|
43057
43402
|
] })
|
|
43058
43403
|
] }, platform)
|
|
43059
43404
|
) }),
|
|
43060
|
-
creator.posts?.length > 0 && /* @__PURE__ */ (0,
|
|
43061
|
-
/* @__PURE__ */ (0,
|
|
43062
|
-
/* @__PURE__ */ (0,
|
|
43405
|
+
creator.posts?.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime174.jsxs)("div", { className: "w-full overflow-hidden", children: [
|
|
43406
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsx)("h3", { className: "mb-2 text-sm font-medium text-gray900", children: "Recent Posts" }),
|
|
43407
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsx)("div", { className: "flex gap-3 overflow-x-auto", children: creator.posts.filter(
|
|
43063
43408
|
(post) => post.thumbnail || post.thumbnail_url
|
|
43064
|
-
).slice(0, 8).map((post, idx) => /* @__PURE__ */ (0,
|
|
43409
|
+
).slice(0, 8).map((post, idx) => /* @__PURE__ */ (0, import_jsx_runtime174.jsx)(
|
|
43065
43410
|
"a",
|
|
43066
43411
|
{
|
|
43067
43412
|
href: post.url || "#",
|
|
@@ -43069,7 +43414,7 @@ function CreatorGridViewCard({ creator }) {
|
|
|
43069
43414
|
rel: "noopener noreferrer",
|
|
43070
43415
|
className: "block flex-shrink-0",
|
|
43071
43416
|
onClick: (e) => e.stopPropagation(),
|
|
43072
|
-
children: /* @__PURE__ */ (0,
|
|
43417
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime174.jsx)(
|
|
43073
43418
|
"img",
|
|
43074
43419
|
{
|
|
43075
43420
|
src: post.thumbnail_url || post.thumbnail,
|
|
@@ -43081,9 +43426,9 @@ function CreatorGridViewCard({ creator }) {
|
|
|
43081
43426
|
idx
|
|
43082
43427
|
)) })
|
|
43083
43428
|
] }),
|
|
43084
|
-
creator?.sentiment?.aiReasoning && /* @__PURE__ */ (0,
|
|
43085
|
-
/* @__PURE__ */ (0,
|
|
43086
|
-
/* @__PURE__ */ (0,
|
|
43429
|
+
creator?.sentiment?.aiReasoning && /* @__PURE__ */ (0, import_jsx_runtime174.jsxs)("div", { className: "text-gray700 max-h-[200px] overflow-auto", children: [
|
|
43430
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsx)("h4", { className: "font-semibold text-sm", children: "AI Analysis" }),
|
|
43431
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsx)("p", { className: "text-sm", children: creator.sentiment.aiReasoning })
|
|
43087
43432
|
] })
|
|
43088
43433
|
] }) })
|
|
43089
43434
|
] })
|
|
@@ -43093,11 +43438,11 @@ function CreatorGridViewCard({ creator }) {
|
|
|
43093
43438
|
function CreatorGridView({
|
|
43094
43439
|
creatorData
|
|
43095
43440
|
}) {
|
|
43096
|
-
return /* @__PURE__ */ (0,
|
|
43441
|
+
return /* @__PURE__ */ (0, import_jsx_runtime174.jsx)("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__ */ (0, import_jsx_runtime174.jsx)(CreatorGridViewCard, { creator }, creator._id)) });
|
|
43097
43442
|
}
|
|
43098
43443
|
|
|
43099
43444
|
// src/molecules/creator-discovery/CreatorWidget/CreatorExpandedPanel.tsx
|
|
43100
|
-
var
|
|
43445
|
+
var import_jsx_runtime175 = require("react/jsx-runtime");
|
|
43101
43446
|
var formatFollowerCount4 = (count) => {
|
|
43102
43447
|
if (count >= 1e6) {
|
|
43103
43448
|
const millions = count / 1e6;
|
|
@@ -43191,12 +43536,12 @@ function SearchSpecDisplay({ spec }) {
|
|
|
43191
43536
|
{
|
|
43192
43537
|
key: "platforms",
|
|
43193
43538
|
title: "Platforms",
|
|
43194
|
-
content: /* @__PURE__ */ (0,
|
|
43539
|
+
content: /* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: "flex flex-wrap gap-2", children: (spec.platforms || []).filter((p) => ["instagram", "youtube", "tiktok"].includes(p.toLowerCase())).map((p, idx) => /* @__PURE__ */ (0, import_jsx_runtime175.jsx)("span", { className: `${tagClass} flex items-center justify-center`, children: p.charAt(0).toUpperCase() + p.slice(1).toLowerCase() }, idx)) })
|
|
43195
43540
|
},
|
|
43196
43541
|
{
|
|
43197
43542
|
key: "follower_range",
|
|
43198
43543
|
title: "Follower Range",
|
|
43199
|
-
content: /* @__PURE__ */ (0,
|
|
43544
|
+
content: /* @__PURE__ */ (0, import_jsx_runtime175.jsxs)("div", { className: `inline-block ${tagClass} font-grotesk`, children: [
|
|
43200
43545
|
formatFollowerCount4(spec?.follower_range?.min ?? 0),
|
|
43201
43546
|
" -",
|
|
43202
43547
|
" ",
|
|
@@ -43206,7 +43551,7 @@ function SearchSpecDisplay({ spec }) {
|
|
|
43206
43551
|
{
|
|
43207
43552
|
key: "geography",
|
|
43208
43553
|
title: "Geography",
|
|
43209
|
-
content: /* @__PURE__ */ (0,
|
|
43554
|
+
content: /* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: `inline-block ${tagClass} font-grotesk`, children: /* @__PURE__ */ (0, import_jsx_runtime175.jsx)(
|
|
43210
43555
|
"div",
|
|
43211
43556
|
{
|
|
43212
43557
|
className: "max-w-[200px] overflow-x-auto whitespace-nowrap",
|
|
@@ -43220,7 +43565,7 @@ function SearchSpecDisplay({ spec }) {
|
|
|
43220
43565
|
e.currentTarget.style.overflow = "hidden";
|
|
43221
43566
|
e.currentTarget.scrollLeft = 0;
|
|
43222
43567
|
},
|
|
43223
|
-
children: (spec.geography || []).map((g, idx) => /* @__PURE__ */ (0,
|
|
43568
|
+
children: (spec.geography || []).map((g, idx) => /* @__PURE__ */ (0, import_jsx_runtime175.jsxs)("span", { children: [
|
|
43224
43569
|
g,
|
|
43225
43570
|
idx < spec.geography.length - 1 ? ", " : ""
|
|
43226
43571
|
] }, idx))
|
|
@@ -43230,13 +43575,13 @@ function SearchSpecDisplay({ spec }) {
|
|
|
43230
43575
|
{
|
|
43231
43576
|
key: "keyword_bundles",
|
|
43232
43577
|
title: "Keyword",
|
|
43233
|
-
content: /* @__PURE__ */ (0,
|
|
43578
|
+
content: /* @__PURE__ */ (0, import_jsx_runtime175.jsx)("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__ */ (0, import_jsx_runtime175.jsx)("div", { className: `${textClass} text-white/70`, children: "No priority 1 keywords" }) : priorityOneBundles.map((kw, idx) => /* @__PURE__ */ (0, import_jsx_runtime175.jsx)("span", { className: tagClass, children: kw }, idx)) })
|
|
43234
43579
|
}
|
|
43235
43580
|
];
|
|
43236
43581
|
const itemsToShow = ["platforms", "follower_range", "geography", "keyword_bundles"];
|
|
43237
|
-
return /* @__PURE__ */ (0,
|
|
43238
|
-
/* @__PURE__ */ (0,
|
|
43239
|
-
/* @__PURE__ */ (0,
|
|
43582
|
+
return /* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: "mt-3", children: /* @__PURE__ */ (0, import_jsx_runtime175.jsx)("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__ */ (0, import_jsx_runtime175.jsxs)("div", { className: "flex-none p-5 bg-paperBackground rounded-lg", children: [
|
|
43583
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: "text-purpleText text-sm mb-4", children: /* @__PURE__ */ (0, import_jsx_runtime175.jsx)("span", { className: "rounded-md bg-purple200 px-2 py-[4px] font-sans", children: title.toUpperCase() }) }),
|
|
43584
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: `flex text-gray900 ${textClass}`, children: content })
|
|
43240
43585
|
] }, key)) }) });
|
|
43241
43586
|
}
|
|
43242
43587
|
function SentimentScoreRank({
|
|
@@ -43245,16 +43590,16 @@ function SentimentScoreRank({
|
|
|
43245
43590
|
showMinialView = false
|
|
43246
43591
|
}) {
|
|
43247
43592
|
const sentimentScoreRank = getSentimentRank3(score);
|
|
43248
|
-
return /* @__PURE__ */ (0,
|
|
43249
|
-
score !== void 0 && /* @__PURE__ */ (0,
|
|
43593
|
+
return /* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: "flex flex-col items-center", children: /* @__PURE__ */ (0, import_jsx_runtime175.jsxs)("div", { className: `flex flex-col justify-end ${showMinialView ? "w-[120px]" : "w-[150px]"} text-sm`, children: [
|
|
43594
|
+
score !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: "flex justify-center items-center mb-2", children: /* @__PURE__ */ (0, import_jsx_runtime175.jsx)(
|
|
43250
43595
|
"span",
|
|
43251
43596
|
{
|
|
43252
43597
|
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]"}`,
|
|
43253
43598
|
children: isValidationComplete ? sentimentScoreRank.rank : "Unranked"
|
|
43254
43599
|
}
|
|
43255
43600
|
) }),
|
|
43256
|
-
/* @__PURE__ */ (0,
|
|
43257
|
-
!showMinialView && /* @__PURE__ */ (0,
|
|
43601
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: `flex justify-center ${showMinialView ? "text-[24px]" : "text-[28px]"} font-bold mb-3 ${sentimentScoreRank.scoreColor}`, children: isValidationComplete ? score >= 0 ? `${score}%` : "0%" : /* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: "flex items-center justify-center py-2", children: /* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: "w-6 h-6 border-2 border-purple100 border-t-transparent rounded-full animate-spin" }) }) }),
|
|
43602
|
+
!showMinialView && /* @__PURE__ */ (0, import_jsx_runtime175.jsx)("p", { className: "text-gray600 dark:text-gray500 text-center", children: "Match Score" })
|
|
43258
43603
|
] }) });
|
|
43259
43604
|
}
|
|
43260
43605
|
function BrandMentionPerformance({ creator }) {
|
|
@@ -43269,14 +43614,14 @@ function BrandMentionPerformance({ creator }) {
|
|
|
43269
43614
|
{ title: "Effectiveness", subtitle: "compared to all posts", value: `${insights?.effectivenessPercent || 0} %` },
|
|
43270
43615
|
{ title: "Saturation Rate", subtitle: "on brand mention", value: `${insights?.saturationRate || 0} %` }
|
|
43271
43616
|
];
|
|
43272
|
-
return /* @__PURE__ */ (0,
|
|
43273
|
-
/* @__PURE__ */ (0,
|
|
43274
|
-
/* @__PURE__ */ (0,
|
|
43275
|
-
/* @__PURE__ */ (0,
|
|
43276
|
-
/* @__PURE__ */ (0,
|
|
43277
|
-
/* @__PURE__ */ (0,
|
|
43617
|
+
return /* @__PURE__ */ (0, import_jsx_runtime175.jsxs)("div", { children: [
|
|
43618
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: "text-purpleText text-xs mb-4", children: /* @__PURE__ */ (0, import_jsx_runtime175.jsx)("span", { className: "rounded-md bg-purple200 px-2 py-[4px] font-sans", children: "BRAND MENTION PERFORMANCE" }) }),
|
|
43619
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: "flex flex-col gap-3", children: metrics.map((item) => /* @__PURE__ */ (0, import_jsx_runtime175.jsxs)("div", { className: "flex justify-between items-center text-gray700 text-sm", children: [
|
|
43620
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsxs)("div", { className: "flex flex-col gap-1", children: [
|
|
43621
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("h5", { children: item.title }),
|
|
43622
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("p", { className: "text-xs", children: item.subtitle })
|
|
43278
43623
|
] }),
|
|
43279
|
-
/* @__PURE__ */ (0,
|
|
43624
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("p", { className: "text-purpleText text-lg", children: item.value })
|
|
43280
43625
|
] }, item.title)) })
|
|
43281
43626
|
] });
|
|
43282
43627
|
}
|
|
@@ -43284,19 +43629,19 @@ function CreatorFitSummary({ creator, showBrandPerformance }) {
|
|
|
43284
43629
|
const hasDeepAnalysis = creator?.sentiment?.deepAnalysis?.deepAnalysis;
|
|
43285
43630
|
const title = hasDeepAnalysis ? "CREATOR DEEP ANALYSIS" : "CREATOR FIT SUMMARY";
|
|
43286
43631
|
const content = hasDeepAnalysis ? creator.sentiment.deepAnalysis.deepAnalysis : creator?.sentiment?.aiReasoning || "No data available.";
|
|
43287
|
-
return /* @__PURE__ */ (0,
|
|
43288
|
-
/* @__PURE__ */ (0,
|
|
43289
|
-
/* @__PURE__ */ (0,
|
|
43632
|
+
return /* @__PURE__ */ (0, import_jsx_runtime175.jsxs)("div", { className: showBrandPerformance ? "col-span-1" : "col-span-2", children: [
|
|
43633
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: "text-purpleText text-xs mb-4", children: /* @__PURE__ */ (0, import_jsx_runtime175.jsx)("span", { className: "rounded-md bg-purple200 px-2 py-[4px] font-sans", children: title }) }),
|
|
43634
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: "max-h-[140px] overflow-y-auto slim-scrollbar", children: /* @__PURE__ */ (0, import_jsx_runtime175.jsx)("p", { className: "text-gray700 text-sm", children: content }) })
|
|
43290
43635
|
] });
|
|
43291
43636
|
}
|
|
43292
43637
|
function ProfileSection({ creator, isValidationComplete }) {
|
|
43293
43638
|
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}` : "";
|
|
43294
43639
|
const iso2 = normalizeToIso2(creator.country);
|
|
43295
43640
|
const meta = codeToMeta[iso2];
|
|
43296
|
-
return /* @__PURE__ */ (0,
|
|
43297
|
-
/* @__PURE__ */ (0,
|
|
43298
|
-
/* @__PURE__ */ (0,
|
|
43299
|
-
/* @__PURE__ */ (0,
|
|
43641
|
+
return /* @__PURE__ */ (0, import_jsx_runtime175.jsxs)("div", { className: "flex items-start gap-1 md:gap-6", children: [
|
|
43642
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsxs)("div", { className: "flex flex-col items-center gap-6", children: [
|
|
43643
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("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__ */ (0, import_jsx_runtime175.jsxs)(import_jsx_runtime175.Fragment, { children: [
|
|
43644
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)(
|
|
43300
43645
|
"img",
|
|
43301
43646
|
{
|
|
43302
43647
|
src: creator.profile_pic,
|
|
@@ -43304,24 +43649,24 @@ function ProfileSection({ creator, isValidationComplete }) {
|
|
|
43304
43649
|
className: "object-cover w-[5rem] h-[5rem] rounded-[15px]"
|
|
43305
43650
|
}
|
|
43306
43651
|
),
|
|
43307
|
-
creator?.profile?.isVerified && /* @__PURE__ */ (0,
|
|
43652
|
+
creator?.profile?.isVerified && /* @__PURE__ */ (0, import_jsx_runtime175.jsx)(
|
|
43308
43653
|
BadgeCheck,
|
|
43309
43654
|
{
|
|
43310
43655
|
size: 35,
|
|
43311
43656
|
className: "absolute -top-2 -right-2 text-blue-500 drop-shadow-sm fill-blue-300"
|
|
43312
43657
|
}
|
|
43313
43658
|
)
|
|
43314
|
-
] }) : /* @__PURE__ */ (0,
|
|
43315
|
-
/* @__PURE__ */ (0,
|
|
43659
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime175.jsx)("span", { className: "text-2xl text-primary", children: creator.name?.charAt(0) || "?" }) }),
|
|
43660
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: "block sm:hidden", children: /* @__PURE__ */ (0, import_jsx_runtime175.jsx)(SentimentScoreRank, { score: creator?.sentiment?.matchScore || -1, isValidationComplete, showMinialView: true }) })
|
|
43316
43661
|
] }),
|
|
43317
|
-
/* @__PURE__ */ (0,
|
|
43318
|
-
/* @__PURE__ */ (0,
|
|
43319
|
-
username && /* @__PURE__ */ (0,
|
|
43320
|
-
/* @__PURE__ */ (0,
|
|
43321
|
-
/* @__PURE__ */ (0,
|
|
43322
|
-
/* @__PURE__ */ (0,
|
|
43662
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsxs)("div", { className: "flex flex-col gap-3 truncate", children: [
|
|
43663
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: "flex items-center gap-2", children: /* @__PURE__ */ (0, import_jsx_runtime175.jsx)("h4", { className: "text-lg text-gray900 max-w-[150px]", title: creator.name, children: truncateName2(creator.name, 100) }) }),
|
|
43664
|
+
username && /* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: "text-xs text-gray700", children: username }),
|
|
43665
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsxs)("div", { className: "text-sm text-gray700 flex items-center gap-2", children: [
|
|
43666
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("span", { className: "text-base", children: meta?.flag }),
|
|
43667
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("span", { children: meta?.name || creator.country || "Unknown" })
|
|
43323
43668
|
] }),
|
|
43324
|
-
/* @__PURE__ */ (0,
|
|
43669
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: "text-xs text-gray700 text-wrap", children: truncateName2(creator.description, 100) })
|
|
43325
43670
|
] })
|
|
43326
43671
|
] });
|
|
43327
43672
|
}
|
|
@@ -43329,7 +43674,7 @@ function CreatorCardExpandedSection({
|
|
|
43329
43674
|
creator
|
|
43330
43675
|
}) {
|
|
43331
43676
|
const hasBrandBreakdown = creator?.brandCollaborations?.insights?.brandBreakdown && creator?.sentiment?.deepAnalysis;
|
|
43332
|
-
return /* @__PURE__ */ (0,
|
|
43677
|
+
return /* @__PURE__ */ (0, import_jsx_runtime175.jsxs)(
|
|
43333
43678
|
import_framer_motion5.motion.div,
|
|
43334
43679
|
{
|
|
43335
43680
|
initial: { y: 20, opacity: 0 },
|
|
@@ -43337,21 +43682,21 @@ function CreatorCardExpandedSection({
|
|
|
43337
43682
|
transition: { duration: 0.3, delay: 0.1 },
|
|
43338
43683
|
className: "md:mt-6 space-y-5",
|
|
43339
43684
|
children: [
|
|
43340
|
-
/* @__PURE__ */ (0,
|
|
43341
|
-
/* @__PURE__ */ (0,
|
|
43685
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsxs)("div", { className: "md:grid md:grid-cols-[1.3fr_1fr_2fr_120px] gap-8 py-4 pr-7", children: [
|
|
43686
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: "col-span-4 sm:col-span-1", children: hasBrandBreakdown ? /* @__PURE__ */ (0, import_jsx_runtime175.jsx)(
|
|
43342
43687
|
BrandCollaborationsList,
|
|
43343
43688
|
{
|
|
43344
43689
|
brandBreakdown: creator?.brandCollaborations
|
|
43345
43690
|
}
|
|
43346
|
-
) : /* @__PURE__ */ (0,
|
|
43347
|
-
/* @__PURE__ */ (0,
|
|
43691
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: "hidden sm:block" }) }),
|
|
43692
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: "col-span-4 sm:col-span-3", children: creator?.audienceDemographics ? /* @__PURE__ */ (0, import_jsx_runtime175.jsx)(
|
|
43348
43693
|
EngagedAudienceDemographics,
|
|
43349
43694
|
{
|
|
43350
43695
|
audienceDemographics: creator.audienceDemographics
|
|
43351
43696
|
}
|
|
43352
43697
|
) : null })
|
|
43353
43698
|
] }),
|
|
43354
|
-
/* @__PURE__ */ (0,
|
|
43699
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)(
|
|
43355
43700
|
PlatformPostsSection,
|
|
43356
43701
|
{
|
|
43357
43702
|
platformMetrics: creator.platformMetrics,
|
|
@@ -43366,14 +43711,14 @@ function CreatorCard({
|
|
|
43366
43711
|
creator,
|
|
43367
43712
|
isValidationComplete
|
|
43368
43713
|
}) {
|
|
43369
|
-
const [detailsExpanded, setDetailsExpanded] = (0,
|
|
43714
|
+
const [detailsExpanded, setDetailsExpanded] = (0, import_react88.useState)(false);
|
|
43370
43715
|
const hasValidBrandMention = (() => {
|
|
43371
43716
|
const insights = creator?.brandCollaborations?.insights;
|
|
43372
43717
|
if (!insights) return false;
|
|
43373
43718
|
const isValid2 = (val) => val !== null && val !== void 0 && val !== 0 && val !== "0" && val !== "" && !Number.isNaN(val);
|
|
43374
43719
|
return isValid2(insights.averageBrandEngagementRate) || isValid2(insights.effectivenessPercent) || isValid2(insights.saturationRate);
|
|
43375
43720
|
})();
|
|
43376
|
-
return /* @__PURE__ */ (0,
|
|
43721
|
+
return /* @__PURE__ */ (0, import_jsx_runtime175.jsxs)(
|
|
43377
43722
|
import_framer_motion5.motion.div,
|
|
43378
43723
|
{
|
|
43379
43724
|
layout: true,
|
|
@@ -43384,20 +43729,20 @@ function CreatorCard({
|
|
|
43384
43729
|
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"}`,
|
|
43385
43730
|
onClick: () => setDetailsExpanded((prev) => !prev),
|
|
43386
43731
|
children: [
|
|
43387
|
-
/* @__PURE__ */ (0,
|
|
43388
|
-
/* @__PURE__ */ (0,
|
|
43389
|
-
hasValidBrandMention && /* @__PURE__ */ (0,
|
|
43390
|
-
/* @__PURE__ */ (0,
|
|
43391
|
-
/* @__PURE__ */ (0,
|
|
43732
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsxs)("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: [
|
|
43733
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)(ProfileSection, { creator, isValidationComplete }),
|
|
43734
|
+
hasValidBrandMention && /* @__PURE__ */ (0, import_jsx_runtime175.jsx)(BrandMentionPerformance, { creator }),
|
|
43735
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)(CreatorFitSummary, { creator, showBrandPerformance: hasValidBrandMention }),
|
|
43736
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: "hidden md:block", children: /* @__PURE__ */ (0, import_jsx_runtime175.jsx)(SentimentScoreRank, { score: creator?.sentiment?.matchScore || -1, isValidationComplete }) })
|
|
43392
43737
|
] }),
|
|
43393
|
-
/* @__PURE__ */ (0,
|
|
43738
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)(import_framer_motion5.AnimatePresence, { children: detailsExpanded && /* @__PURE__ */ (0, import_jsx_runtime175.jsx)(
|
|
43394
43739
|
import_framer_motion5.motion.div,
|
|
43395
43740
|
{
|
|
43396
43741
|
initial: { height: 0, opacity: 0 },
|
|
43397
43742
|
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 } } },
|
|
43398
43743
|
exit: { height: 0, opacity: 0, transition: { height: { duration: 0.3, ease: [0.04, 0.62, 0.23, 0.98] }, opacity: { duration: 0.2 } } },
|
|
43399
43744
|
className: "overflow-hidden mt-4",
|
|
43400
|
-
children: /* @__PURE__ */ (0,
|
|
43745
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime175.jsx)(CreatorCardExpandedSection, { creator })
|
|
43401
43746
|
}
|
|
43402
43747
|
) })
|
|
43403
43748
|
]
|
|
@@ -43408,19 +43753,19 @@ function CreatorDisplay({
|
|
|
43408
43753
|
creators,
|
|
43409
43754
|
isValidationComplete
|
|
43410
43755
|
}) {
|
|
43411
|
-
const [viewMode, setViewMode] = (0,
|
|
43412
|
-
return /* @__PURE__ */ (0,
|
|
43413
|
-
/* @__PURE__ */ (0,
|
|
43414
|
-
/* @__PURE__ */ (0,
|
|
43756
|
+
const [viewMode, setViewMode] = (0, import_react88.useState)("list");
|
|
43757
|
+
return /* @__PURE__ */ (0, import_jsx_runtime175.jsxs)("div", { className: "px-4", children: [
|
|
43758
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsxs)("div", { className: "flex justify-end items-center my-3 gap-1", children: [
|
|
43759
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsxs)("span", { className: "text-xs text-gray600 mr-2", children: [
|
|
43415
43760
|
creators.length,
|
|
43416
43761
|
" creators"
|
|
43417
43762
|
] }),
|
|
43418
|
-
/* @__PURE__ */ (0,
|
|
43763
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)(
|
|
43419
43764
|
"button",
|
|
43420
43765
|
{
|
|
43421
43766
|
className: `h-7 w-7 flex items-center justify-center rounded ${viewMode === "list" ? "bg-gray200" : ""}`,
|
|
43422
43767
|
onClick: () => setViewMode("list"),
|
|
43423
|
-
children: /* @__PURE__ */ (0,
|
|
43768
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime175.jsx)(
|
|
43424
43769
|
AlignJustify,
|
|
43425
43770
|
{
|
|
43426
43771
|
className: `h-5 w-5 ${viewMode === "list" ? "text-gray900 dark:text-white" : "text-gray500"}`
|
|
@@ -43428,12 +43773,12 @@ function CreatorDisplay({
|
|
|
43428
43773
|
)
|
|
43429
43774
|
}
|
|
43430
43775
|
),
|
|
43431
|
-
/* @__PURE__ */ (0,
|
|
43776
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)(
|
|
43432
43777
|
"button",
|
|
43433
43778
|
{
|
|
43434
43779
|
className: `h-7 w-7 flex items-center justify-center rounded ${viewMode === "grid" ? "bg-gray200" : ""}`,
|
|
43435
43780
|
onClick: () => setViewMode("grid"),
|
|
43436
|
-
children: /* @__PURE__ */ (0,
|
|
43781
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime175.jsx)(
|
|
43437
43782
|
LayoutGrid,
|
|
43438
43783
|
{
|
|
43439
43784
|
className: `h-5 w-5 ${viewMode === "grid" ? "text-gray900 dark:text-white" : "text-gray500"}`
|
|
@@ -43442,43 +43787,43 @@ function CreatorDisplay({
|
|
|
43442
43787
|
}
|
|
43443
43788
|
)
|
|
43444
43789
|
] }),
|
|
43445
|
-
creators.length > 0 ? viewMode === "list" ? /* @__PURE__ */ (0,
|
|
43446
|
-
/* @__PURE__ */ (0,
|
|
43447
|
-
/* @__PURE__ */ (0,
|
|
43448
|
-
/* @__PURE__ */ (0,
|
|
43790
|
+
creators.length > 0 ? viewMode === "list" ? /* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: "space-y-4", children: creators.map((creator) => /* @__PURE__ */ (0, import_jsx_runtime175.jsx)(CreatorCard, { creator, isValidationComplete }, creator._id)) }) : /* @__PURE__ */ (0, import_jsx_runtime175.jsx)(CreatorGridView, { creatorData: creators }) : /* @__PURE__ */ (0, import_jsx_runtime175.jsxs)("div", { className: "text-center py-8 bg-gray100 rounded-lg border border-gray300", children: [
|
|
43791
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: "w-12 h-12 rounded-full bg-primary/10 flex items-center justify-center mx-auto mb-3", children: /* @__PURE__ */ (0, import_jsx_runtime175.jsx)(Users, { className: "w-6 h-6 text-primary" }) }),
|
|
43792
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("h3", { className: "text-base font-medium text-gray900", children: "No creators found" }),
|
|
43793
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("p", { className: "mt-1 text-sm text-gray600", children: "Try adjusting your search criteria" })
|
|
43449
43794
|
] })
|
|
43450
43795
|
] });
|
|
43451
43796
|
}
|
|
43452
43797
|
function CreatorCardSkeleton() {
|
|
43453
|
-
return /* @__PURE__ */ (0,
|
|
43454
|
-
/* @__PURE__ */ (0,
|
|
43455
|
-
/* @__PURE__ */ (0,
|
|
43456
|
-
/* @__PURE__ */ (0,
|
|
43457
|
-
/* @__PURE__ */ (0,
|
|
43458
|
-
/* @__PURE__ */ (0,
|
|
43459
|
-
/* @__PURE__ */ (0,
|
|
43460
|
-
/* @__PURE__ */ (0,
|
|
43798
|
+
return /* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: "bg-paperBackground rounded-[25px] py-5 pl-7 pr-7 border-2 border-gray300 shadow-sm", children: /* @__PURE__ */ (0, import_jsx_runtime175.jsxs)("div", { className: "flex flex-col gap-4 sm:grid sm:grid-cols-[1.3fr_1fr_2fr_120px] gap-8 items-start w-full", children: [
|
|
43799
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsxs)("div", { className: "flex items-start gap-1 md:gap-6", children: [
|
|
43800
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: "w-[5rem] h-[5rem] rounded-[10px] bg-gray200 animate-pulse" }),
|
|
43801
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsxs)("div", { className: "flex flex-col gap-3", children: [
|
|
43802
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: "h-5 w-36 rounded bg-gray200 animate-pulse" }),
|
|
43803
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: "h-3 w-24 rounded bg-gray200 animate-pulse" }),
|
|
43804
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: "h-3 w-32 rounded bg-gray200 animate-pulse" }),
|
|
43805
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: "h-3 w-44 rounded bg-gray200 animate-pulse" })
|
|
43461
43806
|
] })
|
|
43462
43807
|
] }),
|
|
43463
|
-
/* @__PURE__ */ (0,
|
|
43464
|
-
/* @__PURE__ */ (0,
|
|
43465
|
-
/* @__PURE__ */ (0,
|
|
43466
|
-
/* @__PURE__ */ (0,
|
|
43808
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsxs)("div", { className: "space-y-3 w-full", children: [
|
|
43809
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: "h-4 w-32 rounded bg-gray200 animate-pulse" }),
|
|
43810
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: "h-4 w-28 rounded bg-gray200 animate-pulse" }),
|
|
43811
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: "h-4 w-24 rounded bg-gray200 animate-pulse" })
|
|
43467
43812
|
] }),
|
|
43468
|
-
/* @__PURE__ */ (0,
|
|
43469
|
-
/* @__PURE__ */ (0,
|
|
43470
|
-
/* @__PURE__ */ (0,
|
|
43471
|
-
/* @__PURE__ */ (0,
|
|
43472
|
-
/* @__PURE__ */ (0,
|
|
43813
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsxs)("div", { className: "space-y-3 w-full", children: [
|
|
43814
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: "h-4 w-40 rounded bg-gray200 animate-pulse" }),
|
|
43815
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: "h-3 w-full rounded bg-gray200 animate-pulse" }),
|
|
43816
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: "h-3 w-[90%] rounded bg-gray200 animate-pulse" }),
|
|
43817
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: "h-3 w-[75%] rounded bg-gray200 animate-pulse" })
|
|
43473
43818
|
] }),
|
|
43474
|
-
/* @__PURE__ */ (0,
|
|
43475
|
-
/* @__PURE__ */ (0,
|
|
43476
|
-
/* @__PURE__ */ (0,
|
|
43819
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsxs)("div", { className: "hidden md:flex flex-col items-center justify-center gap-3", children: [
|
|
43820
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: "h-6 w-16 rounded bg-gray200 animate-pulse" }),
|
|
43821
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: "h-4 w-20 rounded bg-gray200 animate-pulse" })
|
|
43477
43822
|
] })
|
|
43478
43823
|
] }) });
|
|
43479
43824
|
}
|
|
43480
43825
|
function CreatorDisplaySkeleton() {
|
|
43481
|
-
return /* @__PURE__ */ (0,
|
|
43826
|
+
return /* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: "px-4 py-4 space-y-4", children: Array.from({ length: 3 }).map((_, idx) => /* @__PURE__ */ (0, import_jsx_runtime175.jsx)(CreatorCardSkeleton, {}, idx)) });
|
|
43482
43827
|
}
|
|
43483
43828
|
function CreatorExpandedPanel({
|
|
43484
43829
|
isOpen,
|
|
@@ -43489,10 +43834,10 @@ function CreatorExpandedPanel({
|
|
|
43489
43834
|
searchSpec,
|
|
43490
43835
|
fetchCreatorDetails
|
|
43491
43836
|
}) {
|
|
43492
|
-
const [creators, setCreators] = (0,
|
|
43493
|
-
const [loading, setLoading] = (0,
|
|
43837
|
+
const [creators, setCreators] = (0, import_react88.useState)([]);
|
|
43838
|
+
const [loading, setLoading] = (0, import_react88.useState)(false);
|
|
43494
43839
|
const fetcher = fetchCreatorDetails ?? defaultFetchCreatorDetails;
|
|
43495
|
-
const loadCreators = (0,
|
|
43840
|
+
const loadCreators = (0, import_react88.useCallback)(async () => {
|
|
43496
43841
|
if (!creatorIds.length) return;
|
|
43497
43842
|
setLoading(true);
|
|
43498
43843
|
try {
|
|
@@ -43504,15 +43849,15 @@ function CreatorExpandedPanel({
|
|
|
43504
43849
|
setLoading(false);
|
|
43505
43850
|
}
|
|
43506
43851
|
}, [creatorIds, sessionId, version, fetcher]);
|
|
43507
|
-
(0,
|
|
43852
|
+
(0, import_react88.useEffect)(() => {
|
|
43508
43853
|
if (isOpen && creatorIds.length > 0) {
|
|
43509
43854
|
loadCreators();
|
|
43510
43855
|
}
|
|
43511
43856
|
}, [isOpen, loadCreators]);
|
|
43512
43857
|
if (typeof window === "undefined") return null;
|
|
43513
43858
|
return import_react_dom2.default.createPortal(
|
|
43514
|
-
/* @__PURE__ */ (0,
|
|
43515
|
-
/* @__PURE__ */ (0,
|
|
43859
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)(import_framer_motion5.AnimatePresence, { mode: "sync", children: isOpen && /* @__PURE__ */ (0, import_jsx_runtime175.jsxs)(import_jsx_runtime175.Fragment, { children: [
|
|
43860
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)(
|
|
43516
43861
|
import_framer_motion5.motion.div,
|
|
43517
43862
|
{
|
|
43518
43863
|
initial: { opacity: 0 },
|
|
@@ -43527,7 +43872,7 @@ function CreatorExpandedPanel({
|
|
|
43527
43872
|
},
|
|
43528
43873
|
"overlay"
|
|
43529
43874
|
),
|
|
43530
|
-
/* @__PURE__ */ (0,
|
|
43875
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)(
|
|
43531
43876
|
import_framer_motion5.motion.div,
|
|
43532
43877
|
{
|
|
43533
43878
|
initial: { x: "100%" },
|
|
@@ -43535,19 +43880,19 @@ function CreatorExpandedPanel({
|
|
|
43535
43880
|
exit: { x: "100%" },
|
|
43536
43881
|
transition: { type: "spring", damping: 30, stiffness: 400 },
|
|
43537
43882
|
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",
|
|
43538
|
-
children: /* @__PURE__ */ (0,
|
|
43539
|
-
/* @__PURE__ */ (0,
|
|
43540
|
-
/* @__PURE__ */ (0,
|
|
43541
|
-
/* @__PURE__ */ (0,
|
|
43542
|
-
/* @__PURE__ */ (0,
|
|
43543
|
-
/* @__PURE__ */ (0,
|
|
43544
|
-
/* @__PURE__ */ (0,
|
|
43883
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime175.jsxs)("div", { className: "py-4 font-noto", children: [
|
|
43884
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsxs)("div", { className: "flex justify-between items-center w-full mb-4 pl-2", children: [
|
|
43885
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("button", { onClick: onClose, className: "p-2 rounded-full transition-colors", children: /* @__PURE__ */ (0, import_jsx_runtime175.jsx)(X, { className: "w-5 h-5" }) }),
|
|
43886
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsxs)("div", { className: "flex-1 flex flex-col w-[80%]", children: [
|
|
43887
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: "flex flex-col md:flex-row justify-between gap-2 md:gap-0 md:items-center pr-16", children: /* @__PURE__ */ (0, import_jsx_runtime175.jsxs)("div", { className: "flex flex-col", children: [
|
|
43888
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: "w-fit rounded-md bg-purple200 px-2 py-[4px] mb-2", children: /* @__PURE__ */ (0, import_jsx_runtime175.jsx)("h4", { className: "text-xs font-medium text-purpleText", children: "VERIFIED SEARCH RESULTS" }) }),
|
|
43889
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("h2", { className: "text-xl font-bold mb-1", children: "Creators Search Results" })
|
|
43545
43890
|
] }) }),
|
|
43546
|
-
searchSpec && /* @__PURE__ */ (0,
|
|
43891
|
+
searchSpec && /* @__PURE__ */ (0, import_jsx_runtime175.jsx)(SearchSpecDisplay, { spec: searchSpec })
|
|
43547
43892
|
] })
|
|
43548
43893
|
] }),
|
|
43549
|
-
/* @__PURE__ */ (0,
|
|
43550
|
-
loading ? /* @__PURE__ */ (0,
|
|
43894
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: "border-b border-gray300" }),
|
|
43895
|
+
loading ? /* @__PURE__ */ (0, import_jsx_runtime175.jsx)(CreatorDisplaySkeleton, {}) : /* @__PURE__ */ (0, import_jsx_runtime175.jsx)(CreatorDisplay, { creators, isValidationComplete: version !== void 0 })
|
|
43551
43896
|
] })
|
|
43552
43897
|
},
|
|
43553
43898
|
"creator-panel"
|
|
@@ -43558,7 +43903,7 @@ function CreatorExpandedPanel({
|
|
|
43558
43903
|
}
|
|
43559
43904
|
|
|
43560
43905
|
// src/molecules/creator-discovery/CreatorWidget/useCreatorWidgetPolling.ts
|
|
43561
|
-
var
|
|
43906
|
+
var import_react89 = require("react");
|
|
43562
43907
|
var DEFAULT_POLLING_CONFIG = {
|
|
43563
43908
|
pollInterval: 5e3,
|
|
43564
43909
|
maxDuration: 15 * 60 * 1e3,
|
|
@@ -43575,22 +43920,22 @@ function useCreatorWidgetPolling({
|
|
|
43575
43920
|
}) {
|
|
43576
43921
|
const fetchVersions = fetchVersionsProp ?? defaultFetchVersions;
|
|
43577
43922
|
const fetchStatus = fetchStatusProp ?? defaultFetchStatus;
|
|
43578
|
-
const config = (0,
|
|
43923
|
+
const config = (0, import_react89.useMemo)(
|
|
43579
43924
|
() => ({ ...DEFAULT_POLLING_CONFIG, ...pollingConfig }),
|
|
43580
43925
|
[pollingConfig]
|
|
43581
43926
|
);
|
|
43582
|
-
const [versionData, setVersionData] = (0,
|
|
43583
|
-
const [totalVersions, setTotalVersions] = (0,
|
|
43584
|
-
const [selectedVersion, setSelectedVersion] = (0,
|
|
43585
|
-
const [isLoadingVersion, setIsLoadingVersion] = (0,
|
|
43586
|
-
const [isValidationComplete, setIsValidationComplete] = (0,
|
|
43587
|
-
const [versionStatus, setVersionStatus] = (0,
|
|
43588
|
-
const [statusDetails, setStatusDetails] = (0,
|
|
43589
|
-
const [timeDisplay, setTimeDisplay] = (0,
|
|
43590
|
-
const [loadingStatus, setLoadingStatus] = (0,
|
|
43591
|
-
const remainingTimeRef = (0,
|
|
43927
|
+
const [versionData, setVersionData] = (0, import_react89.useState)(null);
|
|
43928
|
+
const [totalVersions, setTotalVersions] = (0, import_react89.useState)(0);
|
|
43929
|
+
const [selectedVersion, setSelectedVersion] = (0, import_react89.useState)();
|
|
43930
|
+
const [isLoadingVersion, setIsLoadingVersion] = (0, import_react89.useState)(false);
|
|
43931
|
+
const [isValidationComplete, setIsValidationComplete] = (0, import_react89.useState)(false);
|
|
43932
|
+
const [versionStatus, setVersionStatus] = (0, import_react89.useState)("checking");
|
|
43933
|
+
const [statusDetails, setStatusDetails] = (0, import_react89.useState)();
|
|
43934
|
+
const [timeDisplay, setTimeDisplay] = (0, import_react89.useState)("");
|
|
43935
|
+
const [loadingStatus, setLoadingStatus] = (0, import_react89.useState)(true);
|
|
43936
|
+
const remainingTimeRef = (0, import_react89.useRef)(0);
|
|
43592
43937
|
const requestedVersion = selectedVersion ?? currentVersion ?? versionData?.currentVersion;
|
|
43593
|
-
const fetchVersionData = (0,
|
|
43938
|
+
const fetchVersionData = (0, import_react89.useCallback)(async () => {
|
|
43594
43939
|
if (!sessionId) return;
|
|
43595
43940
|
if (!versionData) setIsLoadingVersion(true);
|
|
43596
43941
|
try {
|
|
@@ -43611,17 +43956,17 @@ function useCreatorWidgetPolling({
|
|
|
43611
43956
|
setIsLoadingVersion(false);
|
|
43612
43957
|
}
|
|
43613
43958
|
}, [sessionId, requestedVersion, isValidationComplete, fetchVersions, versionData]);
|
|
43614
|
-
(0,
|
|
43959
|
+
(0, import_react89.useEffect)(() => {
|
|
43615
43960
|
fetchVersionData();
|
|
43616
43961
|
}, [sessionId, requestedVersion, isValidationComplete]);
|
|
43617
|
-
(0,
|
|
43962
|
+
(0, import_react89.useEffect)(() => {
|
|
43618
43963
|
if (totalVersions > 0 || !sessionId) return;
|
|
43619
43964
|
const interval = setInterval(() => {
|
|
43620
43965
|
if (totalVersions === 0) fetchVersionData();
|
|
43621
43966
|
}, config.pollInterval);
|
|
43622
43967
|
return () => clearInterval(interval);
|
|
43623
43968
|
}, [totalVersions, sessionId, fetchVersionData, config.pollInterval]);
|
|
43624
|
-
(0,
|
|
43969
|
+
(0, import_react89.useEffect)(() => {
|
|
43625
43970
|
if (!selectedVersion && !requestedVersion) return;
|
|
43626
43971
|
const activeVersion = selectedVersion ?? requestedVersion;
|
|
43627
43972
|
let isMounted = true;
|
|
@@ -43704,7 +44049,7 @@ function useCreatorWidgetPolling({
|
|
|
43704
44049
|
stopPolling();
|
|
43705
44050
|
};
|
|
43706
44051
|
}, [selectedVersion, requestedVersion, sessionId]);
|
|
43707
|
-
const versionNumbers = (0,
|
|
44052
|
+
const versionNumbers = (0, import_react89.useMemo)(() => {
|
|
43708
44053
|
if (!totalVersions) return [];
|
|
43709
44054
|
return Array.from({ length: totalVersions }, (_, i) => i + 1);
|
|
43710
44055
|
}, [totalVersions]);
|
|
@@ -43731,7 +44076,7 @@ function useCreatorWidgetPolling({
|
|
|
43731
44076
|
}
|
|
43732
44077
|
|
|
43733
44078
|
// src/molecules/creator-discovery/CreatorWidget/CreatorWidget.tsx
|
|
43734
|
-
var
|
|
44079
|
+
var import_jsx_runtime176 = require("react/jsx-runtime");
|
|
43735
44080
|
function CreatorWidgetInner({
|
|
43736
44081
|
sessionId,
|
|
43737
44082
|
currentVersion,
|
|
@@ -43744,7 +44089,7 @@ function CreatorWidgetInner({
|
|
|
43744
44089
|
onAction,
|
|
43745
44090
|
className
|
|
43746
44091
|
}) {
|
|
43747
|
-
const [isExpanded, setIsExpanded] = (0,
|
|
44092
|
+
const [isExpanded, setIsExpanded] = (0, import_react90.useState)(false);
|
|
43748
44093
|
const {
|
|
43749
44094
|
versionNumbers,
|
|
43750
44095
|
selectedVersion,
|
|
@@ -43765,11 +44110,11 @@ function CreatorWidgetInner({
|
|
|
43765
44110
|
pollingConfig,
|
|
43766
44111
|
onStatusChange
|
|
43767
44112
|
});
|
|
43768
|
-
const handleVersionSelect = (0,
|
|
44113
|
+
const handleVersionSelect = (0, import_react90.useCallback)(
|
|
43769
44114
|
(version) => setSelectedVersion(version),
|
|
43770
44115
|
[setSelectedVersion]
|
|
43771
44116
|
);
|
|
43772
|
-
const handleViewCreators = (0,
|
|
44117
|
+
const handleViewCreators = (0, import_react90.useCallback)(() => {
|
|
43773
44118
|
setIsExpanded(true);
|
|
43774
44119
|
onAction?.({
|
|
43775
44120
|
type: "view-creators",
|
|
@@ -43779,8 +44124,8 @@ function CreatorWidgetInner({
|
|
|
43779
44124
|
searchSpec
|
|
43780
44125
|
});
|
|
43781
44126
|
}, [onAction, sessionId, creatorIds, selectedVersion, searchSpec]);
|
|
43782
|
-
return /* @__PURE__ */ (0,
|
|
43783
|
-
/* @__PURE__ */ (0,
|
|
44127
|
+
return /* @__PURE__ */ (0, import_jsx_runtime176.jsxs)("div", { className, children: [
|
|
44128
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)(
|
|
43784
44129
|
CreatorCompactView,
|
|
43785
44130
|
{
|
|
43786
44131
|
versions: versionNumbers,
|
|
@@ -43796,7 +44141,7 @@ function CreatorWidgetInner({
|
|
|
43796
44141
|
isLoading
|
|
43797
44142
|
}
|
|
43798
44143
|
),
|
|
43799
|
-
/* @__PURE__ */ (0,
|
|
44144
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)(
|
|
43800
44145
|
CreatorExpandedPanel,
|
|
43801
44146
|
{
|
|
43802
44147
|
isOpen: isExpanded,
|
|
@@ -43810,7 +44155,7 @@ function CreatorWidgetInner({
|
|
|
43810
44155
|
)
|
|
43811
44156
|
] });
|
|
43812
44157
|
}
|
|
43813
|
-
var CreatorWidget = (0,
|
|
44158
|
+
var CreatorWidget = (0, import_react90.memo)(CreatorWidgetInner);
|
|
43814
44159
|
|
|
43815
44160
|
// src/components/ui/index.ts
|
|
43816
44161
|
var ui_exports = {};
|
|
@@ -44104,7 +44449,7 @@ __export(ui_exports, {
|
|
|
44104
44449
|
// src/components/ui/button-group.tsx
|
|
44105
44450
|
var import_react_slot4 = require("@radix-ui/react-slot");
|
|
44106
44451
|
var import_class_variance_authority8 = require("class-variance-authority");
|
|
44107
|
-
var
|
|
44452
|
+
var import_jsx_runtime177 = require("react/jsx-runtime");
|
|
44108
44453
|
var buttonGroupVariants = (0, import_class_variance_authority8.cva)(
|
|
44109
44454
|
"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",
|
|
44110
44455
|
{
|
|
@@ -44124,7 +44469,7 @@ function ButtonGroup({
|
|
|
44124
44469
|
orientation,
|
|
44125
44470
|
...props
|
|
44126
44471
|
}) {
|
|
44127
|
-
return /* @__PURE__ */ (0,
|
|
44472
|
+
return /* @__PURE__ */ (0, import_jsx_runtime177.jsx)(
|
|
44128
44473
|
"div",
|
|
44129
44474
|
{
|
|
44130
44475
|
role: "group",
|
|
@@ -44141,7 +44486,7 @@ function ButtonGroupText({
|
|
|
44141
44486
|
...props
|
|
44142
44487
|
}) {
|
|
44143
44488
|
const Comp = asChild ? import_react_slot4.Slot : "div";
|
|
44144
|
-
return /* @__PURE__ */ (0,
|
|
44489
|
+
return /* @__PURE__ */ (0, import_jsx_runtime177.jsx)(
|
|
44145
44490
|
Comp,
|
|
44146
44491
|
{
|
|
44147
44492
|
className: cn(
|
|
@@ -44157,7 +44502,7 @@ function ButtonGroupSeparator({
|
|
|
44157
44502
|
orientation = "vertical",
|
|
44158
44503
|
...props
|
|
44159
44504
|
}) {
|
|
44160
|
-
return /* @__PURE__ */ (0,
|
|
44505
|
+
return /* @__PURE__ */ (0, import_jsx_runtime177.jsx)(
|
|
44161
44506
|
Separator2,
|
|
44162
44507
|
{
|
|
44163
44508
|
"data-slot": "button-group-separator",
|
|
@@ -44173,9 +44518,9 @@ function ButtonGroupSeparator({
|
|
|
44173
44518
|
|
|
44174
44519
|
// src/components/ui/empty.tsx
|
|
44175
44520
|
var import_class_variance_authority9 = require("class-variance-authority");
|
|
44176
|
-
var
|
|
44521
|
+
var import_jsx_runtime178 = require("react/jsx-runtime");
|
|
44177
44522
|
function Empty({ className, ...props }) {
|
|
44178
|
-
return /* @__PURE__ */ (0,
|
|
44523
|
+
return /* @__PURE__ */ (0, import_jsx_runtime178.jsx)(
|
|
44179
44524
|
"div",
|
|
44180
44525
|
{
|
|
44181
44526
|
"data-slot": "empty",
|
|
@@ -44188,7 +44533,7 @@ function Empty({ className, ...props }) {
|
|
|
44188
44533
|
);
|
|
44189
44534
|
}
|
|
44190
44535
|
function EmptyHeader({ className, ...props }) {
|
|
44191
|
-
return /* @__PURE__ */ (0,
|
|
44536
|
+
return /* @__PURE__ */ (0, import_jsx_runtime178.jsx)(
|
|
44192
44537
|
"div",
|
|
44193
44538
|
{
|
|
44194
44539
|
"data-slot": "empty-header",
|
|
@@ -44219,7 +44564,7 @@ function EmptyMedia({
|
|
|
44219
44564
|
variant = "default",
|
|
44220
44565
|
...props
|
|
44221
44566
|
}) {
|
|
44222
|
-
return /* @__PURE__ */ (0,
|
|
44567
|
+
return /* @__PURE__ */ (0, import_jsx_runtime178.jsx)(
|
|
44223
44568
|
"div",
|
|
44224
44569
|
{
|
|
44225
44570
|
"data-slot": "empty-icon",
|
|
@@ -44230,7 +44575,7 @@ function EmptyMedia({
|
|
|
44230
44575
|
);
|
|
44231
44576
|
}
|
|
44232
44577
|
function EmptyTitle({ className, ...props }) {
|
|
44233
|
-
return /* @__PURE__ */ (0,
|
|
44578
|
+
return /* @__PURE__ */ (0, import_jsx_runtime178.jsx)(
|
|
44234
44579
|
"div",
|
|
44235
44580
|
{
|
|
44236
44581
|
"data-slot": "empty-title",
|
|
@@ -44240,7 +44585,7 @@ function EmptyTitle({ className, ...props }) {
|
|
|
44240
44585
|
);
|
|
44241
44586
|
}
|
|
44242
44587
|
function EmptyDescription({ className, ...props }) {
|
|
44243
|
-
return /* @__PURE__ */ (0,
|
|
44588
|
+
return /* @__PURE__ */ (0, import_jsx_runtime178.jsx)(
|
|
44244
44589
|
"div",
|
|
44245
44590
|
{
|
|
44246
44591
|
"data-slot": "empty-description",
|
|
@@ -44253,7 +44598,7 @@ function EmptyDescription({ className, ...props }) {
|
|
|
44253
44598
|
);
|
|
44254
44599
|
}
|
|
44255
44600
|
function EmptyContent({ className, ...props }) {
|
|
44256
|
-
return /* @__PURE__ */ (0,
|
|
44601
|
+
return /* @__PURE__ */ (0, import_jsx_runtime178.jsx)(
|
|
44257
44602
|
"div",
|
|
44258
44603
|
{
|
|
44259
44604
|
"data-slot": "empty-content",
|
|
@@ -44267,11 +44612,11 @@ function EmptyContent({ className, ...props }) {
|
|
|
44267
44612
|
}
|
|
44268
44613
|
|
|
44269
44614
|
// src/components/ui/field.tsx
|
|
44270
|
-
var
|
|
44615
|
+
var import_react91 = require("react");
|
|
44271
44616
|
var import_class_variance_authority10 = require("class-variance-authority");
|
|
44272
|
-
var
|
|
44617
|
+
var import_jsx_runtime179 = require("react/jsx-runtime");
|
|
44273
44618
|
function FieldSet({ className, ...props }) {
|
|
44274
|
-
return /* @__PURE__ */ (0,
|
|
44619
|
+
return /* @__PURE__ */ (0, import_jsx_runtime179.jsx)(
|
|
44275
44620
|
"fieldset",
|
|
44276
44621
|
{
|
|
44277
44622
|
"data-slot": "field-set",
|
|
@@ -44289,7 +44634,7 @@ function FieldLegend({
|
|
|
44289
44634
|
variant = "legend",
|
|
44290
44635
|
...props
|
|
44291
44636
|
}) {
|
|
44292
|
-
return /* @__PURE__ */ (0,
|
|
44637
|
+
return /* @__PURE__ */ (0, import_jsx_runtime179.jsx)(
|
|
44293
44638
|
"legend",
|
|
44294
44639
|
{
|
|
44295
44640
|
"data-slot": "field-legend",
|
|
@@ -44305,7 +44650,7 @@ function FieldLegend({
|
|
|
44305
44650
|
);
|
|
44306
44651
|
}
|
|
44307
44652
|
function FieldGroup({ className, ...props }) {
|
|
44308
|
-
return /* @__PURE__ */ (0,
|
|
44653
|
+
return /* @__PURE__ */ (0, import_jsx_runtime179.jsx)(
|
|
44309
44654
|
"div",
|
|
44310
44655
|
{
|
|
44311
44656
|
"data-slot": "field-group",
|
|
@@ -44345,7 +44690,7 @@ function Field({
|
|
|
44345
44690
|
orientation = "vertical",
|
|
44346
44691
|
...props
|
|
44347
44692
|
}) {
|
|
44348
|
-
return /* @__PURE__ */ (0,
|
|
44693
|
+
return /* @__PURE__ */ (0, import_jsx_runtime179.jsx)(
|
|
44349
44694
|
"div",
|
|
44350
44695
|
{
|
|
44351
44696
|
role: "group",
|
|
@@ -44357,7 +44702,7 @@ function Field({
|
|
|
44357
44702
|
);
|
|
44358
44703
|
}
|
|
44359
44704
|
function FieldContent({ className, ...props }) {
|
|
44360
|
-
return /* @__PURE__ */ (0,
|
|
44705
|
+
return /* @__PURE__ */ (0, import_jsx_runtime179.jsx)(
|
|
44361
44706
|
"div",
|
|
44362
44707
|
{
|
|
44363
44708
|
"data-slot": "field-content",
|
|
@@ -44373,7 +44718,7 @@ function FieldLabel({
|
|
|
44373
44718
|
className,
|
|
44374
44719
|
...props
|
|
44375
44720
|
}) {
|
|
44376
|
-
return /* @__PURE__ */ (0,
|
|
44721
|
+
return /* @__PURE__ */ (0, import_jsx_runtime179.jsx)(
|
|
44377
44722
|
Label,
|
|
44378
44723
|
{
|
|
44379
44724
|
"data-slot": "field-label",
|
|
@@ -44388,7 +44733,7 @@ function FieldLabel({
|
|
|
44388
44733
|
);
|
|
44389
44734
|
}
|
|
44390
44735
|
function FieldTitle({ className, ...props }) {
|
|
44391
|
-
return /* @__PURE__ */ (0,
|
|
44736
|
+
return /* @__PURE__ */ (0, import_jsx_runtime179.jsx)(
|
|
44392
44737
|
"div",
|
|
44393
44738
|
{
|
|
44394
44739
|
"data-slot": "field-label",
|
|
@@ -44401,7 +44746,7 @@ function FieldTitle({ className, ...props }) {
|
|
|
44401
44746
|
);
|
|
44402
44747
|
}
|
|
44403
44748
|
function FieldDescription({ className, ...props }) {
|
|
44404
|
-
return /* @__PURE__ */ (0,
|
|
44749
|
+
return /* @__PURE__ */ (0, import_jsx_runtime179.jsx)(
|
|
44405
44750
|
"p",
|
|
44406
44751
|
{
|
|
44407
44752
|
"data-slot": "field-description",
|
|
@@ -44420,7 +44765,7 @@ function FieldSeparator({
|
|
|
44420
44765
|
className,
|
|
44421
44766
|
...props
|
|
44422
44767
|
}) {
|
|
44423
|
-
return /* @__PURE__ */ (0,
|
|
44768
|
+
return /* @__PURE__ */ (0, import_jsx_runtime179.jsxs)(
|
|
44424
44769
|
"div",
|
|
44425
44770
|
{
|
|
44426
44771
|
"data-slot": "field-separator",
|
|
@@ -44431,8 +44776,8 @@ function FieldSeparator({
|
|
|
44431
44776
|
),
|
|
44432
44777
|
...props,
|
|
44433
44778
|
children: [
|
|
44434
|
-
/* @__PURE__ */ (0,
|
|
44435
|
-
children && /* @__PURE__ */ (0,
|
|
44779
|
+
/* @__PURE__ */ (0, import_jsx_runtime179.jsx)(Separator2, { className: "absolute inset-0 top-1/2" }),
|
|
44780
|
+
children && /* @__PURE__ */ (0, import_jsx_runtime179.jsx)(
|
|
44436
44781
|
"span",
|
|
44437
44782
|
{
|
|
44438
44783
|
className: "bg-background text-muted-foreground relative mx-auto block w-fit px-2",
|
|
@@ -44450,7 +44795,7 @@ function FieldError({
|
|
|
44450
44795
|
errors,
|
|
44451
44796
|
...props
|
|
44452
44797
|
}) {
|
|
44453
|
-
const content = (0,
|
|
44798
|
+
const content = (0, import_react91.useMemo)(() => {
|
|
44454
44799
|
if (children) {
|
|
44455
44800
|
return children;
|
|
44456
44801
|
}
|
|
@@ -44460,14 +44805,14 @@ function FieldError({
|
|
|
44460
44805
|
if (errors?.length === 1 && errors[0]?.message) {
|
|
44461
44806
|
return errors[0].message;
|
|
44462
44807
|
}
|
|
44463
|
-
return /* @__PURE__ */ (0,
|
|
44464
|
-
(error, index) => error?.message && /* @__PURE__ */ (0,
|
|
44808
|
+
return /* @__PURE__ */ (0, import_jsx_runtime179.jsx)("ul", { className: "ml-4 flex list-disc flex-col gap-1", children: errors.map(
|
|
44809
|
+
(error, index) => error?.message && /* @__PURE__ */ (0, import_jsx_runtime179.jsx)("li", { children: error.message }, index)
|
|
44465
44810
|
) });
|
|
44466
44811
|
}, [children, errors]);
|
|
44467
44812
|
if (!content) {
|
|
44468
44813
|
return null;
|
|
44469
44814
|
}
|
|
44470
|
-
return /* @__PURE__ */ (0,
|
|
44815
|
+
return /* @__PURE__ */ (0, import_jsx_runtime179.jsx)(
|
|
44471
44816
|
"div",
|
|
44472
44817
|
{
|
|
44473
44818
|
role: "alert",
|
|
@@ -44481,9 +44826,9 @@ function FieldError({
|
|
|
44481
44826
|
|
|
44482
44827
|
// src/components/ui/input-group.tsx
|
|
44483
44828
|
var import_class_variance_authority11 = require("class-variance-authority");
|
|
44484
|
-
var
|
|
44829
|
+
var import_jsx_runtime180 = require("react/jsx-runtime");
|
|
44485
44830
|
function InputGroup({ className, ...props }) {
|
|
44486
|
-
return /* @__PURE__ */ (0,
|
|
44831
|
+
return /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(
|
|
44487
44832
|
"div",
|
|
44488
44833
|
{
|
|
44489
44834
|
"data-slot": "input-group",
|
|
@@ -44527,7 +44872,7 @@ function InputGroupAddon({
|
|
|
44527
44872
|
align = "inline-start",
|
|
44528
44873
|
...props
|
|
44529
44874
|
}) {
|
|
44530
|
-
return /* @__PURE__ */ (0,
|
|
44875
|
+
return /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(
|
|
44531
44876
|
"div",
|
|
44532
44877
|
{
|
|
44533
44878
|
role: "group",
|
|
@@ -44567,7 +44912,7 @@ function InputGroupButton({
|
|
|
44567
44912
|
size = "xs",
|
|
44568
44913
|
...props
|
|
44569
44914
|
}) {
|
|
44570
|
-
return /* @__PURE__ */ (0,
|
|
44915
|
+
return /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(
|
|
44571
44916
|
Button,
|
|
44572
44917
|
{
|
|
44573
44918
|
type,
|
|
@@ -44579,7 +44924,7 @@ function InputGroupButton({
|
|
|
44579
44924
|
);
|
|
44580
44925
|
}
|
|
44581
44926
|
function InputGroupText({ className, ...props }) {
|
|
44582
|
-
return /* @__PURE__ */ (0,
|
|
44927
|
+
return /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(
|
|
44583
44928
|
"span",
|
|
44584
44929
|
{
|
|
44585
44930
|
className: cn(
|
|
@@ -44594,7 +44939,7 @@ function InputGroupInput({
|
|
|
44594
44939
|
className,
|
|
44595
44940
|
...props
|
|
44596
44941
|
}) {
|
|
44597
|
-
return /* @__PURE__ */ (0,
|
|
44942
|
+
return /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(
|
|
44598
44943
|
Input,
|
|
44599
44944
|
{
|
|
44600
44945
|
"data-slot": "input-group-control",
|
|
@@ -44610,7 +44955,7 @@ function InputGroupTextarea({
|
|
|
44610
44955
|
className,
|
|
44611
44956
|
...props
|
|
44612
44957
|
}) {
|
|
44613
|
-
return /* @__PURE__ */ (0,
|
|
44958
|
+
return /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(
|
|
44614
44959
|
Textarea,
|
|
44615
44960
|
{
|
|
44616
44961
|
"data-slot": "input-group-control",
|
|
@@ -44626,9 +44971,9 @@ function InputGroupTextarea({
|
|
|
44626
44971
|
// src/components/ui/item.tsx
|
|
44627
44972
|
var import_react_slot5 = require("@radix-ui/react-slot");
|
|
44628
44973
|
var import_class_variance_authority12 = require("class-variance-authority");
|
|
44629
|
-
var
|
|
44974
|
+
var import_jsx_runtime181 = require("react/jsx-runtime");
|
|
44630
44975
|
function ItemGroup({ className, ...props }) {
|
|
44631
|
-
return /* @__PURE__ */ (0,
|
|
44976
|
+
return /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
|
|
44632
44977
|
"div",
|
|
44633
44978
|
{
|
|
44634
44979
|
role: "list",
|
|
@@ -44642,7 +44987,7 @@ function ItemSeparator({
|
|
|
44642
44987
|
className,
|
|
44643
44988
|
...props
|
|
44644
44989
|
}) {
|
|
44645
|
-
return /* @__PURE__ */ (0,
|
|
44990
|
+
return /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
|
|
44646
44991
|
Separator2,
|
|
44647
44992
|
{
|
|
44648
44993
|
"data-slot": "item-separator",
|
|
@@ -44680,7 +45025,7 @@ function Item8({
|
|
|
44680
45025
|
...props
|
|
44681
45026
|
}) {
|
|
44682
45027
|
const Comp = asChild ? import_react_slot5.Slot : "div";
|
|
44683
|
-
return /* @__PURE__ */ (0,
|
|
45028
|
+
return /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
|
|
44684
45029
|
Comp,
|
|
44685
45030
|
{
|
|
44686
45031
|
"data-slot": "item",
|
|
@@ -44711,7 +45056,7 @@ function ItemMedia({
|
|
|
44711
45056
|
variant = "default",
|
|
44712
45057
|
...props
|
|
44713
45058
|
}) {
|
|
44714
|
-
return /* @__PURE__ */ (0,
|
|
45059
|
+
return /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
|
|
44715
45060
|
"div",
|
|
44716
45061
|
{
|
|
44717
45062
|
"data-slot": "item-media",
|
|
@@ -44722,7 +45067,7 @@ function ItemMedia({
|
|
|
44722
45067
|
);
|
|
44723
45068
|
}
|
|
44724
45069
|
function ItemContent({ className, ...props }) {
|
|
44725
|
-
return /* @__PURE__ */ (0,
|
|
45070
|
+
return /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
|
|
44726
45071
|
"div",
|
|
44727
45072
|
{
|
|
44728
45073
|
"data-slot": "item-content",
|
|
@@ -44735,7 +45080,7 @@ function ItemContent({ className, ...props }) {
|
|
|
44735
45080
|
);
|
|
44736
45081
|
}
|
|
44737
45082
|
function ItemTitle({ className, ...props }) {
|
|
44738
|
-
return /* @__PURE__ */ (0,
|
|
45083
|
+
return /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
|
|
44739
45084
|
"div",
|
|
44740
45085
|
{
|
|
44741
45086
|
"data-slot": "item-title",
|
|
@@ -44748,7 +45093,7 @@ function ItemTitle({ className, ...props }) {
|
|
|
44748
45093
|
);
|
|
44749
45094
|
}
|
|
44750
45095
|
function ItemDescription({ className, ...props }) {
|
|
44751
|
-
return /* @__PURE__ */ (0,
|
|
45096
|
+
return /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
|
|
44752
45097
|
"p",
|
|
44753
45098
|
{
|
|
44754
45099
|
"data-slot": "item-description",
|
|
@@ -44762,7 +45107,7 @@ function ItemDescription({ className, ...props }) {
|
|
|
44762
45107
|
);
|
|
44763
45108
|
}
|
|
44764
45109
|
function ItemActions({ className, ...props }) {
|
|
44765
|
-
return /* @__PURE__ */ (0,
|
|
45110
|
+
return /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
|
|
44766
45111
|
"div",
|
|
44767
45112
|
{
|
|
44768
45113
|
"data-slot": "item-actions",
|
|
@@ -44772,7 +45117,7 @@ function ItemActions({ className, ...props }) {
|
|
|
44772
45117
|
);
|
|
44773
45118
|
}
|
|
44774
45119
|
function ItemHeader({ className, ...props }) {
|
|
44775
|
-
return /* @__PURE__ */ (0,
|
|
45120
|
+
return /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
|
|
44776
45121
|
"div",
|
|
44777
45122
|
{
|
|
44778
45123
|
"data-slot": "item-header",
|
|
@@ -44785,7 +45130,7 @@ function ItemHeader({ className, ...props }) {
|
|
|
44785
45130
|
);
|
|
44786
45131
|
}
|
|
44787
45132
|
function ItemFooter({ className, ...props }) {
|
|
44788
|
-
return /* @__PURE__ */ (0,
|
|
45133
|
+
return /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
|
|
44789
45134
|
"div",
|
|
44790
45135
|
{
|
|
44791
45136
|
"data-slot": "item-footer",
|
|
@@ -44799,9 +45144,9 @@ function ItemFooter({ className, ...props }) {
|
|
|
44799
45144
|
}
|
|
44800
45145
|
|
|
44801
45146
|
// src/components/ui/kbd.tsx
|
|
44802
|
-
var
|
|
45147
|
+
var import_jsx_runtime182 = require("react/jsx-runtime");
|
|
44803
45148
|
function Kbd({ className, ...props }) {
|
|
44804
|
-
return /* @__PURE__ */ (0,
|
|
45149
|
+
return /* @__PURE__ */ (0, import_jsx_runtime182.jsx)(
|
|
44805
45150
|
"kbd",
|
|
44806
45151
|
{
|
|
44807
45152
|
"data-slot": "kbd",
|
|
@@ -44816,7 +45161,7 @@ function Kbd({ className, ...props }) {
|
|
|
44816
45161
|
);
|
|
44817
45162
|
}
|
|
44818
45163
|
function KbdGroup({ className, ...props }) {
|
|
44819
|
-
return /* @__PURE__ */ (0,
|
|
45164
|
+
return /* @__PURE__ */ (0, import_jsx_runtime182.jsx)(
|
|
44820
45165
|
"kbd",
|
|
44821
45166
|
{
|
|
44822
45167
|
"data-slot": "kbd-group",
|
|
@@ -44827,16 +45172,16 @@ function KbdGroup({ className, ...props }) {
|
|
|
44827
45172
|
}
|
|
44828
45173
|
|
|
44829
45174
|
// src/components/ui/sidebar.tsx
|
|
44830
|
-
var
|
|
45175
|
+
var React114 = __toESM(require("react"), 1);
|
|
44831
45176
|
var import_react_slot6 = require("@radix-ui/react-slot");
|
|
44832
45177
|
var import_class_variance_authority13 = require("class-variance-authority");
|
|
44833
45178
|
|
|
44834
45179
|
// src/hooks/use-mobile.tsx
|
|
44835
|
-
var
|
|
45180
|
+
var React113 = __toESM(require("react"), 1);
|
|
44836
45181
|
var MOBILE_BREAKPOINT = 768;
|
|
44837
45182
|
function useIsMobile() {
|
|
44838
|
-
const [isMobile, setIsMobile] =
|
|
44839
|
-
|
|
45183
|
+
const [isMobile, setIsMobile] = React113.useState(void 0);
|
|
45184
|
+
React113.useEffect(() => {
|
|
44840
45185
|
const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
|
|
44841
45186
|
const onChange = () => {
|
|
44842
45187
|
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
@@ -44849,22 +45194,22 @@ function useIsMobile() {
|
|
|
44849
45194
|
}
|
|
44850
45195
|
|
|
44851
45196
|
// src/components/ui/sidebar.tsx
|
|
44852
|
-
var
|
|
45197
|
+
var import_jsx_runtime183 = require("react/jsx-runtime");
|
|
44853
45198
|
var SIDEBAR_COOKIE_NAME = "sidebar_state";
|
|
44854
45199
|
var SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
|
|
44855
45200
|
var SIDEBAR_WIDTH = "16rem";
|
|
44856
45201
|
var SIDEBAR_WIDTH_MOBILE = "18rem";
|
|
44857
45202
|
var SIDEBAR_WIDTH_ICON = "3rem";
|
|
44858
45203
|
var SIDEBAR_KEYBOARD_SHORTCUT = "b";
|
|
44859
|
-
var SidebarContext =
|
|
45204
|
+
var SidebarContext = React114.createContext(null);
|
|
44860
45205
|
function useSidebar() {
|
|
44861
|
-
const context =
|
|
45206
|
+
const context = React114.useContext(SidebarContext);
|
|
44862
45207
|
if (!context) {
|
|
44863
45208
|
throw new Error("useSidebar must be used within a SidebarProvider.");
|
|
44864
45209
|
}
|
|
44865
45210
|
return context;
|
|
44866
45211
|
}
|
|
44867
|
-
var SidebarProvider =
|
|
45212
|
+
var SidebarProvider = React114.forwardRef(
|
|
44868
45213
|
({
|
|
44869
45214
|
defaultOpen = true,
|
|
44870
45215
|
open: openProp,
|
|
@@ -44875,10 +45220,10 @@ var SidebarProvider = React113.forwardRef(
|
|
|
44875
45220
|
...props
|
|
44876
45221
|
}, ref) => {
|
|
44877
45222
|
const isMobile = useIsMobile();
|
|
44878
|
-
const [openMobile, setOpenMobile] =
|
|
44879
|
-
const [_open, _setOpen] =
|
|
45223
|
+
const [openMobile, setOpenMobile] = React114.useState(false);
|
|
45224
|
+
const [_open, _setOpen] = React114.useState(defaultOpen);
|
|
44880
45225
|
const open = openProp ?? _open;
|
|
44881
|
-
const setOpen =
|
|
45226
|
+
const setOpen = React114.useCallback(
|
|
44882
45227
|
(value) => {
|
|
44883
45228
|
const openState = typeof value === "function" ? value(open) : value;
|
|
44884
45229
|
if (setOpenProp) {
|
|
@@ -44890,10 +45235,10 @@ var SidebarProvider = React113.forwardRef(
|
|
|
44890
45235
|
},
|
|
44891
45236
|
[setOpenProp, open]
|
|
44892
45237
|
);
|
|
44893
|
-
const toggleSidebar =
|
|
45238
|
+
const toggleSidebar = React114.useCallback(() => {
|
|
44894
45239
|
return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
|
|
44895
45240
|
}, [isMobile, setOpen, setOpenMobile]);
|
|
44896
|
-
|
|
45241
|
+
React114.useEffect(() => {
|
|
44897
45242
|
const handleKeyDown = (event) => {
|
|
44898
45243
|
if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
|
|
44899
45244
|
event.preventDefault();
|
|
@@ -44904,7 +45249,7 @@ var SidebarProvider = React113.forwardRef(
|
|
|
44904
45249
|
return () => window.removeEventListener("keydown", handleKeyDown);
|
|
44905
45250
|
}, [toggleSidebar]);
|
|
44906
45251
|
const state = open ? "expanded" : "collapsed";
|
|
44907
|
-
const contextValue =
|
|
45252
|
+
const contextValue = React114.useMemo(
|
|
44908
45253
|
() => ({
|
|
44909
45254
|
state,
|
|
44910
45255
|
open,
|
|
@@ -44916,7 +45261,7 @@ var SidebarProvider = React113.forwardRef(
|
|
|
44916
45261
|
}),
|
|
44917
45262
|
[state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]
|
|
44918
45263
|
);
|
|
44919
|
-
return /* @__PURE__ */ (0,
|
|
45264
|
+
return /* @__PURE__ */ (0, import_jsx_runtime183.jsx)(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime183.jsx)(TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ (0, import_jsx_runtime183.jsx)(
|
|
44920
45265
|
"div",
|
|
44921
45266
|
{
|
|
44922
45267
|
style: {
|
|
@@ -44936,7 +45281,7 @@ var SidebarProvider = React113.forwardRef(
|
|
|
44936
45281
|
}
|
|
44937
45282
|
);
|
|
44938
45283
|
SidebarProvider.displayName = "SidebarProvider";
|
|
44939
|
-
var Sidebar =
|
|
45284
|
+
var Sidebar = React114.forwardRef(
|
|
44940
45285
|
({
|
|
44941
45286
|
side = "left",
|
|
44942
45287
|
variant = "sidebar",
|
|
@@ -44947,7 +45292,7 @@ var Sidebar = React113.forwardRef(
|
|
|
44947
45292
|
}, ref) => {
|
|
44948
45293
|
const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
|
|
44949
45294
|
if (collapsible === "none") {
|
|
44950
|
-
return /* @__PURE__ */ (0,
|
|
45295
|
+
return /* @__PURE__ */ (0, import_jsx_runtime183.jsx)(
|
|
44951
45296
|
"div",
|
|
44952
45297
|
{
|
|
44953
45298
|
className: cn(
|
|
@@ -44961,7 +45306,7 @@ var Sidebar = React113.forwardRef(
|
|
|
44961
45306
|
);
|
|
44962
45307
|
}
|
|
44963
45308
|
if (isMobile) {
|
|
44964
|
-
return /* @__PURE__ */ (0,
|
|
45309
|
+
return /* @__PURE__ */ (0, import_jsx_runtime183.jsx)(Sheet2, { open: openMobile, onOpenChange: setOpenMobile, ...props, children: /* @__PURE__ */ (0, import_jsx_runtime183.jsxs)(
|
|
44965
45310
|
SheetContent,
|
|
44966
45311
|
{
|
|
44967
45312
|
"data-sidebar": "sidebar",
|
|
@@ -44972,16 +45317,16 @@ var Sidebar = React113.forwardRef(
|
|
|
44972
45317
|
},
|
|
44973
45318
|
side,
|
|
44974
45319
|
children: [
|
|
44975
|
-
/* @__PURE__ */ (0,
|
|
44976
|
-
/* @__PURE__ */ (0,
|
|
44977
|
-
/* @__PURE__ */ (0,
|
|
45320
|
+
/* @__PURE__ */ (0, import_jsx_runtime183.jsxs)(SheetHeader, { className: "sr-only", children: [
|
|
45321
|
+
/* @__PURE__ */ (0, import_jsx_runtime183.jsx)(SheetTitle, { children: "Sidebar" }),
|
|
45322
|
+
/* @__PURE__ */ (0, import_jsx_runtime183.jsx)(SheetDescription, { children: "Displays the mobile sidebar." })
|
|
44978
45323
|
] }),
|
|
44979
|
-
/* @__PURE__ */ (0,
|
|
45324
|
+
/* @__PURE__ */ (0, import_jsx_runtime183.jsx)("div", { className: "flex h-full w-full flex-col", children })
|
|
44980
45325
|
]
|
|
44981
45326
|
}
|
|
44982
45327
|
) });
|
|
44983
45328
|
}
|
|
44984
|
-
return /* @__PURE__ */ (0,
|
|
45329
|
+
return /* @__PURE__ */ (0, import_jsx_runtime183.jsxs)(
|
|
44985
45330
|
"div",
|
|
44986
45331
|
{
|
|
44987
45332
|
ref,
|
|
@@ -44991,7 +45336,7 @@ var Sidebar = React113.forwardRef(
|
|
|
44991
45336
|
"data-variant": variant,
|
|
44992
45337
|
"data-side": side,
|
|
44993
45338
|
children: [
|
|
44994
|
-
/* @__PURE__ */ (0,
|
|
45339
|
+
/* @__PURE__ */ (0, import_jsx_runtime183.jsx)(
|
|
44995
45340
|
"div",
|
|
44996
45341
|
{
|
|
44997
45342
|
className: cn(
|
|
@@ -45002,7 +45347,7 @@ var Sidebar = React113.forwardRef(
|
|
|
45002
45347
|
)
|
|
45003
45348
|
}
|
|
45004
45349
|
),
|
|
45005
|
-
/* @__PURE__ */ (0,
|
|
45350
|
+
/* @__PURE__ */ (0, import_jsx_runtime183.jsx)(
|
|
45006
45351
|
"div",
|
|
45007
45352
|
{
|
|
45008
45353
|
className: cn(
|
|
@@ -45013,7 +45358,7 @@ var Sidebar = React113.forwardRef(
|
|
|
45013
45358
|
className
|
|
45014
45359
|
),
|
|
45015
45360
|
...props,
|
|
45016
|
-
children: /* @__PURE__ */ (0,
|
|
45361
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime183.jsx)(
|
|
45017
45362
|
"div",
|
|
45018
45363
|
{
|
|
45019
45364
|
"data-sidebar": "sidebar",
|
|
@@ -45029,9 +45374,9 @@ var Sidebar = React113.forwardRef(
|
|
|
45029
45374
|
}
|
|
45030
45375
|
);
|
|
45031
45376
|
Sidebar.displayName = "Sidebar";
|
|
45032
|
-
var SidebarTrigger =
|
|
45377
|
+
var SidebarTrigger = React114.forwardRef(({ className, onClick, ...props }, ref) => {
|
|
45033
45378
|
const { toggleSidebar } = useSidebar();
|
|
45034
|
-
return /* @__PURE__ */ (0,
|
|
45379
|
+
return /* @__PURE__ */ (0, import_jsx_runtime183.jsxs)(
|
|
45035
45380
|
Button,
|
|
45036
45381
|
{
|
|
45037
45382
|
ref,
|
|
@@ -45045,16 +45390,16 @@ var SidebarTrigger = React113.forwardRef(({ className, onClick, ...props }, ref)
|
|
|
45045
45390
|
},
|
|
45046
45391
|
...props,
|
|
45047
45392
|
children: [
|
|
45048
|
-
/* @__PURE__ */ (0,
|
|
45049
|
-
/* @__PURE__ */ (0,
|
|
45393
|
+
/* @__PURE__ */ (0, import_jsx_runtime183.jsx)(PanelLeft, {}),
|
|
45394
|
+
/* @__PURE__ */ (0, import_jsx_runtime183.jsx)("span", { className: "sr-only", children: "Toggle Sidebar" })
|
|
45050
45395
|
]
|
|
45051
45396
|
}
|
|
45052
45397
|
);
|
|
45053
45398
|
});
|
|
45054
45399
|
SidebarTrigger.displayName = "SidebarTrigger";
|
|
45055
|
-
var SidebarRail =
|
|
45400
|
+
var SidebarRail = React114.forwardRef(({ className, ...props }, ref) => {
|
|
45056
45401
|
const { toggleSidebar } = useSidebar();
|
|
45057
|
-
return /* @__PURE__ */ (0,
|
|
45402
|
+
return /* @__PURE__ */ (0, import_jsx_runtime183.jsx)(
|
|
45058
45403
|
"button",
|
|
45059
45404
|
{
|
|
45060
45405
|
ref,
|
|
@@ -45077,8 +45422,8 @@ var SidebarRail = React113.forwardRef(({ className, ...props }, ref) => {
|
|
|
45077
45422
|
);
|
|
45078
45423
|
});
|
|
45079
45424
|
SidebarRail.displayName = "SidebarRail";
|
|
45080
|
-
var SidebarInset =
|
|
45081
|
-
return /* @__PURE__ */ (0,
|
|
45425
|
+
var SidebarInset = React114.forwardRef(({ className, ...props }, ref) => {
|
|
45426
|
+
return /* @__PURE__ */ (0, import_jsx_runtime183.jsx)(
|
|
45082
45427
|
"main",
|
|
45083
45428
|
{
|
|
45084
45429
|
ref,
|
|
@@ -45092,8 +45437,8 @@ var SidebarInset = React113.forwardRef(({ className, ...props }, ref) => {
|
|
|
45092
45437
|
);
|
|
45093
45438
|
});
|
|
45094
45439
|
SidebarInset.displayName = "SidebarInset";
|
|
45095
|
-
var SidebarInput =
|
|
45096
|
-
return /* @__PURE__ */ (0,
|
|
45440
|
+
var SidebarInput = React114.forwardRef(({ className, ...props }, ref) => {
|
|
45441
|
+
return /* @__PURE__ */ (0, import_jsx_runtime183.jsx)(
|
|
45097
45442
|
Input,
|
|
45098
45443
|
{
|
|
45099
45444
|
ref,
|
|
@@ -45107,8 +45452,8 @@ var SidebarInput = React113.forwardRef(({ className, ...props }, ref) => {
|
|
|
45107
45452
|
);
|
|
45108
45453
|
});
|
|
45109
45454
|
SidebarInput.displayName = "SidebarInput";
|
|
45110
|
-
var SidebarHeader =
|
|
45111
|
-
return /* @__PURE__ */ (0,
|
|
45455
|
+
var SidebarHeader = React114.forwardRef(({ className, ...props }, ref) => {
|
|
45456
|
+
return /* @__PURE__ */ (0, import_jsx_runtime183.jsx)(
|
|
45112
45457
|
"div",
|
|
45113
45458
|
{
|
|
45114
45459
|
ref,
|
|
@@ -45119,8 +45464,8 @@ var SidebarHeader = React113.forwardRef(({ className, ...props }, ref) => {
|
|
|
45119
45464
|
);
|
|
45120
45465
|
});
|
|
45121
45466
|
SidebarHeader.displayName = "SidebarHeader";
|
|
45122
|
-
var SidebarFooter =
|
|
45123
|
-
return /* @__PURE__ */ (0,
|
|
45467
|
+
var SidebarFooter = React114.forwardRef(({ className, ...props }, ref) => {
|
|
45468
|
+
return /* @__PURE__ */ (0, import_jsx_runtime183.jsx)(
|
|
45124
45469
|
"div",
|
|
45125
45470
|
{
|
|
45126
45471
|
ref,
|
|
@@ -45131,8 +45476,8 @@ var SidebarFooter = React113.forwardRef(({ className, ...props }, ref) => {
|
|
|
45131
45476
|
);
|
|
45132
45477
|
});
|
|
45133
45478
|
SidebarFooter.displayName = "SidebarFooter";
|
|
45134
|
-
var SidebarSeparator =
|
|
45135
|
-
return /* @__PURE__ */ (0,
|
|
45479
|
+
var SidebarSeparator = React114.forwardRef(({ className, ...props }, ref) => {
|
|
45480
|
+
return /* @__PURE__ */ (0, import_jsx_runtime183.jsx)(
|
|
45136
45481
|
Separator2,
|
|
45137
45482
|
{
|
|
45138
45483
|
ref,
|
|
@@ -45143,8 +45488,8 @@ var SidebarSeparator = React113.forwardRef(({ className, ...props }, ref) => {
|
|
|
45143
45488
|
);
|
|
45144
45489
|
});
|
|
45145
45490
|
SidebarSeparator.displayName = "SidebarSeparator";
|
|
45146
|
-
var SidebarContent =
|
|
45147
|
-
return /* @__PURE__ */ (0,
|
|
45491
|
+
var SidebarContent = React114.forwardRef(({ className, ...props }, ref) => {
|
|
45492
|
+
return /* @__PURE__ */ (0, import_jsx_runtime183.jsx)(
|
|
45148
45493
|
"div",
|
|
45149
45494
|
{
|
|
45150
45495
|
ref,
|
|
@@ -45158,8 +45503,8 @@ var SidebarContent = React113.forwardRef(({ className, ...props }, ref) => {
|
|
|
45158
45503
|
);
|
|
45159
45504
|
});
|
|
45160
45505
|
SidebarContent.displayName = "SidebarContent";
|
|
45161
|
-
var SidebarGroup =
|
|
45162
|
-
return /* @__PURE__ */ (0,
|
|
45506
|
+
var SidebarGroup = React114.forwardRef(({ className, ...props }, ref) => {
|
|
45507
|
+
return /* @__PURE__ */ (0, import_jsx_runtime183.jsx)(
|
|
45163
45508
|
"div",
|
|
45164
45509
|
{
|
|
45165
45510
|
ref,
|
|
@@ -45170,9 +45515,9 @@ var SidebarGroup = React113.forwardRef(({ className, ...props }, ref) => {
|
|
|
45170
45515
|
);
|
|
45171
45516
|
});
|
|
45172
45517
|
SidebarGroup.displayName = "SidebarGroup";
|
|
45173
|
-
var SidebarGroupLabel =
|
|
45518
|
+
var SidebarGroupLabel = React114.forwardRef(({ className, asChild = false, ...props }, ref) => {
|
|
45174
45519
|
const Comp = asChild ? import_react_slot6.Slot : "div";
|
|
45175
|
-
return /* @__PURE__ */ (0,
|
|
45520
|
+
return /* @__PURE__ */ (0, import_jsx_runtime183.jsx)(
|
|
45176
45521
|
Comp,
|
|
45177
45522
|
{
|
|
45178
45523
|
ref,
|
|
@@ -45187,9 +45532,9 @@ var SidebarGroupLabel = React113.forwardRef(({ className, asChild = false, ...pr
|
|
|
45187
45532
|
);
|
|
45188
45533
|
});
|
|
45189
45534
|
SidebarGroupLabel.displayName = "SidebarGroupLabel";
|
|
45190
|
-
var SidebarGroupAction =
|
|
45535
|
+
var SidebarGroupAction = React114.forwardRef(({ className, asChild = false, ...props }, ref) => {
|
|
45191
45536
|
const Comp = asChild ? import_react_slot6.Slot : "button";
|
|
45192
|
-
return /* @__PURE__ */ (0,
|
|
45537
|
+
return /* @__PURE__ */ (0, import_jsx_runtime183.jsx)(
|
|
45193
45538
|
Comp,
|
|
45194
45539
|
{
|
|
45195
45540
|
ref,
|
|
@@ -45206,7 +45551,7 @@ var SidebarGroupAction = React113.forwardRef(({ className, asChild = false, ...p
|
|
|
45206
45551
|
);
|
|
45207
45552
|
});
|
|
45208
45553
|
SidebarGroupAction.displayName = "SidebarGroupAction";
|
|
45209
|
-
var SidebarGroupContent =
|
|
45554
|
+
var SidebarGroupContent = React114.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime183.jsx)(
|
|
45210
45555
|
"div",
|
|
45211
45556
|
{
|
|
45212
45557
|
ref,
|
|
@@ -45216,7 +45561,7 @@ var SidebarGroupContent = React113.forwardRef(({ className, ...props }, ref) =>
|
|
|
45216
45561
|
}
|
|
45217
45562
|
));
|
|
45218
45563
|
SidebarGroupContent.displayName = "SidebarGroupContent";
|
|
45219
|
-
var SidebarMenu =
|
|
45564
|
+
var SidebarMenu = React114.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime183.jsx)(
|
|
45220
45565
|
"ul",
|
|
45221
45566
|
{
|
|
45222
45567
|
ref,
|
|
@@ -45226,7 +45571,7 @@ var SidebarMenu = React113.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
45226
45571
|
}
|
|
45227
45572
|
));
|
|
45228
45573
|
SidebarMenu.displayName = "SidebarMenu";
|
|
45229
|
-
var SidebarMenuItem =
|
|
45574
|
+
var SidebarMenuItem = React114.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime183.jsx)(
|
|
45230
45575
|
"li",
|
|
45231
45576
|
{
|
|
45232
45577
|
ref,
|
|
@@ -45256,7 +45601,7 @@ var sidebarMenuButtonVariants = (0, import_class_variance_authority13.cva)(
|
|
|
45256
45601
|
}
|
|
45257
45602
|
}
|
|
45258
45603
|
);
|
|
45259
|
-
var SidebarMenuButton =
|
|
45604
|
+
var SidebarMenuButton = React114.forwardRef(
|
|
45260
45605
|
({
|
|
45261
45606
|
asChild = false,
|
|
45262
45607
|
isActive = false,
|
|
@@ -45268,7 +45613,7 @@ var SidebarMenuButton = React113.forwardRef(
|
|
|
45268
45613
|
}, ref) => {
|
|
45269
45614
|
const Comp = asChild ? import_react_slot6.Slot : "button";
|
|
45270
45615
|
const { isMobile, state } = useSidebar();
|
|
45271
|
-
const button = /* @__PURE__ */ (0,
|
|
45616
|
+
const button = /* @__PURE__ */ (0, import_jsx_runtime183.jsx)(
|
|
45272
45617
|
Comp,
|
|
45273
45618
|
{
|
|
45274
45619
|
ref,
|
|
@@ -45287,9 +45632,9 @@ var SidebarMenuButton = React113.forwardRef(
|
|
|
45287
45632
|
children: tooltip
|
|
45288
45633
|
};
|
|
45289
45634
|
}
|
|
45290
|
-
return /* @__PURE__ */ (0,
|
|
45291
|
-
/* @__PURE__ */ (0,
|
|
45292
|
-
/* @__PURE__ */ (0,
|
|
45635
|
+
return /* @__PURE__ */ (0, import_jsx_runtime183.jsxs)(Tooltip, { children: [
|
|
45636
|
+
/* @__PURE__ */ (0, import_jsx_runtime183.jsx)(TooltipTrigger, { asChild: true, children: button }),
|
|
45637
|
+
/* @__PURE__ */ (0, import_jsx_runtime183.jsx)(
|
|
45293
45638
|
TooltipContent,
|
|
45294
45639
|
{
|
|
45295
45640
|
side: "right",
|
|
@@ -45302,9 +45647,9 @@ var SidebarMenuButton = React113.forwardRef(
|
|
|
45302
45647
|
}
|
|
45303
45648
|
);
|
|
45304
45649
|
SidebarMenuButton.displayName = "SidebarMenuButton";
|
|
45305
|
-
var SidebarMenuAction =
|
|
45650
|
+
var SidebarMenuAction = React114.forwardRef(({ className, asChild = false, showOnHover = false, ...props }, ref) => {
|
|
45306
45651
|
const Comp = asChild ? import_react_slot6.Slot : "button";
|
|
45307
|
-
return /* @__PURE__ */ (0,
|
|
45652
|
+
return /* @__PURE__ */ (0, import_jsx_runtime183.jsx)(
|
|
45308
45653
|
Comp,
|
|
45309
45654
|
{
|
|
45310
45655
|
ref,
|
|
@@ -45325,7 +45670,7 @@ var SidebarMenuAction = React113.forwardRef(({ className, asChild = false, showO
|
|
|
45325
45670
|
);
|
|
45326
45671
|
});
|
|
45327
45672
|
SidebarMenuAction.displayName = "SidebarMenuAction";
|
|
45328
|
-
var SidebarMenuBadge =
|
|
45673
|
+
var SidebarMenuBadge = React114.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime183.jsx)(
|
|
45329
45674
|
"div",
|
|
45330
45675
|
{
|
|
45331
45676
|
ref,
|
|
@@ -45343,11 +45688,11 @@ var SidebarMenuBadge = React113.forwardRef(({ className, ...props }, ref) => /*
|
|
|
45343
45688
|
}
|
|
45344
45689
|
));
|
|
45345
45690
|
SidebarMenuBadge.displayName = "SidebarMenuBadge";
|
|
45346
|
-
var SidebarMenuSkeleton =
|
|
45347
|
-
const width =
|
|
45691
|
+
var SidebarMenuSkeleton = React114.forwardRef(({ className, showIcon = false, ...props }, ref) => {
|
|
45692
|
+
const width = React114.useMemo(() => {
|
|
45348
45693
|
return `${Math.floor(Math.random() * 40) + 50}%`;
|
|
45349
45694
|
}, []);
|
|
45350
|
-
return /* @__PURE__ */ (0,
|
|
45695
|
+
return /* @__PURE__ */ (0, import_jsx_runtime183.jsxs)(
|
|
45351
45696
|
"div",
|
|
45352
45697
|
{
|
|
45353
45698
|
ref,
|
|
@@ -45355,14 +45700,14 @@ var SidebarMenuSkeleton = React113.forwardRef(({ className, showIcon = false, ..
|
|
|
45355
45700
|
className: cn("flex h-8 items-center gap-2 rounded-md px-2", className),
|
|
45356
45701
|
...props,
|
|
45357
45702
|
children: [
|
|
45358
|
-
showIcon && /* @__PURE__ */ (0,
|
|
45703
|
+
showIcon && /* @__PURE__ */ (0, import_jsx_runtime183.jsx)(
|
|
45359
45704
|
Skeleton,
|
|
45360
45705
|
{
|
|
45361
45706
|
className: "size-4 rounded-md",
|
|
45362
45707
|
"data-sidebar": "menu-skeleton-icon"
|
|
45363
45708
|
}
|
|
45364
45709
|
),
|
|
45365
|
-
/* @__PURE__ */ (0,
|
|
45710
|
+
/* @__PURE__ */ (0, import_jsx_runtime183.jsx)(
|
|
45366
45711
|
Skeleton,
|
|
45367
45712
|
{
|
|
45368
45713
|
className: "h-4 max-w-[--skeleton-width] flex-1",
|
|
@@ -45377,7 +45722,7 @@ var SidebarMenuSkeleton = React113.forwardRef(({ className, showIcon = false, ..
|
|
|
45377
45722
|
);
|
|
45378
45723
|
});
|
|
45379
45724
|
SidebarMenuSkeleton.displayName = "SidebarMenuSkeleton";
|
|
45380
|
-
var SidebarMenuSub =
|
|
45725
|
+
var SidebarMenuSub = React114.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime183.jsx)(
|
|
45381
45726
|
"ul",
|
|
45382
45727
|
{
|
|
45383
45728
|
ref,
|
|
@@ -45391,11 +45736,11 @@ var SidebarMenuSub = React113.forwardRef(({ className, ...props }, ref) => /* @_
|
|
|
45391
45736
|
}
|
|
45392
45737
|
));
|
|
45393
45738
|
SidebarMenuSub.displayName = "SidebarMenuSub";
|
|
45394
|
-
var SidebarMenuSubItem =
|
|
45739
|
+
var SidebarMenuSubItem = React114.forwardRef(({ ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime183.jsx)("li", { ref, ...props }));
|
|
45395
45740
|
SidebarMenuSubItem.displayName = "SidebarMenuSubItem";
|
|
45396
|
-
var SidebarMenuSubButton =
|
|
45741
|
+
var SidebarMenuSubButton = React114.forwardRef(({ asChild = false, size = "md", isActive, className, ...props }, ref) => {
|
|
45397
45742
|
const Comp = asChild ? import_react_slot6.Slot : "a";
|
|
45398
|
-
return /* @__PURE__ */ (0,
|
|
45743
|
+
return /* @__PURE__ */ (0, import_jsx_runtime183.jsx)(
|
|
45399
45744
|
Comp,
|
|
45400
45745
|
{
|
|
45401
45746
|
ref,
|
|
@@ -45419,20 +45764,20 @@ SidebarMenuSubButton.displayName = "SidebarMenuSubButton";
|
|
|
45419
45764
|
// src/components/ui/sonner.tsx
|
|
45420
45765
|
var import_next_themes = require("next-themes");
|
|
45421
45766
|
var import_sonner = require("sonner");
|
|
45422
|
-
var
|
|
45767
|
+
var import_jsx_runtime184 = require("react/jsx-runtime");
|
|
45423
45768
|
var Toaster = ({ ...props }) => {
|
|
45424
45769
|
const { theme = "system" } = (0, import_next_themes.useTheme)();
|
|
45425
|
-
return /* @__PURE__ */ (0,
|
|
45770
|
+
return /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(
|
|
45426
45771
|
import_sonner.Toaster,
|
|
45427
45772
|
{
|
|
45428
45773
|
theme,
|
|
45429
45774
|
className: "toaster group",
|
|
45430
45775
|
icons: {
|
|
45431
|
-
success: /* @__PURE__ */ (0,
|
|
45432
|
-
info: /* @__PURE__ */ (0,
|
|
45433
|
-
warning: /* @__PURE__ */ (0,
|
|
45434
|
-
error: /* @__PURE__ */ (0,
|
|
45435
|
-
loading: /* @__PURE__ */ (0,
|
|
45776
|
+
success: /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(CircleCheck, { className: "h-4 w-4" }),
|
|
45777
|
+
info: /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(Info, { className: "h-4 w-4" }),
|
|
45778
|
+
warning: /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(TriangleAlert, { className: "h-4 w-4" }),
|
|
45779
|
+
error: /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(OctagonX, { className: "h-4 w-4" }),
|
|
45780
|
+
loading: /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(LoaderCircle, { className: "h-4 w-4 animate-spin" })
|
|
45436
45781
|
},
|
|
45437
45782
|
toastOptions: {
|
|
45438
45783
|
classNames: {
|
|
@@ -45448,26 +45793,26 @@ var Toaster = ({ ...props }) => {
|
|
|
45448
45793
|
};
|
|
45449
45794
|
|
|
45450
45795
|
// src/components/ui/toggle-group.tsx
|
|
45451
|
-
var
|
|
45796
|
+
var React115 = __toESM(require("react"), 1);
|
|
45452
45797
|
var ToggleGroupPrimitive = __toESM(require("@radix-ui/react-toggle-group"), 1);
|
|
45453
|
-
var
|
|
45454
|
-
var ToggleGroupContext =
|
|
45798
|
+
var import_jsx_runtime185 = require("react/jsx-runtime");
|
|
45799
|
+
var ToggleGroupContext = React115.createContext({
|
|
45455
45800
|
size: "default",
|
|
45456
45801
|
variant: "default"
|
|
45457
45802
|
});
|
|
45458
|
-
var ToggleGroup =
|
|
45803
|
+
var ToggleGroup = React115.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime185.jsx)(
|
|
45459
45804
|
ToggleGroupPrimitive.Root,
|
|
45460
45805
|
{
|
|
45461
45806
|
ref,
|
|
45462
45807
|
className: cn("flex items-center justify-center gap-1", className),
|
|
45463
45808
|
...props,
|
|
45464
|
-
children: /* @__PURE__ */ (0,
|
|
45809
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime185.jsx)(ToggleGroupContext.Provider, { value: { variant, size }, children })
|
|
45465
45810
|
}
|
|
45466
45811
|
));
|
|
45467
45812
|
ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
|
|
45468
|
-
var ToggleGroupItem =
|
|
45469
|
-
const context =
|
|
45470
|
-
return /* @__PURE__ */ (0,
|
|
45813
|
+
var ToggleGroupItem = React115.forwardRef(({ className, children, variant, size, ...props }, ref) => {
|
|
45814
|
+
const context = React115.useContext(ToggleGroupContext);
|
|
45815
|
+
return /* @__PURE__ */ (0, import_jsx_runtime185.jsx)(
|
|
45471
45816
|
ToggleGroupPrimitive.Item,
|
|
45472
45817
|
{
|
|
45473
45818
|
ref,
|
|
@@ -45486,7 +45831,7 @@ var ToggleGroupItem = React114.forwardRef(({ className, children, variant, size,
|
|
|
45486
45831
|
ToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;
|
|
45487
45832
|
|
|
45488
45833
|
// src/render/PXEngineRenderer.tsx
|
|
45489
|
-
var
|
|
45834
|
+
var import_jsx_runtime186 = require("react/jsx-runtime");
|
|
45490
45835
|
var CONTEXT_DEPENDENT_COMPONENTS = /* @__PURE__ */ new Set([
|
|
45491
45836
|
// Form components - require FormField + FormItem context
|
|
45492
45837
|
"FormLabel",
|
|
@@ -45591,24 +45936,24 @@ var REGISTERED_COMPONENTS = /* @__PURE__ */ new Set([
|
|
|
45591
45936
|
]);
|
|
45592
45937
|
var renderContextDependentError = (componentName, normalizedName, key) => {
|
|
45593
45938
|
const suggestion = COMPONENT_SUGGESTIONS[normalizedName] || `${componentName}Atom (if available)`;
|
|
45594
|
-
return /* @__PURE__ */ (0,
|
|
45939
|
+
return /* @__PURE__ */ (0, import_jsx_runtime186.jsxs)(
|
|
45595
45940
|
"div",
|
|
45596
45941
|
{
|
|
45597
45942
|
className: "p-4 border-2 border-amber-500/50 rounded-lg bg-amber-50/80 space-y-2 my-2",
|
|
45598
45943
|
children: [
|
|
45599
|
-
/* @__PURE__ */ (0,
|
|
45600
|
-
/* @__PURE__ */ (0,
|
|
45601
|
-
/* @__PURE__ */ (0,
|
|
45602
|
-
/* @__PURE__ */ (0,
|
|
45944
|
+
/* @__PURE__ */ (0, import_jsx_runtime186.jsxs)("div", { className: "flex items-start gap-2", children: [
|
|
45945
|
+
/* @__PURE__ */ (0, import_jsx_runtime186.jsx)("span", { className: "text-amber-600 font-bold text-lg", children: "\u26A0\uFE0F" }),
|
|
45946
|
+
/* @__PURE__ */ (0, import_jsx_runtime186.jsxs)("div", { className: "flex-1", children: [
|
|
45947
|
+
/* @__PURE__ */ (0, import_jsx_runtime186.jsxs)("p", { className: "text-sm font-semibold text-amber-900", children: [
|
|
45603
45948
|
"Invalid Component: ",
|
|
45604
45949
|
componentName
|
|
45605
45950
|
] }),
|
|
45606
|
-
/* @__PURE__ */ (0,
|
|
45951
|
+
/* @__PURE__ */ (0, import_jsx_runtime186.jsx)("p", { className: "text-xs text-amber-700 mt-1", children: "This component requires React Context and cannot be rendered directly in schemas." })
|
|
45607
45952
|
] })
|
|
45608
45953
|
] }),
|
|
45609
|
-
/* @__PURE__ */ (0,
|
|
45610
|
-
/* @__PURE__ */ (0,
|
|
45611
|
-
/* @__PURE__ */ (0,
|
|
45954
|
+
/* @__PURE__ */ (0, import_jsx_runtime186.jsxs)("div", { className: "bg-white/60 p-3 rounded border border-amber-200", children: [
|
|
45955
|
+
/* @__PURE__ */ (0, import_jsx_runtime186.jsx)("p", { className: "text-xs font-semibold text-gray-700 mb-1.5", children: "\u2713 Use instead:" }),
|
|
45956
|
+
/* @__PURE__ */ (0, import_jsx_runtime186.jsx)("code", { className: "text-xs text-blue-700 bg-blue-50 px-2 py-1 rounded", children: suggestion })
|
|
45612
45957
|
] })
|
|
45613
45958
|
]
|
|
45614
45959
|
},
|
|
@@ -45686,12 +46031,12 @@ var PXEngineRenderer = ({
|
|
|
45686
46031
|
const root = schema.root || schema;
|
|
45687
46032
|
const renderRecursive = (component, index) => {
|
|
45688
46033
|
if (Array.isArray(component)) {
|
|
45689
|
-
return /* @__PURE__ */ (0,
|
|
46034
|
+
return /* @__PURE__ */ (0, import_jsx_runtime186.jsx)(import_react92.default.Fragment, { children: component.map((child, idx) => renderRecursive(child, idx)) }, index !== void 0 ? `array-${index}` : "array-root");
|
|
45690
46035
|
}
|
|
45691
46036
|
if (typeof component === "string" || typeof component === "number") {
|
|
45692
46037
|
return component;
|
|
45693
46038
|
}
|
|
45694
|
-
if (
|
|
46039
|
+
if (import_react92.default.isValidElement(component)) {
|
|
45695
46040
|
return component;
|
|
45696
46041
|
}
|
|
45697
46042
|
if (!component || typeof component !== "object") return null;
|
|
@@ -45773,7 +46118,7 @@ var PXEngineRenderer = ({
|
|
|
45773
46118
|
const isAtomWithRenderProp = ATOMS_WITH_RENDER.has(atomName);
|
|
45774
46119
|
const finalStyle = { ...dynamicStyle, ...finalProps.style || {} };
|
|
45775
46120
|
if (isAtomWithRenderProp) {
|
|
45776
|
-
return /* @__PURE__ */ (0,
|
|
46121
|
+
return /* @__PURE__ */ (0, import_jsx_runtime186.jsx)(
|
|
45777
46122
|
TargetComponent,
|
|
45778
46123
|
{
|
|
45779
46124
|
...finalProps,
|
|
@@ -45785,7 +46130,7 @@ var PXEngineRenderer = ({
|
|
|
45785
46130
|
uniqueKey
|
|
45786
46131
|
);
|
|
45787
46132
|
} else {
|
|
45788
|
-
return /* @__PURE__ */ (0,
|
|
46133
|
+
return /* @__PURE__ */ (0, import_jsx_runtime186.jsx)(
|
|
45789
46134
|
TargetComponent,
|
|
45790
46135
|
{
|
|
45791
46136
|
...finalProps,
|
|
@@ -45797,7 +46142,7 @@ var PXEngineRenderer = ({
|
|
|
45797
46142
|
);
|
|
45798
46143
|
}
|
|
45799
46144
|
};
|
|
45800
|
-
return /* @__PURE__ */ (0,
|
|
46145
|
+
return /* @__PURE__ */ (0, import_jsx_runtime186.jsx)("div", { className: "px-engine-root relative w-full h-full", children: renderRecursive(root) });
|
|
45801
46146
|
};
|
|
45802
46147
|
// Annotate the CommonJS export names for ESM import in node:
|
|
45803
46148
|
0 && (module.exports = {
|
|
@@ -46037,6 +46382,7 @@ var PXEngineRenderer = ({
|
|
|
46037
46382
|
RatingAtom,
|
|
46038
46383
|
RecommendationCard,
|
|
46039
46384
|
ResearchBriefCard,
|
|
46385
|
+
ResearchReportJobCard,
|
|
46040
46386
|
ResizableAtom,
|
|
46041
46387
|
ResizablePanel,
|
|
46042
46388
|
ResizablePanelGroup,
|