pxengine 0.1.85 → 0.1.86
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 +1121 -871
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +59 -1
- package/dist/index.d.ts +59 -1
- package/dist/index.mjs +1100 -851
- package/dist/index.mjs.map +1 -1
- package/dist/registry.json +93 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -335,6 +335,7 @@ __export(index_exports, {
|
|
|
335
335
|
TooltipTrigger: () => TooltipTrigger,
|
|
336
336
|
TopPostsGrid: () => TopPostsGrid,
|
|
337
337
|
VideoAtom: () => VideoAtom,
|
|
338
|
+
WebSearchJobCard: () => WebSearchJobCard,
|
|
338
339
|
cn: () => cn,
|
|
339
340
|
defaultFetchSelections: () => defaultFetchSelections,
|
|
340
341
|
defaultPersistSelection: () => defaultPersistSelection,
|
|
@@ -351,7 +352,7 @@ __export(index_exports, {
|
|
|
351
352
|
module.exports = __toCommonJS(index_exports);
|
|
352
353
|
|
|
353
354
|
// src/render/PXEngineRenderer.tsx
|
|
354
|
-
var
|
|
355
|
+
var import_react93 = __toESM(require("react"), 1);
|
|
355
356
|
|
|
356
357
|
// src/atoms/index.ts
|
|
357
358
|
var atoms_exports = {};
|
|
@@ -33962,6 +33963,7 @@ __export(molecules_exports, {
|
|
|
33962
33963
|
TagCloud: () => TagCloud,
|
|
33963
33964
|
TimelineCard: () => TimelineCard,
|
|
33964
33965
|
TopPostsGrid: () => TopPostsGrid,
|
|
33966
|
+
WebSearchJobCard: () => WebSearchJobCard,
|
|
33965
33967
|
defaultFetchSelections: () => defaultFetchSelections,
|
|
33966
33968
|
defaultPersistSelection: () => defaultPersistSelection,
|
|
33967
33969
|
th: () => th,
|
|
@@ -39564,28 +39566,30 @@ var FullscreenPreviewModal = ({ url, title, onClose }) => {
|
|
|
39564
39566
|
) })
|
|
39565
39567
|
] });
|
|
39566
39568
|
};
|
|
39567
|
-
var ResearchReportJobCard = ({
|
|
39568
|
-
|
|
39569
|
-
|
|
39570
|
-
|
|
39571
|
-
|
|
39572
|
-
|
|
39573
|
-
|
|
39574
|
-
|
|
39575
|
-
|
|
39576
|
-
|
|
39577
|
-
|
|
39578
|
-
|
|
39579
|
-
|
|
39580
|
-
|
|
39581
|
-
|
|
39582
|
-
|
|
39583
|
-
|
|
39584
|
-
|
|
39585
|
-
|
|
39586
|
-
|
|
39587
|
-
|
|
39588
|
-
|
|
39569
|
+
var ResearchReportJobCard = (props) => {
|
|
39570
|
+
const {
|
|
39571
|
+
job_id: _job_id,
|
|
39572
|
+
title: initialTitle,
|
|
39573
|
+
status: initialStatus,
|
|
39574
|
+
topic: _initialTopic,
|
|
39575
|
+
depth: initialDepth,
|
|
39576
|
+
section_count: initialSectionCount,
|
|
39577
|
+
source_count: initialSourceCount,
|
|
39578
|
+
word_count: initialWordCount,
|
|
39579
|
+
executive_summary: initialSummary,
|
|
39580
|
+
key_findings: _initialFindings,
|
|
39581
|
+
html_url: initialHtmlUrl,
|
|
39582
|
+
theme: initialTheme,
|
|
39583
|
+
error: initialError,
|
|
39584
|
+
pollUrl,
|
|
39585
|
+
authToken,
|
|
39586
|
+
className,
|
|
39587
|
+
onComplete,
|
|
39588
|
+
onFailed,
|
|
39589
|
+
compact = false
|
|
39590
|
+
} = props;
|
|
39591
|
+
const inferredStatus = initialStatus ?? (initialHtmlUrl ? "complete" : void 0);
|
|
39592
|
+
const [status, setStatus] = (0, import_react76.useState)(inferredStatus);
|
|
39589
39593
|
const [title, setTitle] = (0, import_react76.useState)(initialTitle);
|
|
39590
39594
|
const [depth, setDepth] = (0, import_react76.useState)(initialDepth || "");
|
|
39591
39595
|
const [sectionCount, setSectionCount] = (0, import_react76.useState)(initialSectionCount ?? 0);
|
|
@@ -39605,8 +39609,9 @@ var ResearchReportJobCard = ({
|
|
|
39605
39609
|
onCompleteRef.current = onComplete;
|
|
39606
39610
|
onFailedRef.current = onFailed;
|
|
39607
39611
|
(0, import_react76.useEffect)(() => {
|
|
39608
|
-
|
|
39609
|
-
|
|
39612
|
+
const newStatus = initialStatus ?? (initialHtmlUrl ? "complete" : void 0);
|
|
39613
|
+
setStatus(newStatus);
|
|
39614
|
+
}, [initialStatus, initialHtmlUrl]);
|
|
39610
39615
|
(0, import_react76.useEffect)(() => {
|
|
39611
39616
|
if (initialTitle) setTitle(initialTitle);
|
|
39612
39617
|
}, [initialTitle]);
|
|
@@ -39731,6 +39736,31 @@ var ResearchReportJobCard = ({
|
|
|
39731
39736
|
] })
|
|
39732
39737
|
] }) }) });
|
|
39733
39738
|
}
|
|
39739
|
+
if (status === "complete" && !hasHTML) {
|
|
39740
|
+
return /* @__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: [
|
|
39741
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)(
|
|
39742
|
+
"div",
|
|
39743
|
+
{
|
|
39744
|
+
className: "h-[3px]",
|
|
39745
|
+
style: { background: "linear-gradient(90deg, #f59e0b, #fbbf24, #fcd34d)" }
|
|
39746
|
+
}
|
|
39747
|
+
),
|
|
39748
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)("div", { className: "p-5", children: /* @__PURE__ */ (0, import_jsx_runtime148.jsxs)("div", { className: "flex items-start gap-3", children: [
|
|
39749
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)(
|
|
39750
|
+
"div",
|
|
39751
|
+
{
|
|
39752
|
+
className: "w-10 h-10 rounded-xl flex items-center justify-center flex-shrink-0 bg-amber-500/10 border border-amber-500/20",
|
|
39753
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime148.jsx)(DocumentIcon, {})
|
|
39754
|
+
}
|
|
39755
|
+
),
|
|
39756
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsxs)("div", { className: "flex-1 min-w-0", children: [
|
|
39757
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)("h3", { className: "text-sm font-semibold text-zinc-100 truncate leading-tight", children: title }),
|
|
39758
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)("p", { className: "text-xs text-amber-400/80 mt-1", children: "Report generated but file upload failed. The content was created successfully." }),
|
|
39759
|
+
summary && /* @__PURE__ */ (0, import_jsx_runtime148.jsx)("p", { className: "text-xs text-zinc-500 mt-2 line-clamp-2", children: summary })
|
|
39760
|
+
] })
|
|
39761
|
+
] }) })
|
|
39762
|
+
] }) });
|
|
39763
|
+
}
|
|
39734
39764
|
const handleDownload = async () => {
|
|
39735
39765
|
if (!htmlUrl) return;
|
|
39736
39766
|
const filename = `${title.replace(/[^a-z0-9]/gi, "-").toLowerCase()}.html`;
|
|
@@ -39865,11 +39895,205 @@ var ResearchReportJobCard = ({
|
|
|
39865
39895
|
] });
|
|
39866
39896
|
};
|
|
39867
39897
|
|
|
39898
|
+
// src/molecules/generic/WebSearchJobCard/WebSearchJobCard.tsx
|
|
39899
|
+
var import_react77 = require("react");
|
|
39900
|
+
var import_jsx_runtime149 = require("react/jsx-runtime");
|
|
39901
|
+
var SearchIcon = () => /* @__PURE__ */ (0, import_jsx_runtime149.jsxs)("svg", { width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
|
|
39902
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)("circle", { cx: "11", cy: "11", r: "8" }),
|
|
39903
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)("line", { x1: "21", y1: "21", x2: "16.65", y2: "16.65" })
|
|
39904
|
+
] });
|
|
39905
|
+
var ExternalLinkIcon = () => /* @__PURE__ */ (0, import_jsx_runtime149.jsxs)("svg", { width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.2", strokeLinecap: "round", strokeLinejoin: "round", children: [
|
|
39906
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)("path", { d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6" }),
|
|
39907
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)("polyline", { points: "15 3 21 3 21 9" }),
|
|
39908
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)("line", { x1: "10", y1: "14", x2: "21", y2: "3" })
|
|
39909
|
+
] });
|
|
39910
|
+
var WebSearchJobCard = ({
|
|
39911
|
+
job_id: _job_id,
|
|
39912
|
+
title: initialTitle,
|
|
39913
|
+
status: initialStatus,
|
|
39914
|
+
query: initialQuery,
|
|
39915
|
+
result_count: initialResultCount,
|
|
39916
|
+
search_count: initialSearchCount,
|
|
39917
|
+
summary: initialSummary,
|
|
39918
|
+
results: initialResults,
|
|
39919
|
+
error: initialError,
|
|
39920
|
+
pollUrl,
|
|
39921
|
+
authToken,
|
|
39922
|
+
className,
|
|
39923
|
+
onComplete,
|
|
39924
|
+
onFailed,
|
|
39925
|
+
compact = false
|
|
39926
|
+
}) => {
|
|
39927
|
+
const [status, setStatus] = (0, import_react77.useState)(initialStatus);
|
|
39928
|
+
const [query, setQuery] = (0, import_react77.useState)(initialQuery || initialTitle || "");
|
|
39929
|
+
const [resultCount, setResultCount] = (0, import_react77.useState)(initialResultCount ?? 0);
|
|
39930
|
+
const [searchCount, setSearchCount] = (0, import_react77.useState)(initialSearchCount ?? 0);
|
|
39931
|
+
const [summary, setSummary] = (0, import_react77.useState)(initialSummary || "");
|
|
39932
|
+
const [results, setResults] = (0, import_react77.useState)(initialResults || []);
|
|
39933
|
+
const [error, setError] = (0, import_react77.useState)(initialError);
|
|
39934
|
+
const intervalRef = (0, import_react77.useRef)(null);
|
|
39935
|
+
const onCompleteRef = (0, import_react77.useRef)(onComplete);
|
|
39936
|
+
const onFailedRef = (0, import_react77.useRef)(onFailed);
|
|
39937
|
+
const hasNotifiedRef = (0, import_react77.useRef)(false);
|
|
39938
|
+
onCompleteRef.current = onComplete;
|
|
39939
|
+
onFailedRef.current = onFailed;
|
|
39940
|
+
(0, import_react77.useEffect)(() => {
|
|
39941
|
+
setStatus(initialStatus);
|
|
39942
|
+
}, [initialStatus]);
|
|
39943
|
+
(0, import_react77.useEffect)(() => {
|
|
39944
|
+
if (initialQuery) setQuery(initialQuery);
|
|
39945
|
+
}, [initialQuery]);
|
|
39946
|
+
(0, import_react77.useEffect)(() => {
|
|
39947
|
+
if (initialTitle && !initialQuery) setQuery(initialTitle);
|
|
39948
|
+
}, [initialTitle, initialQuery]);
|
|
39949
|
+
(0, import_react77.useEffect)(() => {
|
|
39950
|
+
if (initialResultCount !== void 0) setResultCount(initialResultCount);
|
|
39951
|
+
}, [initialResultCount]);
|
|
39952
|
+
(0, import_react77.useEffect)(() => {
|
|
39953
|
+
if (initialSearchCount !== void 0) setSearchCount(initialSearchCount);
|
|
39954
|
+
}, [initialSearchCount]);
|
|
39955
|
+
(0, import_react77.useEffect)(() => {
|
|
39956
|
+
if (initialSummary) setSummary(initialSummary);
|
|
39957
|
+
}, [initialSummary]);
|
|
39958
|
+
(0, import_react77.useEffect)(() => {
|
|
39959
|
+
if (initialResults) setResults(initialResults);
|
|
39960
|
+
}, [initialResults]);
|
|
39961
|
+
(0, import_react77.useEffect)(() => {
|
|
39962
|
+
if (initialError) setError(initialError);
|
|
39963
|
+
}, [initialError]);
|
|
39964
|
+
const isTerminal = status === "complete" || status === "failed";
|
|
39965
|
+
(0, import_react77.useEffect)(() => {
|
|
39966
|
+
if (isTerminal || !pollUrl) return;
|
|
39967
|
+
const poll = async () => {
|
|
39968
|
+
try {
|
|
39969
|
+
const headers = {};
|
|
39970
|
+
if (authToken) headers["Authorization"] = `Bearer ${authToken}`;
|
|
39971
|
+
const res = await fetch(pollUrl, { headers });
|
|
39972
|
+
if (!res.ok) return;
|
|
39973
|
+
const data = await res.json();
|
|
39974
|
+
const newStatus = data.status;
|
|
39975
|
+
setStatus(newStatus);
|
|
39976
|
+
if (newStatus === "complete" && data.output) {
|
|
39977
|
+
const output = data.output;
|
|
39978
|
+
setQuery(output.query || "");
|
|
39979
|
+
setResultCount(output.result_count ?? 0);
|
|
39980
|
+
setSearchCount(output.search_count ?? 0);
|
|
39981
|
+
setSummary(output.summary || "");
|
|
39982
|
+
setResults(output.results || []);
|
|
39983
|
+
if (!hasNotifiedRef.current && onCompleteRef.current) {
|
|
39984
|
+
hasNotifiedRef.current = true;
|
|
39985
|
+
onCompleteRef.current(output);
|
|
39986
|
+
}
|
|
39987
|
+
}
|
|
39988
|
+
if (newStatus === "failed") {
|
|
39989
|
+
const errorMsg = data.error || "Job failed";
|
|
39990
|
+
setError(errorMsg);
|
|
39991
|
+
if (!hasNotifiedRef.current && onFailedRef.current) {
|
|
39992
|
+
hasNotifiedRef.current = true;
|
|
39993
|
+
onFailedRef.current(errorMsg);
|
|
39994
|
+
}
|
|
39995
|
+
}
|
|
39996
|
+
} catch {
|
|
39997
|
+
}
|
|
39998
|
+
};
|
|
39999
|
+
poll();
|
|
40000
|
+
intervalRef.current = setInterval(poll, 3e3);
|
|
40001
|
+
return () => {
|
|
40002
|
+
if (intervalRef.current) clearInterval(intervalRef.current);
|
|
40003
|
+
};
|
|
40004
|
+
}, [isTerminal, pollUrl, authToken]);
|
|
40005
|
+
(0, import_react77.useEffect)(() => {
|
|
40006
|
+
if (isTerminal && intervalRef.current) {
|
|
40007
|
+
clearInterval(intervalRef.current);
|
|
40008
|
+
intervalRef.current = null;
|
|
40009
|
+
}
|
|
40010
|
+
}, [isTerminal]);
|
|
40011
|
+
if (status === "pending" || status === "running") {
|
|
40012
|
+
return /* @__PURE__ */ (0, import_jsx_runtime149.jsx)("div", { className: cn("w-full", className), children: /* @__PURE__ */ (0, import_jsx_runtime149.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", children: [
|
|
40013
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsxs)("div", { className: "p-5 space-y-3", children: [
|
|
40014
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsxs)("div", { className: "flex items-center gap-3", children: [
|
|
40015
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)("div", { className: "w-10 h-10 rounded-xl bg-zinc-300 dark:bg-zinc-700 animate-pulse flex-shrink-0" }),
|
|
40016
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsxs)("div", { className: "flex-1 space-y-2", children: [
|
|
40017
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)("div", { className: "h-[13px] w-[60%] rounded bg-zinc-300 dark:bg-zinc-700 animate-pulse" }),
|
|
40018
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)("div", { className: "h-[10px] w-[25%] rounded bg-zinc-200 dark:bg-zinc-800 animate-pulse", style: { animationDelay: "80ms" } })
|
|
40019
|
+
] })
|
|
40020
|
+
] }),
|
|
40021
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)("div", { className: "h-[9px] w-[85%] rounded bg-zinc-200 dark:bg-zinc-800 animate-pulse", style: { animationDelay: "120ms" } }),
|
|
40022
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)("div", { className: "h-[9px] w-[70%] rounded bg-zinc-200 dark:bg-zinc-800 animate-pulse", style: { animationDelay: "160ms" } }),
|
|
40023
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)("div", { className: "space-y-2 pt-1", children: [0, 1, 2].map((i) => /* @__PURE__ */ (0, import_jsx_runtime149.jsxs)(
|
|
40024
|
+
"div",
|
|
40025
|
+
{
|
|
40026
|
+
className: "rounded-xl border border-zinc-200 dark:border-zinc-800 p-3 space-y-1.5",
|
|
40027
|
+
children: [
|
|
40028
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)("div", { className: "h-[10px] w-[65%] rounded bg-zinc-300 dark:bg-zinc-700 animate-pulse", style: { animationDelay: `${200 + i * 80}ms` } }),
|
|
40029
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)("div", { className: "h-[8px] w-[18%] rounded bg-zinc-200 dark:bg-zinc-800 animate-pulse", style: { animationDelay: `${240 + i * 80}ms` } }),
|
|
40030
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)("div", { className: "h-[8px] w-[90%] rounded bg-zinc-200 dark:bg-zinc-800 animate-pulse", style: { animationDelay: `${280 + i * 80}ms` } })
|
|
40031
|
+
]
|
|
40032
|
+
},
|
|
40033
|
+
i
|
|
40034
|
+
)) })
|
|
40035
|
+
] }),
|
|
40036
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.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" })
|
|
40037
|
+
] }) });
|
|
40038
|
+
}
|
|
40039
|
+
if (status === "failed") {
|
|
40040
|
+
return /* @__PURE__ */ (0, import_jsx_runtime149.jsx)("div", { className: cn("w-full", className), children: /* @__PURE__ */ (0, import_jsx_runtime149.jsx)("div", { className: "bg-red-950/20 border border-red-800/25 rounded-2xl p-5", children: /* @__PURE__ */ (0, import_jsx_runtime149.jsxs)("div", { className: "flex items-start gap-3", children: [
|
|
40041
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)("span", { className: "text-red-400 text-base mt-0.5 flex-shrink-0", children: "\u26A0" }),
|
|
40042
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsxs)("div", { children: [
|
|
40043
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)("p", { className: "text-sm font-semibold text-red-300", children: "Web search failed" }),
|
|
40044
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)("p", { className: "text-xs text-red-400/60 mt-1 leading-relaxed", children: error || "An unexpected error occurred. Please try again." })
|
|
40045
|
+
] })
|
|
40046
|
+
] }) }) });
|
|
40047
|
+
}
|
|
40048
|
+
const displayQuery = query || initialTitle || "Web Search";
|
|
40049
|
+
const statsText = [
|
|
40050
|
+
resultCount > 0 && `${resultCount} result${resultCount !== 1 ? "s" : ""}`,
|
|
40051
|
+
searchCount > 0 && `${searchCount} search${searchCount !== 1 ? "es" : ""}`
|
|
40052
|
+
].filter(Boolean).join(" \xB7 ");
|
|
40053
|
+
return /* @__PURE__ */ (0, import_jsx_runtime149.jsx)("div", { className: cn("w-full", className), children: /* @__PURE__ */ (0, import_jsx_runtime149.jsxs)("div", { className: "bg-zinc-900 border border-zinc-800 rounded-2xl overflow-hidden", children: [
|
|
40054
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)(
|
|
40055
|
+
"div",
|
|
40056
|
+
{
|
|
40057
|
+
className: "h-[3px]",
|
|
40058
|
+
style: { background: "linear-gradient(90deg, #8B7D5E, #C0AE82, #DCC99B)" }
|
|
40059
|
+
}
|
|
40060
|
+
),
|
|
40061
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsxs)("div", { className: "p-5", children: [
|
|
40062
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsxs)("div", { className: "flex items-start gap-3", children: [
|
|
40063
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)("div", { className: "w-10 h-10 rounded-xl flex items-center justify-center flex-shrink-0 border border-amber-500/30 bg-amber-500/10 text-amber-400", children: /* @__PURE__ */ (0, import_jsx_runtime149.jsx)(SearchIcon, {}) }),
|
|
40064
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsxs)("div", { className: "flex-1 min-w-0", children: [
|
|
40065
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)("h3", { className: "text-sm font-semibold text-zinc-100 leading-tight line-clamp-2", children: displayQuery }),
|
|
40066
|
+
statsText && /* @__PURE__ */ (0, import_jsx_runtime149.jsx)("p", { className: "text-xs text-zinc-500 mt-0.5", children: statsText })
|
|
40067
|
+
] })
|
|
40068
|
+
] }),
|
|
40069
|
+
summary && /* @__PURE__ */ (0, import_jsx_runtime149.jsx)("p", { className: "mt-3 text-xs text-zinc-400 leading-relaxed line-clamp-3", children: summary }),
|
|
40070
|
+
!compact && results.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime149.jsx)("div", { className: "mt-4 space-y-2", children: results.map((result, i) => /* @__PURE__ */ (0, import_jsx_runtime149.jsxs)(
|
|
40071
|
+
"a",
|
|
40072
|
+
{
|
|
40073
|
+
href: result.url,
|
|
40074
|
+
target: "_blank",
|
|
40075
|
+
rel: "noopener noreferrer",
|
|
40076
|
+
className: "block rounded-xl border border-zinc-800 bg-zinc-800/40 hover:border-zinc-600 hover:bg-zinc-800/70 transition-colors p-3 group",
|
|
40077
|
+
children: [
|
|
40078
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsxs)("div", { className: "flex items-start justify-between gap-2", children: [
|
|
40079
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)("span", { className: "text-xs font-medium text-zinc-200 group-hover:text-white leading-snug flex-1 line-clamp-2", children: result.title }),
|
|
40080
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)("span", { className: "text-zinc-600 group-hover:text-zinc-400 flex-shrink-0 mt-0.5 transition-colors", children: /* @__PURE__ */ (0, import_jsx_runtime149.jsx)(ExternalLinkIcon, {}) })
|
|
40081
|
+
] }),
|
|
40082
|
+
result.source && /* @__PURE__ */ (0, import_jsx_runtime149.jsx)("span", { className: "inline-block mt-1 text-[10px] font-medium text-amber-500/70 bg-amber-500/10 border border-amber-500/20 rounded-md px-1.5 py-0.5", children: result.source }),
|
|
40083
|
+
result.snippet && /* @__PURE__ */ (0, import_jsx_runtime149.jsx)("p", { className: "mt-1.5 text-xs text-zinc-500 leading-relaxed line-clamp-2", children: result.snippet })
|
|
40084
|
+
]
|
|
40085
|
+
},
|
|
40086
|
+
i
|
|
40087
|
+
)) })
|
|
40088
|
+
] })
|
|
40089
|
+
] }) });
|
|
40090
|
+
};
|
|
40091
|
+
|
|
39868
40092
|
// src/molecules/creator-discovery/CampaignSeedCard/CampaignSeedCard.tsx
|
|
39869
|
-
var
|
|
40093
|
+
var import_react79 = __toESM(require("react"), 1);
|
|
39870
40094
|
|
|
39871
40095
|
// src/molecules/creator-discovery/SearchSpecCard/CustomFieldRenderers.tsx
|
|
39872
|
-
var
|
|
40096
|
+
var import_react78 = require("react");
|
|
39873
40097
|
|
|
39874
40098
|
// src/lib/countries.ts
|
|
39875
40099
|
var countries = [
|
|
@@ -40076,15 +40300,15 @@ var countriesWithFlags = Object.fromEntries(
|
|
|
40076
40300
|
);
|
|
40077
40301
|
|
|
40078
40302
|
// src/molecules/creator-discovery/SearchSpecCard/CustomFieldRenderers.tsx
|
|
40079
|
-
var
|
|
40303
|
+
var import_jsx_runtime150 = require("react/jsx-runtime");
|
|
40080
40304
|
var CountrySelectEdit = ({
|
|
40081
40305
|
value,
|
|
40082
40306
|
onChange
|
|
40083
40307
|
}) => {
|
|
40084
|
-
const [isDropdownOpen, setIsDropdownOpen] = (0,
|
|
40085
|
-
const [searchTerm, setSearchTerm] = (0,
|
|
40086
|
-
const dropdownRef = (0,
|
|
40087
|
-
(0,
|
|
40308
|
+
const [isDropdownOpen, setIsDropdownOpen] = (0, import_react78.useState)(false);
|
|
40309
|
+
const [searchTerm, setSearchTerm] = (0, import_react78.useState)("");
|
|
40310
|
+
const dropdownRef = (0, import_react78.useRef)(null);
|
|
40311
|
+
(0, import_react78.useEffect)(() => {
|
|
40088
40312
|
const handleClickOutside = (event) => {
|
|
40089
40313
|
if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {
|
|
40090
40314
|
setIsDropdownOpen(false);
|
|
@@ -40093,7 +40317,7 @@ var CountrySelectEdit = ({
|
|
|
40093
40317
|
document.addEventListener("mousedown", handleClickOutside);
|
|
40094
40318
|
return () => document.removeEventListener("mousedown", handleClickOutside);
|
|
40095
40319
|
}, []);
|
|
40096
|
-
const inputValue = (0,
|
|
40320
|
+
const inputValue = (0, import_react78.useMemo)(() => {
|
|
40097
40321
|
if (Array.isArray(value)) return value;
|
|
40098
40322
|
if (typeof value === "string" && value.trim() !== "") {
|
|
40099
40323
|
const foundCountry = countries.find(
|
|
@@ -40103,16 +40327,16 @@ var CountrySelectEdit = ({
|
|
|
40103
40327
|
}
|
|
40104
40328
|
return [];
|
|
40105
40329
|
}, [value]);
|
|
40106
|
-
return /* @__PURE__ */ (0,
|
|
40107
|
-
/* @__PURE__ */ (0,
|
|
40108
|
-
/* @__PURE__ */ (0,
|
|
40330
|
+
return /* @__PURE__ */ (0, import_jsx_runtime150.jsxs)("div", { className: "space-y-3", children: [
|
|
40331
|
+
/* @__PURE__ */ (0, import_jsx_runtime150.jsxs)("div", { className: "relative", ref: dropdownRef, children: [
|
|
40332
|
+
/* @__PURE__ */ (0, import_jsx_runtime150.jsxs)(
|
|
40109
40333
|
"div",
|
|
40110
40334
|
{
|
|
40111
40335
|
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",
|
|
40112
40336
|
onClick: () => setIsDropdownOpen(!isDropdownOpen),
|
|
40113
40337
|
children: [
|
|
40114
|
-
/* @__PURE__ */ (0,
|
|
40115
|
-
/* @__PURE__ */ (0,
|
|
40338
|
+
/* @__PURE__ */ (0, import_jsx_runtime150.jsx)("span", { className: "text-foreground", children: inputValue.length > 0 ? `${inputValue.length} ${inputValue.length === 1 ? "country" : "countries"} selected` : "Select countries..." }),
|
|
40339
|
+
/* @__PURE__ */ (0, import_jsx_runtime150.jsx)(
|
|
40116
40340
|
ChevronDown,
|
|
40117
40341
|
{
|
|
40118
40342
|
className: cn(
|
|
@@ -40124,8 +40348,8 @@ var CountrySelectEdit = ({
|
|
|
40124
40348
|
]
|
|
40125
40349
|
}
|
|
40126
40350
|
),
|
|
40127
|
-
isDropdownOpen && /* @__PURE__ */ (0,
|
|
40128
|
-
/* @__PURE__ */ (0,
|
|
40351
|
+
isDropdownOpen && /* @__PURE__ */ (0, import_jsx_runtime150.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: [
|
|
40352
|
+
/* @__PURE__ */ (0, import_jsx_runtime150.jsx)("div", { className: "p-2 border-b border-border", children: /* @__PURE__ */ (0, import_jsx_runtime150.jsx)(
|
|
40129
40353
|
"input",
|
|
40130
40354
|
{
|
|
40131
40355
|
type: "text",
|
|
@@ -40136,9 +40360,9 @@ var CountrySelectEdit = ({
|
|
|
40136
40360
|
onClick: (e) => e.stopPropagation()
|
|
40137
40361
|
}
|
|
40138
40362
|
) }),
|
|
40139
|
-
/* @__PURE__ */ (0,
|
|
40363
|
+
/* @__PURE__ */ (0, import_jsx_runtime150.jsx)("div", { className: "max-h-40 overflow-y-auto p-1", children: countries.filter(
|
|
40140
40364
|
(country) => country.name.toLowerCase().includes(searchTerm.toLowerCase()) || country.code.toLowerCase().includes(searchTerm.toLowerCase())
|
|
40141
|
-
).map((country) => /* @__PURE__ */ (0,
|
|
40365
|
+
).map((country) => /* @__PURE__ */ (0, import_jsx_runtime150.jsxs)(
|
|
40142
40366
|
"div",
|
|
40143
40367
|
{
|
|
40144
40368
|
className: cn(
|
|
@@ -40159,30 +40383,30 @@ var CountrySelectEdit = ({
|
|
|
40159
40383
|
}
|
|
40160
40384
|
},
|
|
40161
40385
|
children: [
|
|
40162
|
-
/* @__PURE__ */ (0,
|
|
40163
|
-
/* @__PURE__ */ (0,
|
|
40164
|
-
/* @__PURE__ */ (0,
|
|
40386
|
+
/* @__PURE__ */ (0, import_jsx_runtime150.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
40387
|
+
/* @__PURE__ */ (0, import_jsx_runtime150.jsx)("span", { className: "text-sm text-foreground", children: country.name }),
|
|
40388
|
+
/* @__PURE__ */ (0, import_jsx_runtime150.jsx)("span", { className: "text-xs text-muted-foreground font-mono", children: country.code })
|
|
40165
40389
|
] }),
|
|
40166
|
-
inputValue.includes(country.code) && /* @__PURE__ */ (0,
|
|
40390
|
+
inputValue.includes(country.code) && /* @__PURE__ */ (0, import_jsx_runtime150.jsx)(Check, { className: "h-4 w-4 text-purple500" })
|
|
40167
40391
|
]
|
|
40168
40392
|
},
|
|
40169
40393
|
country.code
|
|
40170
40394
|
)) })
|
|
40171
40395
|
] })
|
|
40172
40396
|
] }),
|
|
40173
|
-
inputValue.length > 0 && /* @__PURE__ */ (0,
|
|
40397
|
+
inputValue.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime150.jsx)("div", { className: "flex flex-wrap gap-1.5", children: inputValue.map((countryCode) => /* @__PURE__ */ (0, import_jsx_runtime150.jsxs)(
|
|
40174
40398
|
Badge2,
|
|
40175
40399
|
{
|
|
40176
40400
|
className: "flex items-center gap-1 px-2 py-0.5 bg-grayPill border border-gray400 rounded-md text-white text-xs font-medium",
|
|
40177
40401
|
children: [
|
|
40178
40402
|
countryCode,
|
|
40179
|
-
/* @__PURE__ */ (0,
|
|
40403
|
+
/* @__PURE__ */ (0, import_jsx_runtime150.jsxs)(
|
|
40180
40404
|
"button",
|
|
40181
40405
|
{
|
|
40182
40406
|
onClick: () => onChange(inputValue.filter((c) => c !== countryCode)),
|
|
40183
40407
|
className: "hover:bg-purple200 rounded-full p-0.5 transition-colors",
|
|
40184
40408
|
children: [
|
|
40185
|
-
/* @__PURE__ */ (0,
|
|
40409
|
+
/* @__PURE__ */ (0, import_jsx_runtime150.jsx)(X, { className: "h-3 w-3" }),
|
|
40186
40410
|
" "
|
|
40187
40411
|
]
|
|
40188
40412
|
}
|
|
@@ -40194,19 +40418,19 @@ var CountrySelectEdit = ({
|
|
|
40194
40418
|
] });
|
|
40195
40419
|
};
|
|
40196
40420
|
var CountrySelectDisplay = ({ value }) => {
|
|
40197
|
-
const displayValues = (0,
|
|
40421
|
+
const displayValues = (0, import_react78.useMemo)(() => {
|
|
40198
40422
|
if (Array.isArray(value)) return value;
|
|
40199
40423
|
if (typeof value === "string" && value.trim() !== "") return [value];
|
|
40200
40424
|
return [];
|
|
40201
40425
|
}, [value]);
|
|
40202
40426
|
if (displayValues.length === 0) {
|
|
40203
|
-
return /* @__PURE__ */ (0,
|
|
40427
|
+
return /* @__PURE__ */ (0, import_jsx_runtime150.jsx)("span", { className: "text-muted-foreground italic text-sm", children: "Not specified" });
|
|
40204
40428
|
}
|
|
40205
|
-
return /* @__PURE__ */ (0,
|
|
40429
|
+
return /* @__PURE__ */ (0, import_jsx_runtime150.jsx)("div", { className: "flex flex-wrap gap-2 pt-1", children: displayValues.map((item) => {
|
|
40206
40430
|
const country = countries.find(
|
|
40207
40431
|
(c) => c.code.toLowerCase() === item.toLowerCase() || c.name.toLowerCase() === item.toLowerCase()
|
|
40208
40432
|
);
|
|
40209
|
-
return /* @__PURE__ */ (0,
|
|
40433
|
+
return /* @__PURE__ */ (0, import_jsx_runtime150.jsx)(
|
|
40210
40434
|
"div",
|
|
40211
40435
|
{
|
|
40212
40436
|
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",
|
|
@@ -40240,22 +40464,22 @@ var KeywordBundlesEdit = ({
|
|
|
40240
40464
|
});
|
|
40241
40465
|
});
|
|
40242
40466
|
const sortedPriorities = Object.keys(groups).map((n) => parseInt(n)).sort((a, b) => a - b);
|
|
40243
|
-
return /* @__PURE__ */ (0,
|
|
40244
|
-
/* @__PURE__ */ (0,
|
|
40245
|
-
/* @__PURE__ */ (0,
|
|
40467
|
+
return /* @__PURE__ */ (0, import_jsx_runtime150.jsx)("div", { className: "space-y-6 pt-2", children: sortedPriorities.map((priority) => /* @__PURE__ */ (0, import_jsx_runtime150.jsxs)("div", { className: "space-y-3", children: [
|
|
40468
|
+
/* @__PURE__ */ (0, import_jsx_runtime150.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
40469
|
+
/* @__PURE__ */ (0, import_jsx_runtime150.jsxs)("div", { className: "inline-block px-3 py-1 bg-purple200 hover:bg-purple200 text-purpleText text-sm font-medium rounded-md uppercase", children: [
|
|
40246
40470
|
"Priority ",
|
|
40247
40471
|
priority
|
|
40248
40472
|
] }),
|
|
40249
|
-
/* @__PURE__ */ (0,
|
|
40473
|
+
/* @__PURE__ */ (0, import_jsx_runtime150.jsx)("div", { className: "h-px flex-1 bg-white/10" })
|
|
40250
40474
|
] }),
|
|
40251
|
-
groups[priority].map(({ bundle, index: bundleIndex }) => /* @__PURE__ */ (0,
|
|
40475
|
+
groups[priority].map(({ bundle, index: bundleIndex }) => /* @__PURE__ */ (0, import_jsx_runtime150.jsx)(
|
|
40252
40476
|
"div",
|
|
40253
40477
|
{
|
|
40254
40478
|
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",
|
|
40255
|
-
children: /* @__PURE__ */ (0,
|
|
40256
|
-
/* @__PURE__ */ (0,
|
|
40257
|
-
/* @__PURE__ */ (0,
|
|
40258
|
-
/* @__PURE__ */ (0,
|
|
40479
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime150.jsxs)("div", { className: "flex flex-col gap-3", children: [
|
|
40480
|
+
/* @__PURE__ */ (0, import_jsx_runtime150.jsx)("label", { className: "text-[10px] font-bold text-gray-400 uppercase tracking-widest pl-1", children: "Keywords" }),
|
|
40481
|
+
/* @__PURE__ */ (0, import_jsx_runtime150.jsxs)("div", { className: "space-y-3", children: [
|
|
40482
|
+
/* @__PURE__ */ (0, import_jsx_runtime150.jsx)("div", { className: "flex flex-wrap gap-1.5", children: Array.isArray(bundle.keywords) && bundle.keywords.map((keyword, kIndex) => /* @__PURE__ */ (0, import_jsx_runtime150.jsxs)(
|
|
40259
40483
|
"div",
|
|
40260
40484
|
{
|
|
40261
40485
|
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",
|
|
@@ -40272,12 +40496,12 @@ var KeywordBundlesEdit = ({
|
|
|
40272
40496
|
},
|
|
40273
40497
|
children: [
|
|
40274
40498
|
keyword,
|
|
40275
|
-
/* @__PURE__ */ (0,
|
|
40499
|
+
/* @__PURE__ */ (0, import_jsx_runtime150.jsx)("span", { className: "ml-1 opacity-60 group-hover:opacity-100 transition-opacity", children: "\xD7" })
|
|
40276
40500
|
]
|
|
40277
40501
|
},
|
|
40278
40502
|
kIndex
|
|
40279
40503
|
)) }),
|
|
40280
|
-
/* @__PURE__ */ (0,
|
|
40504
|
+
/* @__PURE__ */ (0, import_jsx_runtime150.jsx)("div", { className: "flex gap-2", children: /* @__PURE__ */ (0, import_jsx_runtime150.jsx)(
|
|
40281
40505
|
"input",
|
|
40282
40506
|
{
|
|
40283
40507
|
type: "text",
|
|
@@ -40301,9 +40525,9 @@ var KeywordBundlesEdit = ({
|
|
|
40301
40525
|
}
|
|
40302
40526
|
) })
|
|
40303
40527
|
] }),
|
|
40304
|
-
/* @__PURE__ */ (0,
|
|
40305
|
-
/* @__PURE__ */ (0,
|
|
40306
|
-
/* @__PURE__ */ (0,
|
|
40528
|
+
/* @__PURE__ */ (0, import_jsx_runtime150.jsxs)("div", { className: "flex flex-col gap-1.5 mt-1", children: [
|
|
40529
|
+
/* @__PURE__ */ (0, import_jsx_runtime150.jsx)("label", { className: "text-[10px] font-bold text-gray-400 uppercase tracking-widest pl-1", children: "Priority Level (1-5)" }),
|
|
40530
|
+
/* @__PURE__ */ (0, import_jsx_runtime150.jsx)(
|
|
40307
40531
|
"input",
|
|
40308
40532
|
{
|
|
40309
40533
|
type: "number",
|
|
@@ -40331,7 +40555,7 @@ var KeywordBundlesEdit = ({
|
|
|
40331
40555
|
var KeywordBundlesDisplay = ({ value }) => {
|
|
40332
40556
|
const bundles = Array.isArray(value) ? value : [];
|
|
40333
40557
|
if (bundles.length === 0)
|
|
40334
|
-
return /* @__PURE__ */ (0,
|
|
40558
|
+
return /* @__PURE__ */ (0, import_jsx_runtime150.jsx)("span", { className: "text-gray-500 italic text-sm", children: "Not specified" });
|
|
40335
40559
|
const groups = {};
|
|
40336
40560
|
bundles.forEach((b, idx) => {
|
|
40337
40561
|
const p = Number(b?.priority) || idx + 1;
|
|
@@ -40344,17 +40568,17 @@ var KeywordBundlesDisplay = ({ value }) => {
|
|
|
40344
40568
|
groups[p].push(...keywords);
|
|
40345
40569
|
});
|
|
40346
40570
|
const sortedPriorities = Object.keys(groups).map((n) => parseInt(n)).sort((a, b) => a - b);
|
|
40347
|
-
return /* @__PURE__ */ (0,
|
|
40571
|
+
return /* @__PURE__ */ (0, import_jsx_runtime150.jsx)("div", { className: "space-y-4 pt-2", children: sortedPriorities.map((priority) => {
|
|
40348
40572
|
const deduped = Array.from(new Set(groups[priority]));
|
|
40349
|
-
return /* @__PURE__ */ (0,
|
|
40350
|
-
/* @__PURE__ */ (0,
|
|
40351
|
-
/* @__PURE__ */ (0,
|
|
40573
|
+
return /* @__PURE__ */ (0, import_jsx_runtime150.jsxs)("div", { className: "space-y-3", children: [
|
|
40574
|
+
/* @__PURE__ */ (0, import_jsx_runtime150.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
40575
|
+
/* @__PURE__ */ (0, import_jsx_runtime150.jsxs)("div", { className: "inline-block px-3 py-1 bg-purple200 hover:bg-purple200 text-purpleText text-sm font-medium rounded-md uppercase", children: [
|
|
40352
40576
|
"Priority ",
|
|
40353
40577
|
priority
|
|
40354
40578
|
] }),
|
|
40355
|
-
/* @__PURE__ */ (0,
|
|
40579
|
+
/* @__PURE__ */ (0, import_jsx_runtime150.jsx)("div", { className: "h-px flex-1 bg-white/10" })
|
|
40356
40580
|
] }),
|
|
40357
|
-
/* @__PURE__ */ (0,
|
|
40581
|
+
/* @__PURE__ */ (0, import_jsx_runtime150.jsx)("div", { className: "flex flex-wrap gap-2 pt-1", children: deduped.map((keyword) => /* @__PURE__ */ (0, import_jsx_runtime150.jsx)(
|
|
40358
40582
|
"div",
|
|
40359
40583
|
{
|
|
40360
40584
|
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",
|
|
@@ -40370,7 +40594,7 @@ var PlatformSelectEdit = ({
|
|
|
40370
40594
|
value,
|
|
40371
40595
|
onChange
|
|
40372
40596
|
}) => {
|
|
40373
|
-
const selectedPlatforms = (0,
|
|
40597
|
+
const selectedPlatforms = (0, import_react78.useMemo)(() => {
|
|
40374
40598
|
if (Array.isArray(value)) return value;
|
|
40375
40599
|
if (typeof value === "string" && value.trim() !== "") {
|
|
40376
40600
|
return value.split(",").map((s) => s.trim()).filter(Boolean);
|
|
@@ -40389,15 +40613,15 @@ var PlatformSelectEdit = ({
|
|
|
40389
40613
|
onChange([...selectedPlatforms, platform]);
|
|
40390
40614
|
}
|
|
40391
40615
|
};
|
|
40392
|
-
const options = (0,
|
|
40616
|
+
const options = (0, import_react78.useMemo)(() => {
|
|
40393
40617
|
return DEFAULT_PLATFORMS;
|
|
40394
40618
|
}, []);
|
|
40395
|
-
return /* @__PURE__ */ (0,
|
|
40619
|
+
return /* @__PURE__ */ (0, import_jsx_runtime150.jsx)("div", { className: "flex flex-wrap gap-4 py-2", children: options.map((platform) => /* @__PURE__ */ (0, import_jsx_runtime150.jsxs)(
|
|
40396
40620
|
"label",
|
|
40397
40621
|
{
|
|
40398
40622
|
className: "flex items-center gap-2 cursor-pointer group",
|
|
40399
40623
|
children: [
|
|
40400
|
-
/* @__PURE__ */ (0,
|
|
40624
|
+
/* @__PURE__ */ (0, import_jsx_runtime150.jsx)(
|
|
40401
40625
|
"div",
|
|
40402
40626
|
{
|
|
40403
40627
|
className: cn(
|
|
@@ -40405,17 +40629,17 @@ var PlatformSelectEdit = ({
|
|
|
40405
40629
|
isSelected(platform) ? "bg-purple-600 border-purple-600" : "border-gray-300 group-hover:border-purple-400"
|
|
40406
40630
|
),
|
|
40407
40631
|
onClick: () => togglePlatform(platform),
|
|
40408
|
-
children: isSelected(platform) && /* @__PURE__ */ (0,
|
|
40632
|
+
children: isSelected(platform) && /* @__PURE__ */ (0, import_jsx_runtime150.jsx)(Check, { className: "h-3.5 w-3.5 text-white stroke-[3]" })
|
|
40409
40633
|
}
|
|
40410
40634
|
),
|
|
40411
|
-
/* @__PURE__ */ (0,
|
|
40635
|
+
/* @__PURE__ */ (0, import_jsx_runtime150.jsx)("span", { className: "text-sm font-medium text-foreground select-none", children: platform })
|
|
40412
40636
|
]
|
|
40413
40637
|
},
|
|
40414
40638
|
platform
|
|
40415
40639
|
)) });
|
|
40416
40640
|
};
|
|
40417
40641
|
var PlatformSelectDisplay = ({ value }) => {
|
|
40418
|
-
const displayValues = (0,
|
|
40642
|
+
const displayValues = (0, import_react78.useMemo)(() => {
|
|
40419
40643
|
if (Array.isArray(value)) return value;
|
|
40420
40644
|
if (typeof value === "string" && value.trim() !== "") {
|
|
40421
40645
|
return value.split(",").map((s) => s.trim()).filter(Boolean);
|
|
@@ -40423,9 +40647,9 @@ var PlatformSelectDisplay = ({ value }) => {
|
|
|
40423
40647
|
return [];
|
|
40424
40648
|
}, [value]);
|
|
40425
40649
|
if (displayValues.length === 0) {
|
|
40426
|
-
return /* @__PURE__ */ (0,
|
|
40650
|
+
return /* @__PURE__ */ (0, import_jsx_runtime150.jsx)("span", { className: "text-muted-foreground italic text-sm", children: "Not specified" });
|
|
40427
40651
|
}
|
|
40428
|
-
return /* @__PURE__ */ (0,
|
|
40652
|
+
return /* @__PURE__ */ (0, import_jsx_runtime150.jsx)("div", { className: "flex flex-wrap gap-2 pt-1", children: displayValues.map((platform) => /* @__PURE__ */ (0, import_jsx_runtime150.jsx)(
|
|
40429
40653
|
"div",
|
|
40430
40654
|
{
|
|
40431
40655
|
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",
|
|
@@ -40436,21 +40660,21 @@ var PlatformSelectDisplay = ({ value }) => {
|
|
|
40436
40660
|
};
|
|
40437
40661
|
|
|
40438
40662
|
// src/molecules/creator-discovery/CampaignSeedCard/CampaignSeedCard.tsx
|
|
40439
|
-
var
|
|
40663
|
+
var import_jsx_runtime151 = require("react/jsx-runtime");
|
|
40440
40664
|
var ObjectDisplay = ({ value }) => {
|
|
40441
40665
|
if (!value || typeof value !== "object") return null;
|
|
40442
|
-
return /* @__PURE__ */ (0,
|
|
40443
|
-
/* @__PURE__ */ (0,
|
|
40666
|
+
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: [
|
|
40667
|
+
/* @__PURE__ */ (0, import_jsx_runtime151.jsxs)("span", { className: "text-muted-foreground capitalize min-w-[120px]", children: [
|
|
40444
40668
|
k.replace(/_/g, " "),
|
|
40445
40669
|
":"
|
|
40446
40670
|
] }),
|
|
40447
|
-
/* @__PURE__ */ (0,
|
|
40671
|
+
/* @__PURE__ */ (0, import_jsx_runtime151.jsx)("span", { className: "text-foreground font-medium", children: Array.isArray(v) ? v.join(", ") : String(v) })
|
|
40448
40672
|
] }, k)) });
|
|
40449
40673
|
};
|
|
40450
40674
|
var StringArrayDisplay = ({ value }) => {
|
|
40451
40675
|
if (!Array.isArray(value) || value.length === 0)
|
|
40452
|
-
return /* @__PURE__ */ (0,
|
|
40453
|
-
return /* @__PURE__ */ (0,
|
|
40676
|
+
return /* @__PURE__ */ (0, import_jsx_runtime151.jsx)("span", { className: "text-muted-foreground italic text-sm", children: "Not specified" });
|
|
40677
|
+
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)(
|
|
40454
40678
|
"div",
|
|
40455
40679
|
{
|
|
40456
40680
|
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",
|
|
@@ -40468,8 +40692,8 @@ function buildCampaignSeedFields(data) {
|
|
|
40468
40692
|
key,
|
|
40469
40693
|
label: "Keyword Bundles",
|
|
40470
40694
|
type: "custom",
|
|
40471
|
-
renderDisplay: (v) => /* @__PURE__ */ (0,
|
|
40472
|
-
renderEdit: (v, onChange) => /* @__PURE__ */ (0,
|
|
40695
|
+
renderDisplay: (v) => /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(KeywordBundlesDisplay, { value: v }),
|
|
40696
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(
|
|
40473
40697
|
Textarea,
|
|
40474
40698
|
{
|
|
40475
40699
|
value: Array.isArray(v) ? v.map((b) => `${(b.keywords || []).join(", ")} (Priority: ${b.priority || 1})`).join("\n") : String(v || ""),
|
|
@@ -40501,8 +40725,8 @@ function buildCampaignSeedFields(data) {
|
|
|
40501
40725
|
key,
|
|
40502
40726
|
label: "Geography",
|
|
40503
40727
|
type: "custom",
|
|
40504
|
-
renderDisplay: (v) => /* @__PURE__ */ (0,
|
|
40505
|
-
renderEdit: (v, onChange) => /* @__PURE__ */ (0,
|
|
40728
|
+
renderDisplay: (v) => /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(CountrySelectDisplay, { value: v }),
|
|
40729
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(CountrySelectEdit, { value: v, onChange })
|
|
40506
40730
|
};
|
|
40507
40731
|
}
|
|
40508
40732
|
if (key === "platforms" || key === "target_platforms" || key === "targetPlatforms") {
|
|
@@ -40510,8 +40734,8 @@ function buildCampaignSeedFields(data) {
|
|
|
40510
40734
|
key,
|
|
40511
40735
|
label: "Platforms",
|
|
40512
40736
|
type: "custom",
|
|
40513
|
-
renderDisplay: (v) => /* @__PURE__ */ (0,
|
|
40514
|
-
renderEdit: (v, onChange) => /* @__PURE__ */ (0,
|
|
40737
|
+
renderDisplay: (v) => /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(PlatformSelectDisplay, { value: v }),
|
|
40738
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(
|
|
40515
40739
|
PlatformSelectEdit,
|
|
40516
40740
|
{
|
|
40517
40741
|
value: v,
|
|
@@ -40526,7 +40750,7 @@ function buildCampaignSeedFields(data) {
|
|
|
40526
40750
|
key,
|
|
40527
40751
|
label,
|
|
40528
40752
|
type: "custom",
|
|
40529
|
-
renderDisplay: (v) => /* @__PURE__ */ (0,
|
|
40753
|
+
renderDisplay: (v) => /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(StringArrayDisplay, { value: v })
|
|
40530
40754
|
};
|
|
40531
40755
|
}
|
|
40532
40756
|
if (typeof value === "object" && value !== null && !Array.isArray(value) && "min" in value && "max" in value) {
|
|
@@ -40537,9 +40761,9 @@ function buildCampaignSeedFields(data) {
|
|
|
40537
40761
|
type: "custom",
|
|
40538
40762
|
renderDisplay: (v) => {
|
|
40539
40763
|
if (typeof v === "object" && v !== null) {
|
|
40540
|
-
return /* @__PURE__ */ (0,
|
|
40764
|
+
return /* @__PURE__ */ (0, import_jsx_runtime151.jsx)("span", { className: "text-foreground font-medium", children: `${v.min?.toLocaleString()} - ${v.max?.toLocaleString()}` });
|
|
40541
40765
|
}
|
|
40542
|
-
return /* @__PURE__ */ (0,
|
|
40766
|
+
return /* @__PURE__ */ (0, import_jsx_runtime151.jsx)("span", { className: "text-foreground font-medium", children: v });
|
|
40543
40767
|
}
|
|
40544
40768
|
};
|
|
40545
40769
|
}
|
|
@@ -40549,8 +40773,8 @@ function buildCampaignSeedFields(data) {
|
|
|
40549
40773
|
key,
|
|
40550
40774
|
label,
|
|
40551
40775
|
type: "custom",
|
|
40552
|
-
renderDisplay: (v) => /* @__PURE__ */ (0,
|
|
40553
|
-
renderEdit: (v, onChange) => /* @__PURE__ */ (0,
|
|
40776
|
+
renderDisplay: (v) => /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(ObjectDisplay, { value: v }),
|
|
40777
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(
|
|
40554
40778
|
Textarea,
|
|
40555
40779
|
{
|
|
40556
40780
|
value: Object.entries(v || {}).map(([k, val]) => `${k.replace(/_/g, " ")}: ${val}`).join("\n"),
|
|
@@ -40575,7 +40799,7 @@ function buildCampaignSeedFields(data) {
|
|
|
40575
40799
|
return generated;
|
|
40576
40800
|
});
|
|
40577
40801
|
}
|
|
40578
|
-
var CampaignSeedCard =
|
|
40802
|
+
var CampaignSeedCard = import_react79.default.memo(
|
|
40579
40803
|
({
|
|
40580
40804
|
selectionStatus,
|
|
40581
40805
|
isLatestMessage = true,
|
|
@@ -40587,7 +40811,7 @@ var CampaignSeedCard = import_react78.default.memo(
|
|
|
40587
40811
|
sendMessage,
|
|
40588
40812
|
...formCardProps
|
|
40589
40813
|
}) => {
|
|
40590
|
-
const fields = (0,
|
|
40814
|
+
const fields = (0, import_react79.useMemo)(() => {
|
|
40591
40815
|
return providedFields || buildCampaignSeedFields(data);
|
|
40592
40816
|
}, [providedFields, data]);
|
|
40593
40817
|
const handleProceed = () => {
|
|
@@ -40598,7 +40822,7 @@ var CampaignSeedCard = import_react78.default.memo(
|
|
|
40598
40822
|
});
|
|
40599
40823
|
};
|
|
40600
40824
|
const effectiveIsLatest = isLatestMessage && !hasUserResponded;
|
|
40601
|
-
return /* @__PURE__ */ (0,
|
|
40825
|
+
return /* @__PURE__ */ (0, import_jsx_runtime151.jsx)("div", { className: "flex flex-col gap-2", children: /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(
|
|
40602
40826
|
FormCard,
|
|
40603
40827
|
{
|
|
40604
40828
|
...formCardProps,
|
|
@@ -40610,9 +40834,9 @@ var CampaignSeedCard = import_react78.default.memo(
|
|
|
40610
40834
|
showTimeline: true,
|
|
40611
40835
|
isLatestMessage: effectiveIsLatest,
|
|
40612
40836
|
className,
|
|
40613
|
-
footer: !effectiveIsLatest && selectionStatus ? /* @__PURE__ */ (0,
|
|
40614
|
-
/* @__PURE__ */ (0,
|
|
40615
|
-
/* @__PURE__ */ (0,
|
|
40837
|
+
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-2 pr-4", children: [
|
|
40838
|
+
/* @__PURE__ */ (0, import_jsx_runtime151.jsx)(CircleCheck, { className: "h-3 w-3" }),
|
|
40839
|
+
/* @__PURE__ */ (0, import_jsx_runtime151.jsx)("span", { children: selectionStatus === "agent" ? "Suggested by Agent" : "Selected by you" })
|
|
40616
40840
|
] }) : formCardProps.footer
|
|
40617
40841
|
}
|
|
40618
40842
|
) });
|
|
@@ -40621,22 +40845,22 @@ var CampaignSeedCard = import_react78.default.memo(
|
|
|
40621
40845
|
CampaignSeedCard.displayName = "CampaignSeedCard";
|
|
40622
40846
|
|
|
40623
40847
|
// src/molecules/creator-discovery/SearchSpecCard/SearchSpecCard.tsx
|
|
40624
|
-
var
|
|
40625
|
-
var
|
|
40848
|
+
var import_react80 = __toESM(require("react"), 1);
|
|
40849
|
+
var import_jsx_runtime152 = require("react/jsx-runtime");
|
|
40626
40850
|
var ObjectDisplay2 = ({ value }) => {
|
|
40627
40851
|
if (!value || typeof value !== "object") return null;
|
|
40628
|
-
return /* @__PURE__ */ (0,
|
|
40629
|
-
/* @__PURE__ */ (0,
|
|
40852
|
+
return /* @__PURE__ */ (0, import_jsx_runtime152.jsx)("div", { className: "space-y-1 pt-1", children: Object.entries(value).map(([k, v]) => /* @__PURE__ */ (0, import_jsx_runtime152.jsxs)("div", { className: "flex gap-2 text-sm", children: [
|
|
40853
|
+
/* @__PURE__ */ (0, import_jsx_runtime152.jsxs)("span", { className: "text-muted-foreground capitalize min-w-[120px]", children: [
|
|
40630
40854
|
k.replace(/_/g, " "),
|
|
40631
40855
|
":"
|
|
40632
40856
|
] }),
|
|
40633
|
-
/* @__PURE__ */ (0,
|
|
40857
|
+
/* @__PURE__ */ (0, import_jsx_runtime152.jsx)("span", { className: "text-foreground font-medium", children: Array.isArray(v) ? v.join(", ") : String(v) })
|
|
40634
40858
|
] }, k)) });
|
|
40635
40859
|
};
|
|
40636
40860
|
var StringArrayDisplay2 = ({ value }) => {
|
|
40637
40861
|
if (!Array.isArray(value) || value.length === 0)
|
|
40638
|
-
return /* @__PURE__ */ (0,
|
|
40639
|
-
return /* @__PURE__ */ (0,
|
|
40862
|
+
return /* @__PURE__ */ (0, import_jsx_runtime152.jsx)("span", { className: "text-muted-foreground italic text-sm", children: "Not specified" });
|
|
40863
|
+
return /* @__PURE__ */ (0, import_jsx_runtime152.jsx)("div", { className: "flex flex-wrap gap-2 pt-1", children: value.map((item) => /* @__PURE__ */ (0, import_jsx_runtime152.jsx)(
|
|
40640
40864
|
"div",
|
|
40641
40865
|
{
|
|
40642
40866
|
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",
|
|
@@ -40654,8 +40878,8 @@ function buildSearchSpecFields(data) {
|
|
|
40654
40878
|
key,
|
|
40655
40879
|
label: "Keyword Bundles",
|
|
40656
40880
|
type: "custom",
|
|
40657
|
-
renderDisplay: (v) => /* @__PURE__ */ (0,
|
|
40658
|
-
renderEdit: (v, onChange) => /* @__PURE__ */ (0,
|
|
40881
|
+
renderDisplay: (v) => /* @__PURE__ */ (0, import_jsx_runtime152.jsx)(KeywordBundlesDisplay, { value: v }),
|
|
40882
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ (0, import_jsx_runtime152.jsx)(KeywordBundlesEdit, { value: v, onChange })
|
|
40659
40883
|
};
|
|
40660
40884
|
}
|
|
40661
40885
|
if (key === "geography") {
|
|
@@ -40663,8 +40887,8 @@ function buildSearchSpecFields(data) {
|
|
|
40663
40887
|
key,
|
|
40664
40888
|
label: "Geography",
|
|
40665
40889
|
type: "custom",
|
|
40666
|
-
renderDisplay: (v) => /* @__PURE__ */ (0,
|
|
40667
|
-
renderEdit: (v, onChange) => /* @__PURE__ */ (0,
|
|
40890
|
+
renderDisplay: (v) => /* @__PURE__ */ (0, import_jsx_runtime152.jsx)(CountrySelectDisplay, { value: v }),
|
|
40891
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ (0, import_jsx_runtime152.jsx)(CountrySelectEdit, { value: v, onChange })
|
|
40668
40892
|
};
|
|
40669
40893
|
}
|
|
40670
40894
|
if (key === "platforms" && Array.isArray(value)) {
|
|
@@ -40675,8 +40899,8 @@ function buildSearchSpecFields(data) {
|
|
|
40675
40899
|
config: {
|
|
40676
40900
|
options: data.platform_options || data.available_platforms || data.platforms_list || []
|
|
40677
40901
|
},
|
|
40678
|
-
renderDisplay: (v) => /* @__PURE__ */ (0,
|
|
40679
|
-
renderEdit: (v, onChange) => /* @__PURE__ */ (0,
|
|
40902
|
+
renderDisplay: (v) => /* @__PURE__ */ (0, import_jsx_runtime152.jsx)(PlatformSelectDisplay, { value: v }),
|
|
40903
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ (0, import_jsx_runtime152.jsx)(
|
|
40680
40904
|
PlatformSelectEdit,
|
|
40681
40905
|
{
|
|
40682
40906
|
value: v,
|
|
@@ -40690,8 +40914,8 @@ function buildSearchSpecFields(data) {
|
|
|
40690
40914
|
key,
|
|
40691
40915
|
label: "Exclude Keywords",
|
|
40692
40916
|
type: "custom",
|
|
40693
|
-
renderDisplay: (v) => /* @__PURE__ */ (0,
|
|
40694
|
-
renderEdit: (v, onChange) => /* @__PURE__ */ (0,
|
|
40917
|
+
renderDisplay: (v) => /* @__PURE__ */ (0, import_jsx_runtime152.jsx)(StringArrayDisplay2, { value: v }),
|
|
40918
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ (0, import_jsx_runtime152.jsx)(
|
|
40695
40919
|
Textarea,
|
|
40696
40920
|
{
|
|
40697
40921
|
value: Array.isArray(v) ? v.join(", ") : String(v || ""),
|
|
@@ -40711,8 +40935,8 @@ function buildSearchSpecFields(data) {
|
|
|
40711
40935
|
key,
|
|
40712
40936
|
label,
|
|
40713
40937
|
type: "custom",
|
|
40714
|
-
renderDisplay: (v) => /* @__PURE__ */ (0,
|
|
40715
|
-
renderEdit: (v, onChange) => /* @__PURE__ */ (0,
|
|
40938
|
+
renderDisplay: (v) => /* @__PURE__ */ (0, import_jsx_runtime152.jsx)(ObjectDisplay2, { value: v }),
|
|
40939
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ (0, import_jsx_runtime152.jsx)(
|
|
40716
40940
|
Textarea,
|
|
40717
40941
|
{
|
|
40718
40942
|
value: Object.entries(v || {}).map(([k, val]) => `${k.replace(/_/g, " ")}: ${val}`).join("\n"),
|
|
@@ -40737,7 +40961,7 @@ function buildSearchSpecFields(data) {
|
|
|
40737
40961
|
return generated;
|
|
40738
40962
|
});
|
|
40739
40963
|
}
|
|
40740
|
-
var SearchSpecCard =
|
|
40964
|
+
var SearchSpecCard = import_react80.default.memo(
|
|
40741
40965
|
({
|
|
40742
40966
|
selectionStatus,
|
|
40743
40967
|
isLatestMessage = true,
|
|
@@ -40751,7 +40975,7 @@ var SearchSpecCard = import_react79.default.memo(
|
|
|
40751
40975
|
...formCardProps
|
|
40752
40976
|
}) => {
|
|
40753
40977
|
const resolvedData = data || specData;
|
|
40754
|
-
const fields = (0,
|
|
40978
|
+
const fields = (0, import_react80.useMemo)(() => {
|
|
40755
40979
|
return providedFields || buildSearchSpecFields(resolvedData ?? {});
|
|
40756
40980
|
}, [providedFields, resolvedData]);
|
|
40757
40981
|
const handleProceed = () => {
|
|
@@ -40765,7 +40989,7 @@ var SearchSpecCard = import_react79.default.memo(
|
|
|
40765
40989
|
});
|
|
40766
40990
|
};
|
|
40767
40991
|
const effectiveIsLatest = isLatestMessage && !hasUserResponded;
|
|
40768
|
-
return /* @__PURE__ */ (0,
|
|
40992
|
+
return /* @__PURE__ */ (0, import_jsx_runtime152.jsx)("div", { className: "flex flex-col gap-2", children: /* @__PURE__ */ (0, import_jsx_runtime152.jsx)(
|
|
40769
40993
|
FormCard,
|
|
40770
40994
|
{
|
|
40771
40995
|
...formCardProps,
|
|
@@ -40776,9 +41000,9 @@ var SearchSpecCard = import_react79.default.memo(
|
|
|
40776
41000
|
onProceed: handleProceed,
|
|
40777
41001
|
isLatestMessage: effectiveIsLatest,
|
|
40778
41002
|
className,
|
|
40779
|
-
footer: !effectiveIsLatest && selectionStatus ? /* @__PURE__ */ (0,
|
|
40780
|
-
/* @__PURE__ */ (0,
|
|
40781
|
-
/* @__PURE__ */ (0,
|
|
41003
|
+
footer: !effectiveIsLatest && selectionStatus ? /* @__PURE__ */ (0, import_jsx_runtime152.jsxs)("div", { className: "flex justify-end items-center gap-1 text-green-600 text-[10px] font-semibold py-1", children: [
|
|
41004
|
+
/* @__PURE__ */ (0, import_jsx_runtime152.jsx)(CircleCheck, { className: "h-3 w-3" }),
|
|
41005
|
+
/* @__PURE__ */ (0, import_jsx_runtime152.jsx)("span", { children: selectionStatus === "agent" ? "Selected by Agent" : "Selected by User" })
|
|
40782
41006
|
] }) : formCardProps.footer
|
|
40783
41007
|
}
|
|
40784
41008
|
) });
|
|
@@ -40787,7 +41011,7 @@ var SearchSpecCard = import_react79.default.memo(
|
|
|
40787
41011
|
SearchSpecCard.displayName = "SearchSpecCard";
|
|
40788
41012
|
|
|
40789
41013
|
// src/molecules/creator-discovery/MCQCard/MCQCard.tsx
|
|
40790
|
-
var
|
|
41014
|
+
var import_react81 = __toESM(require("react"), 1);
|
|
40791
41015
|
|
|
40792
41016
|
// src/molecules/creator-discovery/MCQCard/defaultFetchers.ts
|
|
40793
41017
|
function getBackendOrigin() {
|
|
@@ -40887,8 +41111,8 @@ async function defaultPersistSelection(sessionId, questionKey, value) {
|
|
|
40887
41111
|
}
|
|
40888
41112
|
|
|
40889
41113
|
// src/molecules/creator-discovery/MCQCard/MCQCard.tsx
|
|
40890
|
-
var
|
|
40891
|
-
var MCQCard =
|
|
41114
|
+
var import_jsx_runtime153 = require("react/jsx-runtime");
|
|
41115
|
+
var MCQCard = import_react81.default.memo(
|
|
40892
41116
|
({
|
|
40893
41117
|
question,
|
|
40894
41118
|
options,
|
|
@@ -40913,16 +41137,16 @@ var MCQCard = import_react80.default.memo(
|
|
|
40913
41137
|
const resolvedOptions = options || allProps.Options || allProps.opts || {};
|
|
40914
41138
|
const resolvedRecommended = recommended || allProps.Recommended || allProps.rec;
|
|
40915
41139
|
console.log("[MCQCard] FULL PROPS:", { allProps, resolvedQuestion, resolvedOptions: Object.keys(resolvedOptions || {}), resolvedRecommended });
|
|
40916
|
-
const [selectedOption, setSelectedOption] =
|
|
40917
|
-
const [isProceeded, setIsProceeded] =
|
|
40918
|
-
const fetchedSessionRef =
|
|
40919
|
-
|
|
41140
|
+
const [selectedOption, setSelectedOption] = import_react81.default.useState(propsSelectedOption);
|
|
41141
|
+
const [isProceeded, setIsProceeded] = import_react81.default.useState(false);
|
|
41142
|
+
const fetchedSessionRef = import_react81.default.useRef("");
|
|
41143
|
+
import_react81.default.useEffect(() => {
|
|
40920
41144
|
if (propsSelectedOption) {
|
|
40921
41145
|
setSelectedOption(propsSelectedOption);
|
|
40922
41146
|
setIsProceeded(true);
|
|
40923
41147
|
}
|
|
40924
41148
|
}, [propsSelectedOption]);
|
|
40925
|
-
const buildQuestionKey =
|
|
41149
|
+
const buildQuestionKey = import_react81.default.useCallback((sid, question2) => {
|
|
40926
41150
|
let hash = 2166136261;
|
|
40927
41151
|
for (let i = 0; i < question2.length; i++) {
|
|
40928
41152
|
hash ^= question2.charCodeAt(i);
|
|
@@ -40930,7 +41154,7 @@ var MCQCard = import_react80.default.memo(
|
|
|
40930
41154
|
}
|
|
40931
41155
|
return `mcq_${sid}_${hash.toString(36)}`;
|
|
40932
41156
|
}, []);
|
|
40933
|
-
|
|
41157
|
+
import_react81.default.useEffect(() => {
|
|
40934
41158
|
if (!sessionId || !resolvedQuestion) return;
|
|
40935
41159
|
const fetchKey = `${sessionId}::${resolvedQuestion}`;
|
|
40936
41160
|
if (fetchedSessionRef.current === fetchKey) return;
|
|
@@ -40993,7 +41217,7 @@ A: ${label}`);
|
|
|
40993
41217
|
key,
|
|
40994
41218
|
typeof val === "string" ? val : typeof val === "object" && val !== null ? val.label || val.description || val.id || JSON.stringify(val) : String(val ?? "")
|
|
40995
41219
|
]) : [];
|
|
40996
|
-
return /* @__PURE__ */ (0,
|
|
41220
|
+
return /* @__PURE__ */ (0, import_jsx_runtime153.jsxs)(
|
|
40997
41221
|
"div",
|
|
40998
41222
|
{
|
|
40999
41223
|
className: cn(
|
|
@@ -41001,11 +41225,11 @@ A: ${label}`);
|
|
|
41001
41225
|
className
|
|
41002
41226
|
),
|
|
41003
41227
|
children: [
|
|
41004
|
-
/* @__PURE__ */ (0,
|
|
41005
|
-
/* @__PURE__ */ (0,
|
|
41228
|
+
/* @__PURE__ */ (0, import_jsx_runtime153.jsx)("div", { className: "mb-4", children: /* @__PURE__ */ (0, import_jsx_runtime153.jsx)("p", { className: "text-sm text-cardText", children: resolvedQuestion || "Select an option:" }) }),
|
|
41229
|
+
/* @__PURE__ */ (0, import_jsx_runtime153.jsx)("div", { className: "space-y-2.5 mb-4", children: optionsEntries.map(([key, label]) => {
|
|
41006
41230
|
const isSelected = selectedOption === key;
|
|
41007
41231
|
const isRecommended = key === recommended;
|
|
41008
|
-
return /* @__PURE__ */ (0,
|
|
41232
|
+
return /* @__PURE__ */ (0, import_jsx_runtime153.jsx)(
|
|
41009
41233
|
"div",
|
|
41010
41234
|
{
|
|
41011
41235
|
onClick: (e) => handleOptionClick(key, e),
|
|
@@ -41016,8 +41240,8 @@ A: ${label}`);
|
|
|
41016
41240
|
!selectedOption && !isOptionsDisabled && "hover:border-gray500",
|
|
41017
41241
|
(isLoading || isOptionsDisabled) && "opacity-50 cursor-not-allowed"
|
|
41018
41242
|
),
|
|
41019
|
-
children: /* @__PURE__ */ (0,
|
|
41020
|
-
/* @__PURE__ */ (0,
|
|
41243
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime153.jsxs)("div", { className: "flex items-start gap-3", children: [
|
|
41244
|
+
/* @__PURE__ */ (0, import_jsx_runtime153.jsx)("div", { className: "mt-0.5 flex-shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime153.jsx)(
|
|
41021
41245
|
"div",
|
|
41022
41246
|
{
|
|
41023
41247
|
className: cn(
|
|
@@ -41027,19 +41251,19 @@ A: ${label}`);
|
|
|
41027
41251
|
!selectedOption && !isOptionsDisabled && "hover:border-gold"
|
|
41028
41252
|
)
|
|
41029
41253
|
),
|
|
41030
|
-
children: isSelected && /* @__PURE__ */ (0,
|
|
41254
|
+
children: isSelected && /* @__PURE__ */ (0, import_jsx_runtime153.jsx)("div", { className: "w-2 h-2 rounded-full bg-gold" })
|
|
41031
41255
|
}
|
|
41032
41256
|
) }),
|
|
41033
|
-
/* @__PURE__ */ (0,
|
|
41034
|
-
isRecommended && /* @__PURE__ */ (0,
|
|
41035
|
-
/* @__PURE__ */ (0,
|
|
41257
|
+
/* @__PURE__ */ (0, import_jsx_runtime153.jsxs)("div", { className: "flex-1 min-w-0", children: [
|
|
41258
|
+
isRecommended && /* @__PURE__ */ (0, import_jsx_runtime153.jsx)("p", { className: "text-xs font-semibold text-gold mb-1", children: "Recommended" }),
|
|
41259
|
+
/* @__PURE__ */ (0, import_jsx_runtime153.jsx)("p", { className: "text-sm text-cardText", children: label })
|
|
41036
41260
|
] })
|
|
41037
41261
|
] })
|
|
41038
41262
|
},
|
|
41039
41263
|
key
|
|
41040
41264
|
);
|
|
41041
41265
|
}) }),
|
|
41042
|
-
/* @__PURE__ */ (0,
|
|
41266
|
+
/* @__PURE__ */ (0, import_jsx_runtime153.jsx)("div", { className: "flex justify-end", children: /* @__PURE__ */ (0, import_jsx_runtime153.jsx)(
|
|
41043
41267
|
"button",
|
|
41044
41268
|
{
|
|
41045
41269
|
onClick: handleProceed,
|
|
@@ -41060,8 +41284,8 @@ A: ${label}`);
|
|
|
41060
41284
|
MCQCard.displayName = "MCQCard";
|
|
41061
41285
|
|
|
41062
41286
|
// src/molecules/creator-discovery/PlatformIconGroup/PlatformIconGroup.tsx
|
|
41063
|
-
var
|
|
41064
|
-
var TikTokIcon = ({ className }) => /* @__PURE__ */ (0,
|
|
41287
|
+
var import_jsx_runtime154 = require("react/jsx-runtime");
|
|
41288
|
+
var TikTokIcon = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime154.jsx)(Video, { className });
|
|
41065
41289
|
var PlatformIconGroup = ({
|
|
41066
41290
|
platforms,
|
|
41067
41291
|
className
|
|
@@ -41094,10 +41318,10 @@ var PlatformIconGroup = ({
|
|
|
41094
41318
|
return "text-gray-500 bg-gray-50 border-gray-100";
|
|
41095
41319
|
}
|
|
41096
41320
|
};
|
|
41097
|
-
return /* @__PURE__ */ (0,
|
|
41321
|
+
return /* @__PURE__ */ (0, import_jsx_runtime154.jsx)("div", { className: cn("flex gap-2", className), children: platforms.map((p, i) => {
|
|
41098
41322
|
const Icon3 = getIcon(p.platform);
|
|
41099
41323
|
if (!Icon3) return null;
|
|
41100
|
-
return /* @__PURE__ */ (0,
|
|
41324
|
+
return /* @__PURE__ */ (0, import_jsx_runtime154.jsx)(
|
|
41101
41325
|
"a",
|
|
41102
41326
|
{
|
|
41103
41327
|
href: p.url || "#",
|
|
@@ -41108,7 +41332,7 @@ var PlatformIconGroup = ({
|
|
|
41108
41332
|
"p-1.5 rounded-lg border transition-colors flex items-center justify-center",
|
|
41109
41333
|
getColors(p.platform)
|
|
41110
41334
|
),
|
|
41111
|
-
children: /* @__PURE__ */ (0,
|
|
41335
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime154.jsx)(Icon3, { className: "w-4 h-4" })
|
|
41112
41336
|
},
|
|
41113
41337
|
i
|
|
41114
41338
|
);
|
|
@@ -41116,7 +41340,7 @@ var PlatformIconGroup = ({
|
|
|
41116
41340
|
};
|
|
41117
41341
|
|
|
41118
41342
|
// src/molecules/creator-discovery/CreatorProfileSummary/CreatorProfileSummary.tsx
|
|
41119
|
-
var
|
|
41343
|
+
var import_jsx_runtime155 = require("react/jsx-runtime");
|
|
41120
41344
|
var CreatorProfileSummary = ({
|
|
41121
41345
|
avatarSrc,
|
|
41122
41346
|
name,
|
|
@@ -41124,7 +41348,7 @@ var CreatorProfileSummary = ({
|
|
|
41124
41348
|
engagementRate,
|
|
41125
41349
|
className
|
|
41126
41350
|
}) => {
|
|
41127
|
-
return /* @__PURE__ */ (0,
|
|
41351
|
+
return /* @__PURE__ */ (0, import_jsx_runtime155.jsxs)(
|
|
41128
41352
|
"div",
|
|
41129
41353
|
{
|
|
41130
41354
|
className: cn(
|
|
@@ -41132,7 +41356,7 @@ var CreatorProfileSummary = ({
|
|
|
41132
41356
|
className
|
|
41133
41357
|
),
|
|
41134
41358
|
children: [
|
|
41135
|
-
/* @__PURE__ */ (0,
|
|
41359
|
+
/* @__PURE__ */ (0, import_jsx_runtime155.jsx)(
|
|
41136
41360
|
AvatarAtom,
|
|
41137
41361
|
{
|
|
41138
41362
|
id: `avatar-${name}`,
|
|
@@ -41142,8 +41366,8 @@ var CreatorProfileSummary = ({
|
|
|
41142
41366
|
className: "w-12 h-12 ring-2 ring-purple-100"
|
|
41143
41367
|
}
|
|
41144
41368
|
),
|
|
41145
|
-
/* @__PURE__ */ (0,
|
|
41146
|
-
/* @__PURE__ */ (0,
|
|
41369
|
+
/* @__PURE__ */ (0, import_jsx_runtime155.jsxs)("div", { className: "flex flex-col flex-1", children: [
|
|
41370
|
+
/* @__PURE__ */ (0, import_jsx_runtime155.jsx)(
|
|
41147
41371
|
TextAtom,
|
|
41148
41372
|
{
|
|
41149
41373
|
id: `name-${name}`,
|
|
@@ -41153,14 +41377,14 @@ var CreatorProfileSummary = ({
|
|
|
41153
41377
|
className: "text-gray-900 leading-tight"
|
|
41154
41378
|
}
|
|
41155
41379
|
),
|
|
41156
|
-
/* @__PURE__ */ (0,
|
|
41157
|
-
followerCount && /* @__PURE__ */ (0,
|
|
41158
|
-
/* @__PURE__ */ (0,
|
|
41159
|
-
/* @__PURE__ */ (0,
|
|
41380
|
+
/* @__PURE__ */ (0, import_jsx_runtime155.jsxs)("div", { className: "flex gap-3 mt-1", children: [
|
|
41381
|
+
followerCount && /* @__PURE__ */ (0, import_jsx_runtime155.jsxs)("div", { className: "flex flex-col", children: [
|
|
41382
|
+
/* @__PURE__ */ (0, import_jsx_runtime155.jsx)("span", { className: "text-[10px] uppercase tracking-wider text-muted-foreground font-bold", children: "Followers" }),
|
|
41383
|
+
/* @__PURE__ */ (0, import_jsx_runtime155.jsx)("span", { className: "text-xs font-semibold text-purple-700", children: followerCount })
|
|
41160
41384
|
] }),
|
|
41161
|
-
engagementRate && /* @__PURE__ */ (0,
|
|
41162
|
-
/* @__PURE__ */ (0,
|
|
41163
|
-
/* @__PURE__ */ (0,
|
|
41385
|
+
engagementRate && /* @__PURE__ */ (0, import_jsx_runtime155.jsxs)("div", { className: "flex flex-col border-l border-purple-100 pl-3", children: [
|
|
41386
|
+
/* @__PURE__ */ (0, import_jsx_runtime155.jsx)("span", { className: "text-[10px] uppercase tracking-wider text-muted-foreground font-bold", children: "Engagement" }),
|
|
41387
|
+
/* @__PURE__ */ (0, import_jsx_runtime155.jsx)("span", { className: "text-xs font-semibold text-indigo-600", children: engagementRate })
|
|
41164
41388
|
] })
|
|
41165
41389
|
] })
|
|
41166
41390
|
] })
|
|
@@ -41170,13 +41394,13 @@ var CreatorProfileSummary = ({
|
|
|
41170
41394
|
};
|
|
41171
41395
|
|
|
41172
41396
|
// src/molecules/creator-discovery/AudienceMetricCard/AudienceMetricCard.tsx
|
|
41173
|
-
var
|
|
41397
|
+
var import_jsx_runtime156 = require("react/jsx-runtime");
|
|
41174
41398
|
var AudienceMetricCard = ({
|
|
41175
41399
|
title,
|
|
41176
41400
|
metrics,
|
|
41177
41401
|
className
|
|
41178
41402
|
}) => {
|
|
41179
|
-
return /* @__PURE__ */ (0,
|
|
41403
|
+
return /* @__PURE__ */ (0, import_jsx_runtime156.jsxs)(
|
|
41180
41404
|
Card,
|
|
41181
41405
|
{
|
|
41182
41406
|
className: cn(
|
|
@@ -41184,13 +41408,13 @@ var AudienceMetricCard = ({
|
|
|
41184
41408
|
className
|
|
41185
41409
|
),
|
|
41186
41410
|
children: [
|
|
41187
|
-
/* @__PURE__ */ (0,
|
|
41188
|
-
/* @__PURE__ */ (0,
|
|
41189
|
-
/* @__PURE__ */ (0,
|
|
41190
|
-
/* @__PURE__ */ (0,
|
|
41191
|
-
/* @__PURE__ */ (0,
|
|
41411
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsx)(CardHeader, { className: "pb-2", children: /* @__PURE__ */ (0, import_jsx_runtime156.jsx)(CardTitle, { className: "text-lg font-bold text-gray-900", children: title }) }),
|
|
41412
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsx)(CardContent, { className: "space-y-4", children: metrics.map((metric, i) => /* @__PURE__ */ (0, import_jsx_runtime156.jsxs)("div", { className: "space-y-1.5", children: [
|
|
41413
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsxs)("div", { className: "flex justify-between items-center text-sm", children: [
|
|
41414
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsx)("span", { className: "font-medium text-gray-700", children: metric.label }),
|
|
41415
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsx)("span", { className: "font-bold text-gray-900", children: metric.value })
|
|
41192
41416
|
] }),
|
|
41193
|
-
metric.percentage !== void 0 && /* @__PURE__ */ (0,
|
|
41417
|
+
metric.percentage !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime156.jsx)(
|
|
41194
41418
|
ProgressAtom,
|
|
41195
41419
|
{
|
|
41196
41420
|
id: `progress-${i}`,
|
|
@@ -41207,8 +41431,8 @@ var AudienceMetricCard = ({
|
|
|
41207
41431
|
};
|
|
41208
41432
|
|
|
41209
41433
|
// src/molecules/creator-discovery/CreatorGridCard/CreatorGridCard.tsx
|
|
41210
|
-
var
|
|
41211
|
-
var TikTokIcon2 = ({ className }) => /* @__PURE__ */ (0,
|
|
41434
|
+
var import_jsx_runtime157 = require("react/jsx-runtime");
|
|
41435
|
+
var TikTokIcon2 = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime157.jsx)(Video, { className });
|
|
41212
41436
|
var CreatorGridCard = ({
|
|
41213
41437
|
bannerSrc,
|
|
41214
41438
|
avatarSrc,
|
|
@@ -41236,7 +41460,7 @@ var CreatorGridCard = ({
|
|
|
41236
41460
|
const safePlatforms = Array.isArray(platforms) ? platforms : [];
|
|
41237
41461
|
const safeMetrics = Array.isArray(metrics) ? metrics : [];
|
|
41238
41462
|
const displayName = typeof name === "string" ? name : String(name || "");
|
|
41239
|
-
return /* @__PURE__ */ (0,
|
|
41463
|
+
return /* @__PURE__ */ (0, import_jsx_runtime157.jsxs)(
|
|
41240
41464
|
Card,
|
|
41241
41465
|
{
|
|
41242
41466
|
className: cn(
|
|
@@ -41244,43 +41468,43 @@ var CreatorGridCard = ({
|
|
|
41244
41468
|
className
|
|
41245
41469
|
),
|
|
41246
41470
|
children: [
|
|
41247
|
-
/* @__PURE__ */ (0,
|
|
41248
|
-
bannerSrc ? /* @__PURE__ */ (0,
|
|
41471
|
+
/* @__PURE__ */ (0, import_jsx_runtime157.jsxs)("div", { className: "relative h-32 w-full overflow-hidden", children: [
|
|
41472
|
+
bannerSrc ? /* @__PURE__ */ (0, import_jsx_runtime157.jsx)(
|
|
41249
41473
|
"img",
|
|
41250
41474
|
{
|
|
41251
41475
|
src: bannerSrc,
|
|
41252
41476
|
alt: displayName,
|
|
41253
41477
|
className: "h-full w-full object-cover transition-transform duration-500 group-hover:scale-110"
|
|
41254
41478
|
}
|
|
41255
|
-
) : /* @__PURE__ */ (0,
|
|
41256
|
-
/* @__PURE__ */ (0,
|
|
41479
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime157.jsx)("div", { className: "h-full w-full bg-gradient-to-br from-purple-500 to-indigo-600" }),
|
|
41480
|
+
/* @__PURE__ */ (0, import_jsx_runtime157.jsx)("div", { className: "absolute inset-x-0 bottom-0 h-1/2 bg-gradient-to-t from-black/20 to-transparent" })
|
|
41257
41481
|
] }),
|
|
41258
|
-
/* @__PURE__ */ (0,
|
|
41259
|
-
/* @__PURE__ */ (0,
|
|
41260
|
-
/* @__PURE__ */ (0,
|
|
41261
|
-
/* @__PURE__ */ (0,
|
|
41482
|
+
/* @__PURE__ */ (0, import_jsx_runtime157.jsxs)(CardContent, { className: "relative pt-0 px-5 pb-6", children: [
|
|
41483
|
+
/* @__PURE__ */ (0, import_jsx_runtime157.jsx)("div", { className: "absolute -top-10 left-5", children: /* @__PURE__ */ (0, import_jsx_runtime157.jsxs)(Avatar, { className: "h-20 w-20 border-4 border-[var(--card-background)] shadow-lg ring-2 ring-purple-100/20", children: [
|
|
41484
|
+
/* @__PURE__ */ (0, import_jsx_runtime157.jsx)(AvatarImage, { src: avatarSrc, alt: displayName }),
|
|
41485
|
+
/* @__PURE__ */ (0, import_jsx_runtime157.jsx)(AvatarFallback, { className: "bg-purple-500/10 text-purple-500 font-bold text-xl", children: displayName.charAt(0) || "?" })
|
|
41262
41486
|
] }) }),
|
|
41263
|
-
/* @__PURE__ */ (0,
|
|
41264
|
-
/* @__PURE__ */ (0,
|
|
41265
|
-
/* @__PURE__ */ (0,
|
|
41487
|
+
/* @__PURE__ */ (0, import_jsx_runtime157.jsxs)("div", { className: "mt-12 flex flex-col gap-1", children: [
|
|
41488
|
+
/* @__PURE__ */ (0, import_jsx_runtime157.jsx)("h3", { className: "text-xl font-bold text-[var(--foreground)] truncate", children: displayName }),
|
|
41489
|
+
/* @__PURE__ */ (0, import_jsx_runtime157.jsxs)("p", { className: "text-sm text-[var(--foreground)]/60 font-medium", children: [
|
|
41266
41490
|
"@",
|
|
41267
41491
|
handle
|
|
41268
41492
|
] })
|
|
41269
41493
|
] }),
|
|
41270
|
-
/* @__PURE__ */ (0,
|
|
41494
|
+
/* @__PURE__ */ (0, import_jsx_runtime157.jsx)("div", { className: "mt-4 flex gap-2", children: safePlatforms.map((p, i) => {
|
|
41271
41495
|
const Icon3 = getIcon(p);
|
|
41272
|
-
return Icon3 ? /* @__PURE__ */ (0,
|
|
41496
|
+
return Icon3 ? /* @__PURE__ */ (0, import_jsx_runtime157.jsx)(
|
|
41273
41497
|
"div",
|
|
41274
41498
|
{
|
|
41275
41499
|
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",
|
|
41276
|
-
children: /* @__PURE__ */ (0,
|
|
41500
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime157.jsx)(Icon3, { className: "h-4 w-4" })
|
|
41277
41501
|
},
|
|
41278
41502
|
typeof p === "string" ? p : i
|
|
41279
41503
|
) : null;
|
|
41280
41504
|
}) }),
|
|
41281
|
-
/* @__PURE__ */ (0,
|
|
41282
|
-
/* @__PURE__ */ (0,
|
|
41283
|
-
/* @__PURE__ */ (0,
|
|
41505
|
+
/* @__PURE__ */ (0, import_jsx_runtime157.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_runtime157.jsxs)("div", { className: "flex flex-col", children: [
|
|
41506
|
+
/* @__PURE__ */ (0, import_jsx_runtime157.jsx)("span", { className: "text-[10px] font-bold uppercase tracking-wider text-[var(--foreground)]/40", children: m.label }),
|
|
41507
|
+
/* @__PURE__ */ (0, import_jsx_runtime157.jsx)("span", { className: "text-sm font-bold text-[var(--primary-color)]", children: m.value })
|
|
41284
41508
|
] }, i)) })
|
|
41285
41509
|
] })
|
|
41286
41510
|
]
|
|
@@ -41289,15 +41513,15 @@ var CreatorGridCard = ({
|
|
|
41289
41513
|
};
|
|
41290
41514
|
|
|
41291
41515
|
// src/molecules/creator-discovery/BrandAffinityGroup/BrandAffinityGroup.tsx
|
|
41292
|
-
var
|
|
41516
|
+
var import_jsx_runtime158 = require("react/jsx-runtime");
|
|
41293
41517
|
var BrandAffinityGroup = ({
|
|
41294
41518
|
brands,
|
|
41295
41519
|
className
|
|
41296
41520
|
}) => {
|
|
41297
|
-
return /* @__PURE__ */ (0,
|
|
41298
|
-
/* @__PURE__ */ (0,
|
|
41299
|
-
/* @__PURE__ */ (0,
|
|
41300
|
-
/* @__PURE__ */ (0,
|
|
41521
|
+
return /* @__PURE__ */ (0, import_jsx_runtime158.jsxs)("div", { className: cn("flex flex-col gap-3", className), children: [
|
|
41522
|
+
/* @__PURE__ */ (0, import_jsx_runtime158.jsx)("h5", { className: "text-[10px] font-bold uppercase tracking-widest text-muted-foreground", children: "Recent Collaborations" }),
|
|
41523
|
+
/* @__PURE__ */ (0, import_jsx_runtime158.jsx)("div", { className: "flex flex-wrap gap-4 items-center", children: brands.map((brand, i) => /* @__PURE__ */ (0, import_jsx_runtime158.jsxs)("div", { className: "group relative", children: [
|
|
41524
|
+
/* @__PURE__ */ (0, import_jsx_runtime158.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_runtime158.jsx)(
|
|
41301
41525
|
"img",
|
|
41302
41526
|
{
|
|
41303
41527
|
src: brand.logoSrc,
|
|
@@ -41305,18 +41529,18 @@ var BrandAffinityGroup = ({
|
|
|
41305
41529
|
className: "max-h-full max-w-full object-contain"
|
|
41306
41530
|
}
|
|
41307
41531
|
) }),
|
|
41308
|
-
/* @__PURE__ */ (0,
|
|
41532
|
+
/* @__PURE__ */ (0, import_jsx_runtime158.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 })
|
|
41309
41533
|
] }, i)) })
|
|
41310
41534
|
] });
|
|
41311
41535
|
};
|
|
41312
41536
|
|
|
41313
41537
|
// src/molecules/creator-discovery/ContentPreviewGallery/ContentPreviewGallery.tsx
|
|
41314
|
-
var
|
|
41538
|
+
var import_jsx_runtime159 = require("react/jsx-runtime");
|
|
41315
41539
|
var ContentPreviewGallery = ({
|
|
41316
41540
|
items,
|
|
41317
41541
|
className
|
|
41318
41542
|
}) => {
|
|
41319
|
-
return /* @__PURE__ */ (0,
|
|
41543
|
+
return /* @__PURE__ */ (0, import_jsx_runtime159.jsx)("div", { className: cn("grid grid-cols-2 gap-2", className), children: items.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime159.jsxs)(
|
|
41320
41544
|
"a",
|
|
41321
41545
|
{
|
|
41322
41546
|
href: item.url || "#",
|
|
@@ -41324,7 +41548,7 @@ var ContentPreviewGallery = ({
|
|
|
41324
41548
|
rel: "noopener noreferrer",
|
|
41325
41549
|
className: "group relative aspect-square overflow-hidden rounded-2xl bg-gray-100",
|
|
41326
41550
|
children: [
|
|
41327
|
-
/* @__PURE__ */ (0,
|
|
41551
|
+
/* @__PURE__ */ (0, import_jsx_runtime159.jsx)(
|
|
41328
41552
|
"img",
|
|
41329
41553
|
{
|
|
41330
41554
|
src: item.thumbnail,
|
|
@@ -41332,8 +41556,8 @@ var ContentPreviewGallery = ({
|
|
|
41332
41556
|
className: "h-full w-full object-cover transition-transform duration-500 group-hover:scale-110"
|
|
41333
41557
|
}
|
|
41334
41558
|
),
|
|
41335
|
-
item.type === "video" && /* @__PURE__ */ (0,
|
|
41336
|
-
/* @__PURE__ */ (0,
|
|
41559
|
+
item.type === "video" && /* @__PURE__ */ (0, import_jsx_runtime159.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_runtime159.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_runtime159.jsx)(Play, { className: "h-6 w-6 fill-white" }) }) }),
|
|
41560
|
+
/* @__PURE__ */ (0, import_jsx_runtime159.jsx)("div", { className: "absolute inset-0 ring-1 ring-inset ring-black/10 rounded-2xl" })
|
|
41337
41561
|
]
|
|
41338
41562
|
},
|
|
41339
41563
|
i
|
|
@@ -41341,10 +41565,10 @@ var ContentPreviewGallery = ({
|
|
|
41341
41565
|
};
|
|
41342
41566
|
|
|
41343
41567
|
// src/molecules/creator-discovery/AudienceDemographicsCard/AudienceDemographicsCard.tsx
|
|
41344
|
-
var
|
|
41568
|
+
var import_jsx_runtime160 = require("react/jsx-runtime");
|
|
41345
41569
|
var AudienceDemographicsCard = ({ title, data, config, demographicType, className }) => {
|
|
41346
41570
|
const chartType = demographicType === "location" ? "bar" : "pie";
|
|
41347
|
-
return /* @__PURE__ */ (0,
|
|
41571
|
+
return /* @__PURE__ */ (0, import_jsx_runtime160.jsxs)(
|
|
41348
41572
|
Card,
|
|
41349
41573
|
{
|
|
41350
41574
|
className: cn(
|
|
@@ -41352,8 +41576,8 @@ var AudienceDemographicsCard = ({ title, data, config, demographicType, classNam
|
|
|
41352
41576
|
className
|
|
41353
41577
|
),
|
|
41354
41578
|
children: [
|
|
41355
|
-
/* @__PURE__ */ (0,
|
|
41356
|
-
/* @__PURE__ */ (0,
|
|
41579
|
+
/* @__PURE__ */ (0, import_jsx_runtime160.jsx)(CardHeader, { className: "pb-2", children: /* @__PURE__ */ (0, import_jsx_runtime160.jsx)(CardTitle, { className: "text-lg font-bold text-gray-900", children: title }) }),
|
|
41580
|
+
/* @__PURE__ */ (0, import_jsx_runtime160.jsx)(CardContent, { children: /* @__PURE__ */ (0, import_jsx_runtime160.jsx)("div", { className: "h-[250px] w-full", children: /* @__PURE__ */ (0, import_jsx_runtime160.jsx)(
|
|
41357
41581
|
ChartAtom,
|
|
41358
41582
|
{
|
|
41359
41583
|
type: "chart",
|
|
@@ -41372,7 +41596,7 @@ var AudienceDemographicsCard = ({ title, data, config, demographicType, classNam
|
|
|
41372
41596
|
};
|
|
41373
41597
|
|
|
41374
41598
|
// src/molecules/creator-discovery/GrowthChartCard/GrowthChartCard.tsx
|
|
41375
|
-
var
|
|
41599
|
+
var import_jsx_runtime161 = require("react/jsx-runtime");
|
|
41376
41600
|
var GrowthChartCard = ({
|
|
41377
41601
|
title,
|
|
41378
41602
|
data,
|
|
@@ -41381,7 +41605,7 @@ var GrowthChartCard = ({
|
|
|
41381
41605
|
period,
|
|
41382
41606
|
className
|
|
41383
41607
|
}) => {
|
|
41384
|
-
return /* @__PURE__ */ (0,
|
|
41608
|
+
return /* @__PURE__ */ (0, import_jsx_runtime161.jsxs)(
|
|
41385
41609
|
Card,
|
|
41386
41610
|
{
|
|
41387
41611
|
className: cn(
|
|
@@ -41389,15 +41613,15 @@ var GrowthChartCard = ({
|
|
|
41389
41613
|
className
|
|
41390
41614
|
),
|
|
41391
41615
|
children: [
|
|
41392
|
-
/* @__PURE__ */ (0,
|
|
41393
|
-
/* @__PURE__ */ (0,
|
|
41394
|
-
/* @__PURE__ */ (0,
|
|
41395
|
-
/* @__PURE__ */ (0,
|
|
41616
|
+
/* @__PURE__ */ (0, import_jsx_runtime161.jsxs)(CardHeader, { className: "flex flex-row items-center justify-between pb-2 space-y-0", children: [
|
|
41617
|
+
/* @__PURE__ */ (0, import_jsx_runtime161.jsxs)("div", { children: [
|
|
41618
|
+
/* @__PURE__ */ (0, import_jsx_runtime161.jsx)(CardTitle, { className: "text-lg font-bold text-gray-900", children: title }),
|
|
41619
|
+
/* @__PURE__ */ (0, import_jsx_runtime161.jsx)("p", { className: "text-xs text-muted-foreground", children: period })
|
|
41396
41620
|
] }),
|
|
41397
|
-
/* @__PURE__ */ (0,
|
|
41621
|
+
/* @__PURE__ */ (0, import_jsx_runtime161.jsx)("div", { className: "bg-green-50 p-2 rounded-xl", children: /* @__PURE__ */ (0, import_jsx_runtime161.jsx)(TrendingUp, { className: "w-4 h-4 text-green-600" }) })
|
|
41398
41622
|
] }),
|
|
41399
|
-
/* @__PURE__ */ (0,
|
|
41400
|
-
/* @__PURE__ */ (0,
|
|
41623
|
+
/* @__PURE__ */ (0, import_jsx_runtime161.jsxs)(CardContent, { children: [
|
|
41624
|
+
/* @__PURE__ */ (0, import_jsx_runtime161.jsx)("div", { className: "h-[200px] w-full mt-4", children: /* @__PURE__ */ (0, import_jsx_runtime161.jsx)(
|
|
41401
41625
|
ChartAtom,
|
|
41402
41626
|
{
|
|
41403
41627
|
type: "chart",
|
|
@@ -41410,9 +41634,9 @@ var GrowthChartCard = ({
|
|
|
41410
41634
|
showLegend: false
|
|
41411
41635
|
}
|
|
41412
41636
|
) }),
|
|
41413
|
-
/* @__PURE__ */ (0,
|
|
41414
|
-
/* @__PURE__ */ (0,
|
|
41415
|
-
/* @__PURE__ */ (0,
|
|
41637
|
+
/* @__PURE__ */ (0, import_jsx_runtime161.jsxs)("div", { className: "mt-4 flex items-center justify-between", children: [
|
|
41638
|
+
/* @__PURE__ */ (0, import_jsx_runtime161.jsx)("span", { className: "text-sm font-medium text-gray-500", children: metric }),
|
|
41639
|
+
/* @__PURE__ */ (0, import_jsx_runtime161.jsx)("span", { className: "text-sm font-bold text-purple-600", children: "+12.5%" })
|
|
41416
41640
|
] })
|
|
41417
41641
|
] })
|
|
41418
41642
|
]
|
|
@@ -41421,24 +41645,24 @@ var GrowthChartCard = ({
|
|
|
41421
41645
|
};
|
|
41422
41646
|
|
|
41423
41647
|
// src/molecules/creator-discovery/TopPostsGrid/TopPostsGrid.tsx
|
|
41424
|
-
var
|
|
41648
|
+
var import_jsx_runtime162 = require("react/jsx-runtime");
|
|
41425
41649
|
var TopPostsGrid = ({
|
|
41426
41650
|
posts,
|
|
41427
41651
|
className
|
|
41428
41652
|
}) => {
|
|
41429
|
-
return /* @__PURE__ */ (0,
|
|
41653
|
+
return /* @__PURE__ */ (0, import_jsx_runtime162.jsx)(
|
|
41430
41654
|
"div",
|
|
41431
41655
|
{
|
|
41432
41656
|
className: cn(
|
|
41433
41657
|
"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",
|
|
41434
41658
|
className
|
|
41435
41659
|
),
|
|
41436
|
-
children: posts.map((post, i) => /* @__PURE__ */ (0,
|
|
41660
|
+
children: posts.map((post, i) => /* @__PURE__ */ (0, import_jsx_runtime162.jsxs)(
|
|
41437
41661
|
"div",
|
|
41438
41662
|
{
|
|
41439
41663
|
className: "group relative aspect-square overflow-hidden rounded-2xl bg-gray-100 border border-purple-50",
|
|
41440
41664
|
children: [
|
|
41441
|
-
/* @__PURE__ */ (0,
|
|
41665
|
+
/* @__PURE__ */ (0, import_jsx_runtime162.jsx)(
|
|
41442
41666
|
"img",
|
|
41443
41667
|
{
|
|
41444
41668
|
src: post.thumbnail,
|
|
@@ -41446,25 +41670,25 @@ var TopPostsGrid = ({
|
|
|
41446
41670
|
className: "h-full w-full object-cover transition-transform duration-500 group-hover:scale-110"
|
|
41447
41671
|
}
|
|
41448
41672
|
),
|
|
41449
|
-
/* @__PURE__ */ (0,
|
|
41450
|
-
/* @__PURE__ */ (0,
|
|
41451
|
-
/* @__PURE__ */ (0,
|
|
41452
|
-
/* @__PURE__ */ (0,
|
|
41673
|
+
/* @__PURE__ */ (0, import_jsx_runtime162.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: [
|
|
41674
|
+
/* @__PURE__ */ (0, import_jsx_runtime162.jsxs)("div", { className: "flex items-center gap-4 text-white text-xs font-bold", children: [
|
|
41675
|
+
/* @__PURE__ */ (0, import_jsx_runtime162.jsxs)("span", { className: "flex items-center gap-1", children: [
|
|
41676
|
+
/* @__PURE__ */ (0, import_jsx_runtime162.jsx)(Heart, { className: "w-3 h-3 fill-white" }),
|
|
41453
41677
|
" ",
|
|
41454
41678
|
post.likes
|
|
41455
41679
|
] }),
|
|
41456
|
-
/* @__PURE__ */ (0,
|
|
41457
|
-
/* @__PURE__ */ (0,
|
|
41680
|
+
/* @__PURE__ */ (0, import_jsx_runtime162.jsxs)("span", { className: "flex items-center gap-1", children: [
|
|
41681
|
+
/* @__PURE__ */ (0, import_jsx_runtime162.jsx)(MessageCircle, { className: "w-3 h-3 fill-white" }),
|
|
41458
41682
|
" ",
|
|
41459
41683
|
post.comments
|
|
41460
41684
|
] }),
|
|
41461
|
-
/* @__PURE__ */ (0,
|
|
41462
|
-
/* @__PURE__ */ (0,
|
|
41685
|
+
/* @__PURE__ */ (0, import_jsx_runtime162.jsxs)("span", { className: "flex items-center gap-1", children: [
|
|
41686
|
+
/* @__PURE__ */ (0, import_jsx_runtime162.jsx)(ChartColumn, { className: "w-3 h-3" }),
|
|
41463
41687
|
" ",
|
|
41464
41688
|
post.engagement
|
|
41465
41689
|
] })
|
|
41466
41690
|
] }),
|
|
41467
|
-
/* @__PURE__ */ (0,
|
|
41691
|
+
/* @__PURE__ */ (0, import_jsx_runtime162.jsx)("span", { className: "text-[10px] text-gray-300 mt-2", children: post.date })
|
|
41468
41692
|
] })
|
|
41469
41693
|
]
|
|
41470
41694
|
},
|
|
@@ -41475,7 +41699,7 @@ var TopPostsGrid = ({
|
|
|
41475
41699
|
};
|
|
41476
41700
|
|
|
41477
41701
|
// src/molecules/creator-discovery/CreatorActionHeader/CreatorActionHeader.tsx
|
|
41478
|
-
var
|
|
41702
|
+
var import_jsx_runtime163 = require("react/jsx-runtime");
|
|
41479
41703
|
var CreatorActionHeader = ({
|
|
41480
41704
|
bannerSrc,
|
|
41481
41705
|
avatarSrc,
|
|
@@ -41484,7 +41708,7 @@ var CreatorActionHeader = ({
|
|
|
41484
41708
|
actions,
|
|
41485
41709
|
className
|
|
41486
41710
|
}) => {
|
|
41487
|
-
return /* @__PURE__ */ (0,
|
|
41711
|
+
return /* @__PURE__ */ (0, import_jsx_runtime163.jsxs)(
|
|
41488
41712
|
"div",
|
|
41489
41713
|
{
|
|
41490
41714
|
className: cn(
|
|
@@ -41492,8 +41716,8 @@ var CreatorActionHeader = ({
|
|
|
41492
41716
|
className
|
|
41493
41717
|
),
|
|
41494
41718
|
children: [
|
|
41495
|
-
/* @__PURE__ */ (0,
|
|
41496
|
-
bannerSrc && /* @__PURE__ */ (0,
|
|
41719
|
+
/* @__PURE__ */ (0, import_jsx_runtime163.jsxs)("div", { className: "h-48 w-full bg-gradient-to-r from-purple-100 to-indigo-100 relative", children: [
|
|
41720
|
+
bannerSrc && /* @__PURE__ */ (0, import_jsx_runtime163.jsx)(
|
|
41497
41721
|
"img",
|
|
41498
41722
|
{
|
|
41499
41723
|
src: bannerSrc,
|
|
@@ -41501,23 +41725,23 @@ var CreatorActionHeader = ({
|
|
|
41501
41725
|
alt: "Banner"
|
|
41502
41726
|
}
|
|
41503
41727
|
),
|
|
41504
|
-
/* @__PURE__ */ (0,
|
|
41728
|
+
/* @__PURE__ */ (0, import_jsx_runtime163.jsx)("div", { className: "absolute inset-0 bg-black/5" })
|
|
41505
41729
|
] }),
|
|
41506
|
-
/* @__PURE__ */ (0,
|
|
41507
|
-
/* @__PURE__ */ (0,
|
|
41508
|
-
/* @__PURE__ */ (0,
|
|
41509
|
-
/* @__PURE__ */ (0,
|
|
41510
|
-
/* @__PURE__ */ (0,
|
|
41730
|
+
/* @__PURE__ */ (0, import_jsx_runtime163.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: [
|
|
41731
|
+
/* @__PURE__ */ (0, import_jsx_runtime163.jsxs)("div", { className: "flex flex-col md:flex-row items-start md:items-end gap-6", children: [
|
|
41732
|
+
/* @__PURE__ */ (0, import_jsx_runtime163.jsx)("div", { className: "p-2 bg-white rounded-[32px] shadow-lg", children: /* @__PURE__ */ (0, import_jsx_runtime163.jsxs)(Avatar, { className: "h-32 w-32 rounded-[24px] border-4 border-white", children: [
|
|
41733
|
+
/* @__PURE__ */ (0, import_jsx_runtime163.jsx)(AvatarImage, { src: avatarSrc, className: "rounded-[24px]" }),
|
|
41734
|
+
/* @__PURE__ */ (0, import_jsx_runtime163.jsx)(AvatarFallback, { className: "rounded-[24px] bg-purple-50 text-purple-600 text-3xl font-bold", children: name.charAt(0) })
|
|
41511
41735
|
] }) }),
|
|
41512
|
-
/* @__PURE__ */ (0,
|
|
41513
|
-
/* @__PURE__ */ (0,
|
|
41514
|
-
/* @__PURE__ */ (0,
|
|
41736
|
+
/* @__PURE__ */ (0, import_jsx_runtime163.jsxs)("div", { className: "mb-2", children: [
|
|
41737
|
+
/* @__PURE__ */ (0, import_jsx_runtime163.jsx)("h1", { className: "text-3xl font-bold text-gray-900 tracking-tight", children: name }),
|
|
41738
|
+
/* @__PURE__ */ (0, import_jsx_runtime163.jsxs)("p", { className: "text-purple-600 font-medium tracking-wide", children: [
|
|
41515
41739
|
"@",
|
|
41516
41740
|
handle
|
|
41517
41741
|
] })
|
|
41518
41742
|
] })
|
|
41519
41743
|
] }),
|
|
41520
|
-
/* @__PURE__ */ (0,
|
|
41744
|
+
/* @__PURE__ */ (0, import_jsx_runtime163.jsx)("div", { className: "flex items-center gap-3 mb-2", children: actions.map((action, i) => /* @__PURE__ */ (0, import_jsx_runtime163.jsx)(
|
|
41521
41745
|
Button,
|
|
41522
41746
|
{
|
|
41523
41747
|
variant: action.variant || "default",
|
|
@@ -41536,9 +41760,9 @@ var CreatorActionHeader = ({
|
|
|
41536
41760
|
};
|
|
41537
41761
|
|
|
41538
41762
|
// src/molecules/creator-discovery/CreatorSearchBox/CreatorSearch.tsx
|
|
41539
|
-
var
|
|
41540
|
-
var
|
|
41541
|
-
var CreatorSearch =
|
|
41763
|
+
var import_react82 = __toESM(require("react"), 1);
|
|
41764
|
+
var import_jsx_runtime164 = require("react/jsx-runtime");
|
|
41765
|
+
var CreatorSearch = import_react82.default.memo(
|
|
41542
41766
|
({
|
|
41543
41767
|
selectionStatus,
|
|
41544
41768
|
isLatestMessage = true,
|
|
@@ -41547,7 +41771,7 @@ var CreatorSearch = import_react81.default.memo(
|
|
|
41547
41771
|
data,
|
|
41548
41772
|
...formCardProps
|
|
41549
41773
|
}) => {
|
|
41550
|
-
const fields = (0,
|
|
41774
|
+
const fields = (0, import_react82.useMemo)(() => {
|
|
41551
41775
|
const baseFields = providedFields || generateFieldsFromData(data);
|
|
41552
41776
|
return baseFields.map((field) => {
|
|
41553
41777
|
if (field.key === "platforms") {
|
|
@@ -41555,7 +41779,7 @@ var CreatorSearch = import_react81.default.memo(
|
|
|
41555
41779
|
...field,
|
|
41556
41780
|
renderDisplay: (val) => {
|
|
41557
41781
|
const platforms = Array.isArray(val) ? val : [val];
|
|
41558
|
-
return /* @__PURE__ */ (0,
|
|
41782
|
+
return /* @__PURE__ */ (0, import_jsx_runtime164.jsx)("div", { className: "flex flex-wrap gap-2", children: platforms.map((p) => /* @__PURE__ */ (0, import_jsx_runtime164.jsx)(
|
|
41559
41783
|
BadgeAtom,
|
|
41560
41784
|
{
|
|
41561
41785
|
id: `platform-${p}`,
|
|
@@ -41572,13 +41796,13 @@ var CreatorSearch = import_react81.default.memo(
|
|
|
41572
41796
|
if (field.key === "geography") {
|
|
41573
41797
|
return {
|
|
41574
41798
|
...field,
|
|
41575
|
-
renderDisplay: (val) => /* @__PURE__ */ (0,
|
|
41799
|
+
renderDisplay: (val) => /* @__PURE__ */ (0, import_jsx_runtime164.jsx)(CountrySelectDisplay, { value: val })
|
|
41576
41800
|
};
|
|
41577
41801
|
}
|
|
41578
41802
|
if (field.key === "keywordBundles") {
|
|
41579
41803
|
return {
|
|
41580
41804
|
...field,
|
|
41581
|
-
renderDisplay: (val) => /* @__PURE__ */ (0,
|
|
41805
|
+
renderDisplay: (val) => /* @__PURE__ */ (0, import_jsx_runtime164.jsx)(KeywordBundlesDisplay, { value: val })
|
|
41582
41806
|
};
|
|
41583
41807
|
}
|
|
41584
41808
|
if (field.key === "followerRange") {
|
|
@@ -41586,9 +41810,9 @@ var CreatorSearch = import_react81.default.memo(
|
|
|
41586
41810
|
...field,
|
|
41587
41811
|
renderDisplay: (val) => {
|
|
41588
41812
|
if (typeof val === "object" && val !== null) {
|
|
41589
|
-
return /* @__PURE__ */ (0,
|
|
41813
|
+
return /* @__PURE__ */ (0, import_jsx_runtime164.jsx)("span", { className: "text-white font-medium", children: `${val.min?.toLocaleString()} - ${val.max?.toLocaleString()} followers` });
|
|
41590
41814
|
}
|
|
41591
|
-
return /* @__PURE__ */ (0,
|
|
41815
|
+
return /* @__PURE__ */ (0, import_jsx_runtime164.jsxs)("span", { className: "text-white font-medium", children: [
|
|
41592
41816
|
val,
|
|
41593
41817
|
" followers"
|
|
41594
41818
|
] });
|
|
@@ -41598,7 +41822,7 @@ var CreatorSearch = import_react81.default.memo(
|
|
|
41598
41822
|
if (field.key === "initialCreators") {
|
|
41599
41823
|
return {
|
|
41600
41824
|
...field,
|
|
41601
|
-
renderDisplay: (val) => /* @__PURE__ */ (0,
|
|
41825
|
+
renderDisplay: (val) => /* @__PURE__ */ (0, import_jsx_runtime164.jsxs)("span", { className: "text-white font-medium", children: [
|
|
41602
41826
|
val,
|
|
41603
41827
|
" creators"
|
|
41604
41828
|
] })
|
|
@@ -41607,7 +41831,7 @@ var CreatorSearch = import_react81.default.memo(
|
|
|
41607
41831
|
return field;
|
|
41608
41832
|
});
|
|
41609
41833
|
}, [providedFields, data]);
|
|
41610
|
-
return /* @__PURE__ */ (0,
|
|
41834
|
+
return /* @__PURE__ */ (0, import_jsx_runtime164.jsx)("div", { className: "flex flex-col gap-2", children: /* @__PURE__ */ (0, import_jsx_runtime164.jsx)(
|
|
41611
41835
|
FormCard,
|
|
41612
41836
|
{
|
|
41613
41837
|
...formCardProps,
|
|
@@ -41616,9 +41840,9 @@ var CreatorSearch = import_react81.default.memo(
|
|
|
41616
41840
|
fields,
|
|
41617
41841
|
showTimeline: true,
|
|
41618
41842
|
className: cn("font-noto", className),
|
|
41619
|
-
footer: !isLatestMessage && selectionStatus ? /* @__PURE__ */ (0,
|
|
41620
|
-
/* @__PURE__ */ (0,
|
|
41621
|
-
/* @__PURE__ */ (0,
|
|
41843
|
+
footer: !isLatestMessage && selectionStatus ? /* @__PURE__ */ (0, import_jsx_runtime164.jsxs)("div", { className: "flex justify-end items-center gap-1.5 text-green-600 text-[10px] font-semibold py-4 pr-6", children: [
|
|
41844
|
+
/* @__PURE__ */ (0, import_jsx_runtime164.jsx)(CircleCheck, { className: "h-3.5 w-3.5" }),
|
|
41845
|
+
/* @__PURE__ */ (0, import_jsx_runtime164.jsx)("span", { children: selectionStatus === "agent" ? "Suggested by Agent" : "Selected by you" })
|
|
41622
41846
|
] }) : formCardProps.footer
|
|
41623
41847
|
}
|
|
41624
41848
|
) });
|
|
@@ -41627,10 +41851,10 @@ var CreatorSearch = import_react81.default.memo(
|
|
|
41627
41851
|
CreatorSearch.displayName = "CreatorSearch";
|
|
41628
41852
|
|
|
41629
41853
|
// src/molecules/creator-discovery/CampaignConceptCard/CampaignConceptCard.tsx
|
|
41630
|
-
var
|
|
41854
|
+
var import_react83 = __toESM(require("react"), 1);
|
|
41631
41855
|
var import_framer_motion = require("framer-motion");
|
|
41632
|
-
var
|
|
41633
|
-
var CampaignConceptCard =
|
|
41856
|
+
var import_jsx_runtime165 = require("react/jsx-runtime");
|
|
41857
|
+
var CampaignConceptCard = import_react83.default.memo(
|
|
41634
41858
|
({
|
|
41635
41859
|
index,
|
|
41636
41860
|
isRecommended,
|
|
@@ -41646,7 +41870,7 @@ var CampaignConceptCard = import_react82.default.memo(
|
|
|
41646
41870
|
onAction,
|
|
41647
41871
|
...formCardProps
|
|
41648
41872
|
}) => {
|
|
41649
|
-
const [internalIsOpen, setInternalIsOpen] = (0,
|
|
41873
|
+
const [internalIsOpen, setInternalIsOpen] = (0, import_react83.useState)(false);
|
|
41650
41874
|
const isOpen = controlledIsOpen !== void 0 ? controlledIsOpen : internalIsOpen;
|
|
41651
41875
|
const handleToggle = () => {
|
|
41652
41876
|
if (onToggle) {
|
|
@@ -41665,7 +41889,7 @@ var CampaignConceptCard = import_react82.default.memo(
|
|
|
41665
41889
|
});
|
|
41666
41890
|
};
|
|
41667
41891
|
const effectiveIsLatest = isLatestMessage && !hasUserResponded;
|
|
41668
|
-
const fields = (0,
|
|
41892
|
+
const fields = (0, import_react83.useMemo)(() => {
|
|
41669
41893
|
const baseFields = providedFields || generateFieldsFromData(data);
|
|
41670
41894
|
const FIELD_ORDER = [
|
|
41671
41895
|
"description",
|
|
@@ -41702,39 +41926,39 @@ var CampaignConceptCard = import_react82.default.memo(
|
|
|
41702
41926
|
label: "Budget Allocation",
|
|
41703
41927
|
renderDisplay: (val) => {
|
|
41704
41928
|
if (!val)
|
|
41705
|
-
return /* @__PURE__ */ (0,
|
|
41929
|
+
return /* @__PURE__ */ (0, import_jsx_runtime165.jsx)("span", { className: "text-muted-foreground text-sm", children: "-" });
|
|
41706
41930
|
if (Array.isArray(val)) {
|
|
41707
|
-
return /* @__PURE__ */ (0,
|
|
41931
|
+
return /* @__PURE__ */ (0, import_jsx_runtime165.jsx)("div", { className: "space-y-2", children: val.map((item, idx) => {
|
|
41708
41932
|
const label = item?.label ?? item?.key ?? `Item ${idx + 1}`;
|
|
41709
41933
|
const value = item?.value ?? item;
|
|
41710
|
-
return /* @__PURE__ */ (0,
|
|
41711
|
-
/* @__PURE__ */ (0,
|
|
41934
|
+
return /* @__PURE__ */ (0, import_jsx_runtime165.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
41935
|
+
/* @__PURE__ */ (0, import_jsx_runtime165.jsxs)("span", { className: "text-muted-foreground font-medium", children: [
|
|
41712
41936
|
idx + 1,
|
|
41713
41937
|
"."
|
|
41714
41938
|
] }),
|
|
41715
|
-
/* @__PURE__ */ (0,
|
|
41716
|
-
/* @__PURE__ */ (0,
|
|
41717
|
-
/* @__PURE__ */ (0,
|
|
41939
|
+
/* @__PURE__ */ (0, import_jsx_runtime165.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) }),
|
|
41940
|
+
/* @__PURE__ */ (0, import_jsx_runtime165.jsx)("span", { className: "text-cardText", children: "=" }),
|
|
41941
|
+
/* @__PURE__ */ (0, import_jsx_runtime165.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) })
|
|
41718
41942
|
] }, idx);
|
|
41719
41943
|
}) });
|
|
41720
41944
|
}
|
|
41721
41945
|
if (typeof val === "object") {
|
|
41722
41946
|
const entries = Object.entries(val);
|
|
41723
41947
|
if (entries.length === 0)
|
|
41724
|
-
return /* @__PURE__ */ (0,
|
|
41725
|
-
return /* @__PURE__ */ (0,
|
|
41726
|
-
/* @__PURE__ */ (0,
|
|
41948
|
+
return /* @__PURE__ */ (0, import_jsx_runtime165.jsx)("span", { className: "text-muted-foreground text-sm", children: "-" });
|
|
41949
|
+
return /* @__PURE__ */ (0, import_jsx_runtime165.jsx)("div", { className: "space-y-2", children: entries.map(([k, v], idx) => /* @__PURE__ */ (0, import_jsx_runtime165.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
41950
|
+
/* @__PURE__ */ (0, import_jsx_runtime165.jsxs)("span", { className: "text-muted-foreground font-medium", children: [
|
|
41727
41951
|
idx + 1,
|
|
41728
41952
|
"."
|
|
41729
41953
|
] }),
|
|
41730
|
-
/* @__PURE__ */ (0,
|
|
41731
|
-
/* @__PURE__ */ (0,
|
|
41732
|
-
/* @__PURE__ */ (0,
|
|
41954
|
+
/* @__PURE__ */ (0, import_jsx_runtime165.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) }),
|
|
41955
|
+
/* @__PURE__ */ (0, import_jsx_runtime165.jsx)("span", { className: "text-cardText", children: "=" }),
|
|
41956
|
+
/* @__PURE__ */ (0, import_jsx_runtime165.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) })
|
|
41733
41957
|
] }, k)) });
|
|
41734
41958
|
}
|
|
41735
|
-
return /* @__PURE__ */ (0,
|
|
41959
|
+
return /* @__PURE__ */ (0, import_jsx_runtime165.jsx)("span", { className: "text-muted-foreground text-sm", children: String(val) });
|
|
41736
41960
|
},
|
|
41737
|
-
renderEdit: (v, onChange) => /* @__PURE__ */ (0,
|
|
41961
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ (0, import_jsx_runtime165.jsx)(
|
|
41738
41962
|
Textarea,
|
|
41739
41963
|
{
|
|
41740
41964
|
value: typeof v === "object" ? Object.entries(v || {}).map(([k, val]) => `${k.replace(/_/g, " ")}: ${val}`).join("\n") : String(v || ""),
|
|
@@ -41759,8 +41983,8 @@ var CampaignConceptCard = import_react82.default.memo(
|
|
|
41759
41983
|
return {
|
|
41760
41984
|
...field,
|
|
41761
41985
|
label: "Geography",
|
|
41762
|
-
renderDisplay: (v) => /* @__PURE__ */ (0,
|
|
41763
|
-
renderEdit: (v, onChange) => /* @__PURE__ */ (0,
|
|
41986
|
+
renderDisplay: (v) => /* @__PURE__ */ (0, import_jsx_runtime165.jsx)(CountrySelectDisplay, { value: v }),
|
|
41987
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ (0, import_jsx_runtime165.jsx)(CountrySelectEdit, { value: v, onChange })
|
|
41764
41988
|
};
|
|
41765
41989
|
}
|
|
41766
41990
|
if (field.key === "estimatedCreators" || field.key === "estimated_creators") {
|
|
@@ -41769,11 +41993,11 @@ var CampaignConceptCard = import_react82.default.memo(
|
|
|
41769
41993
|
label: "Estimated Creators",
|
|
41770
41994
|
renderDisplay: (val) => {
|
|
41771
41995
|
if (!val)
|
|
41772
|
-
return /* @__PURE__ */ (0,
|
|
41996
|
+
return /* @__PURE__ */ (0, import_jsx_runtime165.jsx)("span", { className: "text-muted-foreground text-sm", children: "-" });
|
|
41773
41997
|
const displayValue = typeof val === "object" && !Array.isArray(val) ? `${val.min ?? 0}-${val.max ?? 0}` : String(val);
|
|
41774
|
-
return /* @__PURE__ */ (0,
|
|
41998
|
+
return /* @__PURE__ */ (0, import_jsx_runtime165.jsx)("span", { className: "text-cardText text-sm", children: displayValue });
|
|
41775
41999
|
},
|
|
41776
|
-
renderEdit: (v, onChange) => /* @__PURE__ */ (0,
|
|
42000
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ (0, import_jsx_runtime165.jsx)(
|
|
41777
42001
|
Input,
|
|
41778
42002
|
{
|
|
41779
42003
|
value: typeof v === "object" ? `${v.min ?? 0}-${v.max ?? 0}` : String(v || ""),
|
|
@@ -41796,8 +42020,8 @@ var CampaignConceptCard = import_react82.default.memo(
|
|
|
41796
42020
|
return {
|
|
41797
42021
|
...field,
|
|
41798
42022
|
label: field.label || "Primary KPI",
|
|
41799
|
-
renderDisplay: (val) => /* @__PURE__ */ (0,
|
|
41800
|
-
renderEdit: (v, onChange) => /* @__PURE__ */ (0,
|
|
42023
|
+
renderDisplay: (val) => /* @__PURE__ */ (0, import_jsx_runtime165.jsx)("span", { className: "text-cardText text-sm", children: val ? String(val) : "-" }),
|
|
42024
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ (0, import_jsx_runtime165.jsx)(
|
|
41801
42025
|
Input,
|
|
41802
42026
|
{
|
|
41803
42027
|
value: String(v || ""),
|
|
@@ -41814,9 +42038,9 @@ var CampaignConceptCard = import_react82.default.memo(
|
|
|
41814
42038
|
label: field.label || "Secondary KPIs",
|
|
41815
42039
|
renderDisplay: (val) => {
|
|
41816
42040
|
const display = Array.isArray(val) ? val.map(String).join(", ") : val ? String(val) : "-";
|
|
41817
|
-
return /* @__PURE__ */ (0,
|
|
42041
|
+
return /* @__PURE__ */ (0, import_jsx_runtime165.jsx)("span", { className: "text-cardText text-sm", children: display });
|
|
41818
42042
|
},
|
|
41819
|
-
renderEdit: (v, onChange) => /* @__PURE__ */ (0,
|
|
42043
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ (0, import_jsx_runtime165.jsx)(
|
|
41820
42044
|
Textarea,
|
|
41821
42045
|
{
|
|
41822
42046
|
value: Array.isArray(v) ? v.join(", ") : String(v || ""),
|
|
@@ -41833,15 +42057,15 @@ var CampaignConceptCard = import_react82.default.memo(
|
|
|
41833
42057
|
if (field.key === "platforms" || field.key === "target_platforms" || field.key === "targetPlatforms") {
|
|
41834
42058
|
return {
|
|
41835
42059
|
...field,
|
|
41836
|
-
renderDisplay: (v) => /* @__PURE__ */ (0,
|
|
41837
|
-
renderEdit: (v, onChange) => /* @__PURE__ */ (0,
|
|
42060
|
+
renderDisplay: (v) => /* @__PURE__ */ (0, import_jsx_runtime165.jsx)(PlatformSelectDisplay, { value: v }),
|
|
42061
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ (0, import_jsx_runtime165.jsx)(PlatformSelectEdit, { value: v, onChange })
|
|
41838
42062
|
};
|
|
41839
42063
|
}
|
|
41840
42064
|
if (field.key === "description" || field.key === "creator_strategy" || field.key === "creatorStrategy") {
|
|
41841
42065
|
return {
|
|
41842
42066
|
...field,
|
|
41843
42067
|
type: "textarea",
|
|
41844
|
-
renderDisplay: (val) => /* @__PURE__ */ (0,
|
|
42068
|
+
renderDisplay: (val) => /* @__PURE__ */ (0, import_jsx_runtime165.jsx)("span", { className: "text-cardText text-sm leading-relaxed", children: val ? String(val) : "-" })
|
|
41845
42069
|
};
|
|
41846
42070
|
}
|
|
41847
42071
|
return {
|
|
@@ -41849,10 +42073,10 @@ var CampaignConceptCard = import_react82.default.memo(
|
|
|
41849
42073
|
renderDisplay: (val) => {
|
|
41850
42074
|
if (Array.isArray(val)) {
|
|
41851
42075
|
if (val.length === 0)
|
|
41852
|
-
return /* @__PURE__ */ (0,
|
|
41853
|
-
return /* @__PURE__ */ (0,
|
|
42076
|
+
return /* @__PURE__ */ (0, import_jsx_runtime165.jsx)("span", { className: "text-muted-foreground text-sm", children: "-" });
|
|
42077
|
+
return /* @__PURE__ */ (0, import_jsx_runtime165.jsx)("div", { className: "flex flex-wrap gap-2 pt-1", children: val.map((item, idx) => {
|
|
41854
42078
|
const label = typeof item === "object" && item !== null ? item.label || item.value || item.name || JSON.stringify(item) : String(item);
|
|
41855
|
-
return /* @__PURE__ */ (0,
|
|
42079
|
+
return /* @__PURE__ */ (0, import_jsx_runtime165.jsx)(
|
|
41856
42080
|
"span",
|
|
41857
42081
|
{
|
|
41858
42082
|
className: "inline-flex items-center bg-black border border-cardBorder px-2 py-0.5 text-cardText text-xs font-medium rounded-md",
|
|
@@ -41863,14 +42087,14 @@ var CampaignConceptCard = import_react82.default.memo(
|
|
|
41863
42087
|
}) });
|
|
41864
42088
|
}
|
|
41865
42089
|
if (typeof val === "object" && val !== null) {
|
|
41866
|
-
return /* @__PURE__ */ (0,
|
|
42090
|
+
return /* @__PURE__ */ (0, import_jsx_runtime165.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") });
|
|
41867
42091
|
}
|
|
41868
|
-
return /* @__PURE__ */ (0,
|
|
42092
|
+
return /* @__PURE__ */ (0, import_jsx_runtime165.jsx)("span", { className: "text-cardText text-sm", children: val !== void 0 && val !== null ? String(val) : "-" });
|
|
41869
42093
|
}
|
|
41870
42094
|
};
|
|
41871
42095
|
});
|
|
41872
42096
|
}, [providedFields, data]);
|
|
41873
|
-
return /* @__PURE__ */ (0,
|
|
42097
|
+
return /* @__PURE__ */ (0, import_jsx_runtime165.jsxs)(
|
|
41874
42098
|
"div",
|
|
41875
42099
|
{
|
|
41876
42100
|
className: cn(
|
|
@@ -41879,31 +42103,31 @@ var CampaignConceptCard = import_react82.default.memo(
|
|
|
41879
42103
|
className
|
|
41880
42104
|
),
|
|
41881
42105
|
children: [
|
|
41882
|
-
/* @__PURE__ */ (0,
|
|
42106
|
+
/* @__PURE__ */ (0, import_jsx_runtime165.jsxs)(
|
|
41883
42107
|
"div",
|
|
41884
42108
|
{
|
|
41885
42109
|
className: "px-4 py-2.5 relative flex items-center justify-between cursor-pointer select-none",
|
|
41886
42110
|
onClick: handleToggle,
|
|
41887
42111
|
children: [
|
|
41888
|
-
/* @__PURE__ */ (0,
|
|
41889
|
-
/* @__PURE__ */ (0,
|
|
42112
|
+
/* @__PURE__ */ (0, import_jsx_runtime165.jsxs)("div", { className: "flex-1", children: [
|
|
42113
|
+
/* @__PURE__ */ (0, import_jsx_runtime165.jsxs)("h3", { className: "text-cardText font-semibold text-sm", children: [
|
|
41890
42114
|
"Concept ",
|
|
41891
42115
|
index !== void 0 ? index : "",
|
|
41892
42116
|
" :",
|
|
41893
42117
|
" ",
|
|
41894
42118
|
typeof cardTitle === "object" ? JSON.stringify(cardTitle) : String(cardTitle)
|
|
41895
42119
|
] }),
|
|
41896
|
-
/* @__PURE__ */ (0,
|
|
41897
|
-
isRecommended && /* @__PURE__ */ (0,
|
|
41898
|
-
!effectiveIsLatest && selectionStatus && /* @__PURE__ */ (0,
|
|
42120
|
+
/* @__PURE__ */ (0, import_jsx_runtime165.jsxs)("div", { className: "flex flex-wrap gap-2", children: [
|
|
42121
|
+
isRecommended && /* @__PURE__ */ (0, import_jsx_runtime165.jsx)("span", { className: "text-[10px] font-semibold uppercase tracking-widest text-gold", children: "Recommended" }),
|
|
42122
|
+
!effectiveIsLatest && selectionStatus && /* @__PURE__ */ (0, import_jsx_runtime165.jsx)("span", { className: "text-[10px] font-semibold uppercase tracking-widest text-gold", children: selectionStatus === "agent" ? "Selected by Agent" : "Selected by You" })
|
|
41899
42123
|
] })
|
|
41900
42124
|
] }),
|
|
41901
|
-
/* @__PURE__ */ (0,
|
|
42125
|
+
/* @__PURE__ */ (0, import_jsx_runtime165.jsx)(
|
|
41902
42126
|
"div",
|
|
41903
42127
|
{
|
|
41904
42128
|
className: "flex items-center gap-2 ml-3",
|
|
41905
42129
|
onClick: (e) => e.stopPropagation(),
|
|
41906
|
-
children: /* @__PURE__ */ (0,
|
|
42130
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime165.jsx)(
|
|
41907
42131
|
"button",
|
|
41908
42132
|
{
|
|
41909
42133
|
onClick: (e) => {
|
|
@@ -41914,7 +42138,7 @@ var CampaignConceptCard = import_react82.default.memo(
|
|
|
41914
42138
|
className: "p-2 bg-cardSurface hover:bg-gray200 text-cardText rounded-lg",
|
|
41915
42139
|
"aria-label": isOpen ? "Collapse" : "Expand",
|
|
41916
42140
|
title: isOpen ? "Collapse" : "Expand",
|
|
41917
|
-
children: /* @__PURE__ */ (0,
|
|
42141
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime165.jsx)(
|
|
41918
42142
|
ChevronDown,
|
|
41919
42143
|
{
|
|
41920
42144
|
className: `h-4 w-4 transition-transform ${isOpen ? "rotate-0" : "-rotate-90"}`
|
|
@@ -41927,7 +42151,7 @@ var CampaignConceptCard = import_react82.default.memo(
|
|
|
41927
42151
|
]
|
|
41928
42152
|
}
|
|
41929
42153
|
),
|
|
41930
|
-
/* @__PURE__ */ (0,
|
|
42154
|
+
/* @__PURE__ */ (0, import_jsx_runtime165.jsx)(import_framer_motion.AnimatePresence, { initial: false, children: isOpen && /* @__PURE__ */ (0, import_jsx_runtime165.jsx)(
|
|
41931
42155
|
import_framer_motion.motion.div,
|
|
41932
42156
|
{
|
|
41933
42157
|
initial: { height: 0, opacity: 0 },
|
|
@@ -41935,8 +42159,8 @@ var CampaignConceptCard = import_react82.default.memo(
|
|
|
41935
42159
|
exit: { height: 0, opacity: 0 },
|
|
41936
42160
|
transition: { duration: 0.2, ease: "easeIn" },
|
|
41937
42161
|
className: "overflow-hidden",
|
|
41938
|
-
children: /* @__PURE__ */ (0,
|
|
41939
|
-
/* @__PURE__ */ (0,
|
|
42162
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime165.jsxs)("div", { className: "px-3 py-2 w-full relative", children: [
|
|
42163
|
+
/* @__PURE__ */ (0, import_jsx_runtime165.jsx)(
|
|
41940
42164
|
"div",
|
|
41941
42165
|
{
|
|
41942
42166
|
className: "absolute left-[48px] top-[70px] bottom-[40px] w-[2px]",
|
|
@@ -41945,7 +42169,7 @@ var CampaignConceptCard = import_react82.default.memo(
|
|
|
41945
42169
|
}
|
|
41946
42170
|
}
|
|
41947
42171
|
),
|
|
41948
|
-
/* @__PURE__ */ (0,
|
|
42172
|
+
/* @__PURE__ */ (0, import_jsx_runtime165.jsx)(
|
|
41949
42173
|
FormCard,
|
|
41950
42174
|
{
|
|
41951
42175
|
...formCardProps,
|
|
@@ -41959,9 +42183,9 @@ var CampaignConceptCard = import_react82.default.memo(
|
|
|
41959
42183
|
hideTitle: true,
|
|
41960
42184
|
hideCopyButton: true,
|
|
41961
42185
|
className: "bg-transparent border-none shadow-none mb-0 p-0",
|
|
41962
|
-
footer: !effectiveIsLatest && selectionStatus ? /* @__PURE__ */ (0,
|
|
41963
|
-
/* @__PURE__ */ (0,
|
|
41964
|
-
/* @__PURE__ */ (0,
|
|
42186
|
+
footer: !effectiveIsLatest && selectionStatus ? /* @__PURE__ */ (0, import_jsx_runtime165.jsxs)("div", { className: "flex justify-end items-center gap-1 text-green-600 text-[10px] font-semibold py-2 pr-4", children: [
|
|
42187
|
+
/* @__PURE__ */ (0, import_jsx_runtime165.jsx)(CircleCheck, { className: "h-3.5 w-3.5" }),
|
|
42188
|
+
/* @__PURE__ */ (0, import_jsx_runtime165.jsx)("span", { children: selectionStatus === "agent" ? "Selected by Agent" : "Selected by You" })
|
|
41965
42189
|
] }) : formCardProps.footer
|
|
41966
42190
|
}
|
|
41967
42191
|
)
|
|
@@ -41977,14 +42201,14 @@ var CampaignConceptCard = import_react82.default.memo(
|
|
|
41977
42201
|
CampaignConceptCard.displayName = "CampaignConceptCard";
|
|
41978
42202
|
|
|
41979
42203
|
// src/molecules/creator-discovery/CreatorWidget/CreatorWidget.tsx
|
|
41980
|
-
var
|
|
42204
|
+
var import_react91 = require("react");
|
|
41981
42205
|
|
|
41982
42206
|
// src/molecules/creator-discovery/CreatorWidget/CreatorImageList.tsx
|
|
41983
|
-
var
|
|
41984
|
-
var
|
|
42207
|
+
var import_react84 = require("react");
|
|
42208
|
+
var import_jsx_runtime166 = require("react/jsx-runtime");
|
|
41985
42209
|
function useMediaQuery(query) {
|
|
41986
|
-
const [matches, setMatches] = (0,
|
|
41987
|
-
(0,
|
|
42210
|
+
const [matches, setMatches] = (0, import_react84.useState)(false);
|
|
42211
|
+
(0, import_react84.useEffect)(() => {
|
|
41988
42212
|
const media = window.matchMedia(query);
|
|
41989
42213
|
const listener = () => setMatches(media.matches);
|
|
41990
42214
|
listener();
|
|
@@ -42002,8 +42226,8 @@ function CreatorImage({
|
|
|
42002
42226
|
const processedCount = Math.floor(creatorsPercentage / 100 * totalCreators);
|
|
42003
42227
|
const isProcessed = idx < processedCount;
|
|
42004
42228
|
const isCurrentlyProcessing = idx === processedCount;
|
|
42005
|
-
return /* @__PURE__ */ (0,
|
|
42006
|
-
/* @__PURE__ */ (0,
|
|
42229
|
+
return /* @__PURE__ */ (0, import_jsx_runtime166.jsxs)("div", { className: "relative w-8 h-8", children: [
|
|
42230
|
+
/* @__PURE__ */ (0, import_jsx_runtime166.jsx)(
|
|
42007
42231
|
"img",
|
|
42008
42232
|
{
|
|
42009
42233
|
src: img,
|
|
@@ -42011,9 +42235,9 @@ function CreatorImage({
|
|
|
42011
42235
|
className: `w-8 h-8 rounded-full border-2 ${isProcessed ? "border-green-600" : "border-foreground"} object-cover transition-all duration-300`
|
|
42012
42236
|
}
|
|
42013
42237
|
),
|
|
42014
|
-
!isProcessed && /* @__PURE__ */ (0,
|
|
42015
|
-
isCurrentlyProcessing && /* @__PURE__ */ (0,
|
|
42016
|
-
/* @__PURE__ */ (0,
|
|
42238
|
+
!isProcessed && /* @__PURE__ */ (0, import_jsx_runtime166.jsx)("div", { className: "absolute inset-0 bg-black/50 rounded-full pointer-events-none" }),
|
|
42239
|
+
isCurrentlyProcessing && /* @__PURE__ */ (0, import_jsx_runtime166.jsxs)(import_jsx_runtime166.Fragment, { children: [
|
|
42240
|
+
/* @__PURE__ */ (0, import_jsx_runtime166.jsx)(
|
|
42017
42241
|
"div",
|
|
42018
42242
|
{
|
|
42019
42243
|
className: "absolute inset-0 bg-black/50 rounded-full pointer-events-none",
|
|
@@ -42029,7 +42253,7 @@ function CreatorImage({
|
|
|
42029
42253
|
}
|
|
42030
42254
|
}
|
|
42031
42255
|
),
|
|
42032
|
-
/* @__PURE__ */ (0,
|
|
42256
|
+
/* @__PURE__ */ (0, import_jsx_runtime166.jsx)("div", { className: "absolute inset-0 rounded-full border-2 border-[#9CA3AF]/30 pointer-events-none" })
|
|
42033
42257
|
] })
|
|
42034
42258
|
] });
|
|
42035
42259
|
}
|
|
@@ -42042,8 +42266,8 @@ function CreatorImageList({
|
|
|
42042
42266
|
const isMobile = useMediaQuery("(max-width: 640px)");
|
|
42043
42267
|
const isTablet = useMediaQuery("(min-width: 641px) and (max-width: 1024px)");
|
|
42044
42268
|
const visibleCount = isMobile ? 7 : isTablet ? 10 : isAgentOutput ? 6 : 15;
|
|
42045
|
-
return /* @__PURE__ */ (0,
|
|
42046
|
-
creatorImages.slice(0, visibleCount).map((img, idx) => /* @__PURE__ */ (0,
|
|
42269
|
+
return /* @__PURE__ */ (0, import_jsx_runtime166.jsxs)("div", { className: "flex flex-nowrap sm:flex-wrap -space-x-2 w-fit", children: [
|
|
42270
|
+
creatorImages.slice(0, visibleCount).map((img, idx) => /* @__PURE__ */ (0, import_jsx_runtime166.jsx)(
|
|
42047
42271
|
CreatorImage,
|
|
42048
42272
|
{
|
|
42049
42273
|
img,
|
|
@@ -42053,7 +42277,7 @@ function CreatorImageList({
|
|
|
42053
42277
|
},
|
|
42054
42278
|
idx
|
|
42055
42279
|
)),
|
|
42056
|
-
creatorLength > visibleCount && /* @__PURE__ */ (0,
|
|
42280
|
+
creatorLength > visibleCount && /* @__PURE__ */ (0, import_jsx_runtime166.jsxs)(
|
|
42057
42281
|
"div",
|
|
42058
42282
|
{
|
|
42059
42283
|
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"}`,
|
|
@@ -42067,28 +42291,28 @@ function CreatorImageList({
|
|
|
42067
42291
|
}
|
|
42068
42292
|
|
|
42069
42293
|
// src/molecules/creator-discovery/CreatorWidget/CreatorProgressBar.tsx
|
|
42070
|
-
var
|
|
42294
|
+
var import_react85 = require("react");
|
|
42071
42295
|
var import_framer_motion2 = require("framer-motion");
|
|
42072
|
-
var
|
|
42296
|
+
var import_jsx_runtime167 = require("react/jsx-runtime");
|
|
42073
42297
|
function truncateName(name, maxLength) {
|
|
42074
42298
|
if (!name || name.length <= maxLength) return name || "";
|
|
42075
42299
|
return name.substring(0, maxLength) + "...";
|
|
42076
42300
|
}
|
|
42077
42301
|
function ProgressBar({ overallPercentage }) {
|
|
42078
|
-
const [showTooltip, setShowTooltip] = (0,
|
|
42079
|
-
(0,
|
|
42302
|
+
const [showTooltip, setShowTooltip] = (0, import_react85.useState)(true);
|
|
42303
|
+
(0, import_react85.useEffect)(() => {
|
|
42080
42304
|
if (overallPercentage && overallPercentage >= 100) {
|
|
42081
42305
|
setShowTooltip(false);
|
|
42082
42306
|
}
|
|
42083
42307
|
}, [overallPercentage]);
|
|
42084
|
-
return /* @__PURE__ */ (0,
|
|
42308
|
+
return /* @__PURE__ */ (0, import_jsx_runtime167.jsx)("div", { className: "relative w-full", children: /* @__PURE__ */ (0, import_jsx_runtime167.jsx)("div", { className: "md:w-full dark:bg-purple500 bg-gray-200 rounded-full h-[6px]", children: /* @__PURE__ */ (0, import_jsx_runtime167.jsx)(
|
|
42085
42309
|
import_framer_motion2.motion.div,
|
|
42086
42310
|
{
|
|
42087
42311
|
className: "bg-purple100 h-[6px] rounded-full relative",
|
|
42088
42312
|
initial: { width: 0 },
|
|
42089
42313
|
animate: { width: `${overallPercentage}%` },
|
|
42090
42314
|
transition: { duration: 0.5, ease: "easeOut" },
|
|
42091
|
-
children: /* @__PURE__ */ (0,
|
|
42315
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime167.jsx)(import_framer_motion2.AnimatePresence, { children: showTooltip && /* @__PURE__ */ (0, import_jsx_runtime167.jsxs)(
|
|
42092
42316
|
import_framer_motion2.motion.div,
|
|
42093
42317
|
{
|
|
42094
42318
|
initial: { opacity: 0, y: 5 },
|
|
@@ -42098,9 +42322,9 @@ function ProgressBar({ overallPercentage }) {
|
|
|
42098
42322
|
children: [
|
|
42099
42323
|
overallPercentage ? Math.round(overallPercentage) : 0,
|
|
42100
42324
|
"%",
|
|
42101
|
-
/* @__PURE__ */ (0,
|
|
42102
|
-
/* @__PURE__ */ (0,
|
|
42103
|
-
/* @__PURE__ */ (0,
|
|
42325
|
+
/* @__PURE__ */ (0, import_jsx_runtime167.jsxs)("div", { className: "absolute left-1/2 top-full -translate-x-1/2", children: [
|
|
42326
|
+
/* @__PURE__ */ (0, import_jsx_runtime167.jsx)("div", { className: "w-0 h-0 border-l-[6px] border-r-[6px] border-t-[6px] border-transparent border-t-gray300" }),
|
|
42327
|
+
/* @__PURE__ */ (0, import_jsx_runtime167.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" })
|
|
42104
42328
|
] })
|
|
42105
42329
|
]
|
|
42106
42330
|
}
|
|
@@ -42112,38 +42336,38 @@ function CreatorProgressBar({
|
|
|
42112
42336
|
statusDetails,
|
|
42113
42337
|
timeRemaining: _timeRemaining
|
|
42114
42338
|
}) {
|
|
42115
|
-
return /* @__PURE__ */ (0,
|
|
42116
|
-
/* @__PURE__ */ (0,
|
|
42117
|
-
/* @__PURE__ */ (0,
|
|
42339
|
+
return /* @__PURE__ */ (0, import_jsx_runtime167.jsxs)("div", { children: [
|
|
42340
|
+
/* @__PURE__ */ (0, import_jsx_runtime167.jsx)(ProgressBar, { overallPercentage: statusDetails?.overall_percentage }),
|
|
42341
|
+
/* @__PURE__ */ (0, import_jsx_runtime167.jsx)("div", { className: "dark:text-gray400 text-gray-500 text-xs mt-2", children: (statusDetails?.overall_percentage ?? 0) < 100 && /* @__PURE__ */ (0, import_jsx_runtime167.jsx)("span", { children: statusDetails?.thinking_message ? truncateName(statusDetails.thinking_message, 200) : "Processing..." }) })
|
|
42118
42342
|
] });
|
|
42119
42343
|
}
|
|
42120
42344
|
|
|
42121
42345
|
// src/molecules/creator-discovery/CreatorWidget/CreatorWidgetSkeleton.tsx
|
|
42122
|
-
var
|
|
42346
|
+
var import_jsx_runtime168 = require("react/jsx-runtime");
|
|
42123
42347
|
function CreatorWidgetSkeleton() {
|
|
42124
|
-
return /* @__PURE__ */ (0,
|
|
42125
|
-
/* @__PURE__ */ (0,
|
|
42126
|
-
/* @__PURE__ */ (0,
|
|
42127
|
-
/* @__PURE__ */ (0,
|
|
42348
|
+
return /* @__PURE__ */ (0, import_jsx_runtime168.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_runtime168.jsxs)("div", { className: "p-4 md:p-6 space-y-4", children: [
|
|
42349
|
+
/* @__PURE__ */ (0, import_jsx_runtime168.jsx)("div", { className: "flex flex-col md:flex-row md:items-center md:justify-between gap-4 relative", children: /* @__PURE__ */ (0, import_jsx_runtime168.jsxs)("div", { className: "flex flex-col gap-2 md:gap-4", children: [
|
|
42350
|
+
/* @__PURE__ */ (0, import_jsx_runtime168.jsx)("div", { className: "w-40 h-6 bg-purple200 rounded-md animate-pulse" }),
|
|
42351
|
+
/* @__PURE__ */ (0, import_jsx_runtime168.jsx)("div", { className: "w-64 h-7 bg-gray200 dark:bg-gray300 rounded animate-pulse" })
|
|
42128
42352
|
] }) }),
|
|
42129
|
-
/* @__PURE__ */ (0,
|
|
42130
|
-
/* @__PURE__ */ (0,
|
|
42131
|
-
/* @__PURE__ */ (0,
|
|
42353
|
+
/* @__PURE__ */ (0, import_jsx_runtime168.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: [
|
|
42354
|
+
/* @__PURE__ */ (0, import_jsx_runtime168.jsxs)("div", { className: "flex flex-col gap-4 md:gap-6 min-w-0", children: [
|
|
42355
|
+
/* @__PURE__ */ (0, import_jsx_runtime168.jsx)("div", { className: "flex -space-x-2", children: Array.from({ length: 10 }).map((_, idx) => /* @__PURE__ */ (0, import_jsx_runtime168.jsx)(
|
|
42132
42356
|
"div",
|
|
42133
42357
|
{
|
|
42134
42358
|
className: "w-8 h-8 md:w-10 md:h-10 rounded-full border-2 border-gray300 bg-gray200 animate-pulse"
|
|
42135
42359
|
},
|
|
42136
42360
|
idx
|
|
42137
42361
|
)) }),
|
|
42138
|
-
/* @__PURE__ */ (0,
|
|
42362
|
+
/* @__PURE__ */ (0, import_jsx_runtime168.jsx)("div", { className: "space-y-2", children: /* @__PURE__ */ (0, import_jsx_runtime168.jsx)("div", { className: "w-full max-w-xs bg-gray200 rounded-full h-2 animate-pulse" }) })
|
|
42139
42363
|
] }),
|
|
42140
|
-
/* @__PURE__ */ (0,
|
|
42364
|
+
/* @__PURE__ */ (0, import_jsx_runtime168.jsx)("div", { className: "px-6 py-2 bg-gray200 rounded-[30px] animate-pulse h-10 w-48" })
|
|
42141
42365
|
] })
|
|
42142
42366
|
] }) });
|
|
42143
42367
|
}
|
|
42144
42368
|
|
|
42145
42369
|
// src/molecules/creator-discovery/CreatorWidget/CreatorCompactView.tsx
|
|
42146
|
-
var
|
|
42370
|
+
var import_jsx_runtime169 = require("react/jsx-runtime");
|
|
42147
42371
|
function CreatorCompactView({
|
|
42148
42372
|
versions,
|
|
42149
42373
|
selectedVersion,
|
|
@@ -42160,16 +42384,16 @@ function CreatorCompactView({
|
|
|
42160
42384
|
const isComplete = versionStatus === "completed" || versionStatus === "complete";
|
|
42161
42385
|
const statusTitle = isComplete ? "Creator Search Complete" : versionStatus === "failed" ? "Creator Search Failed" : "Creator Search Processing";
|
|
42162
42386
|
if (isLoading) {
|
|
42163
|
-
return /* @__PURE__ */ (0,
|
|
42387
|
+
return /* @__PURE__ */ (0, import_jsx_runtime169.jsx)(CreatorWidgetSkeleton, {});
|
|
42164
42388
|
}
|
|
42165
|
-
return /* @__PURE__ */ (0,
|
|
42166
|
-
/* @__PURE__ */ (0,
|
|
42167
|
-
/* @__PURE__ */ (0,
|
|
42168
|
-
/* @__PURE__ */ (0,
|
|
42169
|
-
/* @__PURE__ */ (0,
|
|
42389
|
+
return /* @__PURE__ */ (0, import_jsx_runtime169.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_runtime169.jsxs)("div", { className: "p-4 md:p-6 space-y-4", children: [
|
|
42390
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.jsxs)("div", { className: "flex flex-col md:flex-row md:items-center md:justify-between gap-4 relative", children: [
|
|
42391
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.jsxs)("div", { className: "flex flex-col gap-2 md:gap-4", children: [
|
|
42392
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.jsx)("h4", { className: "w-fit rounded-md bg-purple200 px-2 py-[4px] text-xs font-medium text-purpleText", children: "VERIFIED CREATORS LIST" }),
|
|
42393
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.jsx)("h3", { className: "text-gray900 md:text-lg font-bold", children: statusTitle })
|
|
42170
42394
|
] }),
|
|
42171
|
-
versions.length > 1 && /* @__PURE__ */ (0,
|
|
42172
|
-
/* @__PURE__ */ (0,
|
|
42395
|
+
versions.length > 1 && /* @__PURE__ */ (0, import_jsx_runtime169.jsx)("div", { className: "relative md:self-start", children: /* @__PURE__ */ (0, import_jsx_runtime169.jsxs)(DropdownMenu, { children: [
|
|
42396
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.jsxs)(
|
|
42173
42397
|
DropdownMenuTrigger,
|
|
42174
42398
|
{
|
|
42175
42399
|
disabled: !isComplete,
|
|
@@ -42177,11 +42401,11 @@ function CreatorCompactView({
|
|
|
42177
42401
|
children: [
|
|
42178
42402
|
"Version ",
|
|
42179
42403
|
selectedVersion ?? "-",
|
|
42180
|
-
/* @__PURE__ */ (0,
|
|
42404
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.jsx)(ChevronDown, { className: "w-3 h-3 md:w-4 md:h-4 transition-transform" })
|
|
42181
42405
|
]
|
|
42182
42406
|
}
|
|
42183
42407
|
),
|
|
42184
|
-
/* @__PURE__ */ (0,
|
|
42408
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.jsx)(DropdownMenuContent, { className: "bg-[var(--creator-dropdown-bg)] border-2 border-gray400 min-w-[120px] max-h-[150px] overflow-y-auto", children: versions.map((v) => /* @__PURE__ */ (0, import_jsx_runtime169.jsxs)(
|
|
42185
42409
|
DropdownMenuItem,
|
|
42186
42410
|
{
|
|
42187
42411
|
onClick: () => onVersionSelect(v),
|
|
@@ -42195,12 +42419,12 @@ function CreatorCompactView({
|
|
|
42195
42419
|
)) })
|
|
42196
42420
|
] }) })
|
|
42197
42421
|
] }),
|
|
42198
|
-
/* @__PURE__ */ (0,
|
|
42199
|
-
/* @__PURE__ */ (0,
|
|
42200
|
-
/* @__PURE__ */ (0,
|
|
42201
|
-
] }) : /* @__PURE__ */ (0,
|
|
42202
|
-
/* @__PURE__ */ (0,
|
|
42203
|
-
/* @__PURE__ */ (0,
|
|
42422
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.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_runtime169.jsxs)("div", { className: "flex flex-col items-center justify-center w-full py-6 md:py-8 text-center text-red-500", children: [
|
|
42423
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.jsx)("p", { className: "text-base md:text-lg font-semibold mb-2", children: "Creator Search Failed" }),
|
|
42424
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.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." })
|
|
42425
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime169.jsxs)(import_jsx_runtime169.Fragment, { children: [
|
|
42426
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.jsxs)("div", { className: "flex flex-col gap-4 md:gap-6 min-w-0", children: [
|
|
42427
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.jsx)(
|
|
42204
42428
|
CreatorImageList,
|
|
42205
42429
|
{
|
|
42206
42430
|
creatorImages,
|
|
@@ -42209,7 +42433,7 @@ function CreatorCompactView({
|
|
|
42209
42433
|
initialCreatorsPercentage: statusDetails?.social_fetch_percentage
|
|
42210
42434
|
}
|
|
42211
42435
|
),
|
|
42212
|
-
/* @__PURE__ */ (0,
|
|
42436
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.jsx)(
|
|
42213
42437
|
CreatorProgressBar,
|
|
42214
42438
|
{
|
|
42215
42439
|
statusDetails,
|
|
@@ -42217,7 +42441,7 @@ function CreatorCompactView({
|
|
|
42217
42441
|
}
|
|
42218
42442
|
)
|
|
42219
42443
|
] }),
|
|
42220
|
-
/* @__PURE__ */ (0,
|
|
42444
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.jsxs)(
|
|
42221
42445
|
"button",
|
|
42222
42446
|
{
|
|
42223
42447
|
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"}`,
|
|
@@ -42227,7 +42451,7 @@ function CreatorCompactView({
|
|
|
42227
42451
|
"View ",
|
|
42228
42452
|
creatorLength,
|
|
42229
42453
|
" Verified Creators",
|
|
42230
|
-
/* @__PURE__ */ (0,
|
|
42454
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.jsx)(Triangle, { className: "w-3 h-3 md:w-4 md:h-4 rotate-90 font-bold" })
|
|
42231
42455
|
]
|
|
42232
42456
|
}
|
|
42233
42457
|
)
|
|
@@ -42236,7 +42460,7 @@ function CreatorCompactView({
|
|
|
42236
42460
|
}
|
|
42237
42461
|
|
|
42238
42462
|
// src/molecules/creator-discovery/CreatorWidget/CreatorExpandedPanel.tsx
|
|
42239
|
-
var
|
|
42463
|
+
var import_react89 = require("react");
|
|
42240
42464
|
var import_react_dom2 = __toESM(require("react-dom"), 1);
|
|
42241
42465
|
var import_framer_motion5 = require("framer-motion");
|
|
42242
42466
|
|
|
@@ -42518,7 +42742,7 @@ var normalizeToIso2 = (input) => {
|
|
|
42518
42742
|
};
|
|
42519
42743
|
|
|
42520
42744
|
// src/molecules/creator-discovery/CreatorWidget/EngagedAudienceDemographics.tsx
|
|
42521
|
-
var
|
|
42745
|
+
var import_jsx_runtime170 = require("react/jsx-runtime");
|
|
42522
42746
|
function EngagedAudienceDemographics({
|
|
42523
42747
|
audienceDemographics
|
|
42524
42748
|
}) {
|
|
@@ -42536,31 +42760,31 @@ function EngagedAudienceDemographics({
|
|
|
42536
42760
|
if (hasAges) columns.push("1fr");
|
|
42537
42761
|
if (hasGenders) columns.push("0.4fr");
|
|
42538
42762
|
const gridTemplate = columns.join(" ");
|
|
42539
|
-
return /* @__PURE__ */ (0,
|
|
42540
|
-
/* @__PURE__ */ (0,
|
|
42541
|
-
/* @__PURE__ */ (0,
|
|
42763
|
+
return /* @__PURE__ */ (0, import_jsx_runtime170.jsxs)("div", { className: "flex flex-col gap-4", children: [
|
|
42764
|
+
/* @__PURE__ */ (0, import_jsx_runtime170.jsx)("div", { className: "text-purpleText text-xs", children: /* @__PURE__ */ (0, import_jsx_runtime170.jsx)("span", { className: "rounded-md bg-purple200 px-2 py-[4px] font-sans", children: "ENGAGED AUDIENCE" }) }),
|
|
42765
|
+
/* @__PURE__ */ (0, import_jsx_runtime170.jsxs)(
|
|
42542
42766
|
"div",
|
|
42543
42767
|
{
|
|
42544
42768
|
className: "flex flex-col sm:col-span-3 sm:grid gap-6",
|
|
42545
42769
|
style: { gridTemplateColumns: gridTemplate },
|
|
42546
42770
|
children: [
|
|
42547
|
-
hasCities && /* @__PURE__ */ (0,
|
|
42548
|
-
/* @__PURE__ */ (0,
|
|
42549
|
-
/* @__PURE__ */ (0,
|
|
42550
|
-
([code, value]) => /* @__PURE__ */ (0,
|
|
42771
|
+
hasCities && /* @__PURE__ */ (0, import_jsx_runtime170.jsxs)("div", { children: [
|
|
42772
|
+
/* @__PURE__ */ (0, import_jsx_runtime170.jsx)("h4", { className: "text-xs text-gray700 mb-3", children: "Cities" }),
|
|
42773
|
+
/* @__PURE__ */ (0, import_jsx_runtime170.jsx)("div", { className: "flex flex-col gap-3", children: Object.entries(audienceDemographics?.cities || {}).map(
|
|
42774
|
+
([code, value]) => /* @__PURE__ */ (0, import_jsx_runtime170.jsxs)(
|
|
42551
42775
|
"div",
|
|
42552
42776
|
{
|
|
42553
42777
|
className: "flex items-center gap-3 text-sm text-gray700",
|
|
42554
42778
|
children: [
|
|
42555
|
-
/* @__PURE__ */ (0,
|
|
42556
|
-
/* @__PURE__ */ (0,
|
|
42779
|
+
/* @__PURE__ */ (0, import_jsx_runtime170.jsx)("span", { className: "w-[90px]", children: /* @__PURE__ */ (0, import_jsx_runtime170.jsx)("div", { className: "flex gap-1 items-center", children: /* @__PURE__ */ (0, import_jsx_runtime170.jsx)("span", { children: code.split(",")[0] }) }) }),
|
|
42780
|
+
/* @__PURE__ */ (0, import_jsx_runtime170.jsx)("div", { className: "flex-1 bg-gray200 h-[6px] rounded-full overflow-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime170.jsx)(
|
|
42557
42781
|
"div",
|
|
42558
42782
|
{
|
|
42559
42783
|
className: "h-[6px] bg-purple100 rounded-full",
|
|
42560
42784
|
style: { width: `${value}%` }
|
|
42561
42785
|
}
|
|
42562
42786
|
) }),
|
|
42563
|
-
/* @__PURE__ */ (0,
|
|
42787
|
+
/* @__PURE__ */ (0, import_jsx_runtime170.jsxs)("span", { className: "w-10 text-right font-medium", children: [
|
|
42564
42788
|
value,
|
|
42565
42789
|
"%"
|
|
42566
42790
|
] })
|
|
@@ -42570,29 +42794,29 @@ function EngagedAudienceDemographics({
|
|
|
42570
42794
|
)
|
|
42571
42795
|
) })
|
|
42572
42796
|
] }),
|
|
42573
|
-
hasCountries && /* @__PURE__ */ (0,
|
|
42574
|
-
/* @__PURE__ */ (0,
|
|
42575
|
-
/* @__PURE__ */ (0,
|
|
42797
|
+
hasCountries && /* @__PURE__ */ (0, import_jsx_runtime170.jsxs)("div", { children: [
|
|
42798
|
+
/* @__PURE__ */ (0, import_jsx_runtime170.jsx)("h4", { className: "text-xs text-gray700 mb-3", children: "Countries" }),
|
|
42799
|
+
/* @__PURE__ */ (0, import_jsx_runtime170.jsx)("div", { className: "flex flex-col gap-3", children: Object.entries(audienceDemographics?.countries || {}).map(
|
|
42576
42800
|
([code, value]) => {
|
|
42577
42801
|
const iso2 = normalizeToIso2(code);
|
|
42578
42802
|
const meta = codeToMeta[iso2];
|
|
42579
|
-
return /* @__PURE__ */ (0,
|
|
42803
|
+
return /* @__PURE__ */ (0, import_jsx_runtime170.jsxs)(
|
|
42580
42804
|
"div",
|
|
42581
42805
|
{
|
|
42582
42806
|
className: "flex items-center gap-3 text-sm text-gray700",
|
|
42583
42807
|
children: [
|
|
42584
|
-
/* @__PURE__ */ (0,
|
|
42585
|
-
/* @__PURE__ */ (0,
|
|
42586
|
-
/* @__PURE__ */ (0,
|
|
42808
|
+
/* @__PURE__ */ (0, import_jsx_runtime170.jsx)("span", { className: "w-10", children: /* @__PURE__ */ (0, import_jsx_runtime170.jsxs)("div", { className: "flex gap-1 items-center", children: [
|
|
42809
|
+
/* @__PURE__ */ (0, import_jsx_runtime170.jsx)("span", { className: "text-base", children: meta?.flag }),
|
|
42810
|
+
/* @__PURE__ */ (0, import_jsx_runtime170.jsx)("span", { children: code })
|
|
42587
42811
|
] }) }),
|
|
42588
|
-
/* @__PURE__ */ (0,
|
|
42812
|
+
/* @__PURE__ */ (0, import_jsx_runtime170.jsx)("div", { className: "flex-1 bg-gray200 h-[6px] rounded-full overflow-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime170.jsx)(
|
|
42589
42813
|
"div",
|
|
42590
42814
|
{
|
|
42591
42815
|
className: "h-[6px] bg-purple100 rounded-full",
|
|
42592
42816
|
style: { width: `${value}%` }
|
|
42593
42817
|
}
|
|
42594
42818
|
) }),
|
|
42595
|
-
/* @__PURE__ */ (0,
|
|
42819
|
+
/* @__PURE__ */ (0, import_jsx_runtime170.jsxs)("span", { className: "w-10 text-right font-medium", children: [
|
|
42596
42820
|
value,
|
|
42597
42821
|
"%"
|
|
42598
42822
|
] })
|
|
@@ -42603,23 +42827,23 @@ function EngagedAudienceDemographics({
|
|
|
42603
42827
|
}
|
|
42604
42828
|
) })
|
|
42605
42829
|
] }),
|
|
42606
|
-
hasAges && /* @__PURE__ */ (0,
|
|
42607
|
-
/* @__PURE__ */ (0,
|
|
42608
|
-
/* @__PURE__ */ (0,
|
|
42609
|
-
([ageRange, value]) => /* @__PURE__ */ (0,
|
|
42830
|
+
hasAges && /* @__PURE__ */ (0, import_jsx_runtime170.jsxs)("div", { children: [
|
|
42831
|
+
/* @__PURE__ */ (0, import_jsx_runtime170.jsx)("h4", { className: "text-xs text-gray700 mb-3", children: "Ages" }),
|
|
42832
|
+
/* @__PURE__ */ (0, import_jsx_runtime170.jsx)("div", { className: "flex flex-col gap-3", children: Object.entries(audienceDemographics?.ages || {}).map(
|
|
42833
|
+
([ageRange, value]) => /* @__PURE__ */ (0, import_jsx_runtime170.jsxs)(
|
|
42610
42834
|
"div",
|
|
42611
42835
|
{
|
|
42612
42836
|
className: "flex items-center gap-3 text-sm text-gray700",
|
|
42613
42837
|
children: [
|
|
42614
|
-
/* @__PURE__ */ (0,
|
|
42615
|
-
/* @__PURE__ */ (0,
|
|
42838
|
+
/* @__PURE__ */ (0, import_jsx_runtime170.jsx)("span", { className: "w-12", children: ageRange }),
|
|
42839
|
+
/* @__PURE__ */ (0, import_jsx_runtime170.jsx)("div", { className: "flex-1 bg-gray200 h-[6px] rounded-full overflow-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime170.jsx)(
|
|
42616
42840
|
"div",
|
|
42617
42841
|
{
|
|
42618
42842
|
className: "h-[6px] bg-purple100 rounded-full",
|
|
42619
42843
|
style: { width: `${value}%` }
|
|
42620
42844
|
}
|
|
42621
42845
|
) }),
|
|
42622
|
-
/* @__PURE__ */ (0,
|
|
42846
|
+
/* @__PURE__ */ (0, import_jsx_runtime170.jsxs)("span", { className: "w-10 text-right font-medium", children: [
|
|
42623
42847
|
value,
|
|
42624
42848
|
"%"
|
|
42625
42849
|
] })
|
|
@@ -42629,20 +42853,20 @@ function EngagedAudienceDemographics({
|
|
|
42629
42853
|
)
|
|
42630
42854
|
) })
|
|
42631
42855
|
] }),
|
|
42632
|
-
hasGenders && /* @__PURE__ */ (0,
|
|
42633
|
-
([gender, value]) => /* @__PURE__ */ (0,
|
|
42856
|
+
hasGenders && /* @__PURE__ */ (0, import_jsx_runtime170.jsx)("div", { className: "flex flex-col justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime170.jsx)("div", { className: "flex sm:flex-col gap-3", children: Object.entries(audienceDemographics?.genders || {}).map(
|
|
42857
|
+
([gender, value]) => /* @__PURE__ */ (0, import_jsx_runtime170.jsxs)(
|
|
42634
42858
|
"div",
|
|
42635
42859
|
{
|
|
42636
42860
|
className: "flex flex-col justify-center text-sm",
|
|
42637
42861
|
children: [
|
|
42638
|
-
/* @__PURE__ */ (0,
|
|
42639
|
-
gender === "female" ? /* @__PURE__ */ (0,
|
|
42640
|
-
/* @__PURE__ */ (0,
|
|
42862
|
+
/* @__PURE__ */ (0, import_jsx_runtime170.jsxs)("div", { className: "flex items-center gap-1 mb-1", children: [
|
|
42863
|
+
gender === "female" ? /* @__PURE__ */ (0, import_jsx_runtime170.jsx)(Venus, { className: "text-red-500", strokeWidth: 3 }) : /* @__PURE__ */ (0, import_jsx_runtime170.jsx)(Mars, { className: "text-blue-500", strokeWidth: 3 }),
|
|
42864
|
+
/* @__PURE__ */ (0, import_jsx_runtime170.jsxs)("span", { className: "capitalize text-gray800 text-xl", children: [
|
|
42641
42865
|
value,
|
|
42642
42866
|
"%"
|
|
42643
42867
|
] })
|
|
42644
42868
|
] }),
|
|
42645
|
-
/* @__PURE__ */ (0,
|
|
42869
|
+
/* @__PURE__ */ (0, import_jsx_runtime170.jsx)("span", { className: "text-lg text-gray700", children: gender.charAt(0).toUpperCase() + gender.slice(1) })
|
|
42646
42870
|
]
|
|
42647
42871
|
},
|
|
42648
42872
|
gender
|
|
@@ -42655,40 +42879,40 @@ function EngagedAudienceDemographics({
|
|
|
42655
42879
|
}
|
|
42656
42880
|
|
|
42657
42881
|
// src/molecules/creator-discovery/CreatorWidget/PlatformIcons.tsx
|
|
42658
|
-
var
|
|
42882
|
+
var import_jsx_runtime171 = require("react/jsx-runtime");
|
|
42659
42883
|
function InstagramIcon({ className }) {
|
|
42660
|
-
return /* @__PURE__ */ (0,
|
|
42884
|
+
return /* @__PURE__ */ (0, import_jsx_runtime171.jsx)(
|
|
42661
42885
|
"svg",
|
|
42662
42886
|
{
|
|
42663
42887
|
className,
|
|
42664
42888
|
viewBox: "0 0 24 24",
|
|
42665
42889
|
fill: "currentColor",
|
|
42666
42890
|
xmlns: "http://www.w3.org/2000/svg",
|
|
42667
|
-
children: /* @__PURE__ */ (0,
|
|
42891
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime171.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" })
|
|
42668
42892
|
}
|
|
42669
42893
|
);
|
|
42670
42894
|
}
|
|
42671
42895
|
function YouTubeIcon({ className }) {
|
|
42672
|
-
return /* @__PURE__ */ (0,
|
|
42896
|
+
return /* @__PURE__ */ (0, import_jsx_runtime171.jsx)(
|
|
42673
42897
|
"svg",
|
|
42674
42898
|
{
|
|
42675
42899
|
className,
|
|
42676
42900
|
viewBox: "0 0 24 24",
|
|
42677
42901
|
fill: "currentColor",
|
|
42678
42902
|
xmlns: "http://www.w3.org/2000/svg",
|
|
42679
|
-
children: /* @__PURE__ */ (0,
|
|
42903
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime171.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" })
|
|
42680
42904
|
}
|
|
42681
42905
|
);
|
|
42682
42906
|
}
|
|
42683
42907
|
function TikTokIcon3({ className }) {
|
|
42684
|
-
return /* @__PURE__ */ (0,
|
|
42908
|
+
return /* @__PURE__ */ (0, import_jsx_runtime171.jsx)(
|
|
42685
42909
|
"svg",
|
|
42686
42910
|
{
|
|
42687
42911
|
className,
|
|
42688
42912
|
viewBox: "0 0 24 24",
|
|
42689
42913
|
fill: "currentColor",
|
|
42690
42914
|
xmlns: "http://www.w3.org/2000/svg",
|
|
42691
|
-
children: /* @__PURE__ */ (0,
|
|
42915
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime171.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" })
|
|
42692
42916
|
}
|
|
42693
42917
|
);
|
|
42694
42918
|
}
|
|
@@ -42722,8 +42946,8 @@ function getPlatformIconColor(platform) {
|
|
|
42722
42946
|
}
|
|
42723
42947
|
|
|
42724
42948
|
// src/molecules/creator-discovery/CreatorWidget/PostCard.tsx
|
|
42725
|
-
var
|
|
42726
|
-
var
|
|
42949
|
+
var import_react86 = require("react");
|
|
42950
|
+
var import_jsx_runtime172 = require("react/jsx-runtime");
|
|
42727
42951
|
var formatFollowerCount = (count) => {
|
|
42728
42952
|
if (count >= 1e6) {
|
|
42729
42953
|
const millions = count / 1e6;
|
|
@@ -42736,15 +42960,15 @@ var formatFollowerCount = (count) => {
|
|
|
42736
42960
|
return Math.floor(count).toString();
|
|
42737
42961
|
};
|
|
42738
42962
|
function PostCard({ post, platformUsername }) {
|
|
42739
|
-
const [expanded, setExpanded] = (0,
|
|
42740
|
-
const [errored, setErrored] = (0,
|
|
42963
|
+
const [expanded, setExpanded] = (0, import_react86.useState)(false);
|
|
42964
|
+
const [errored, setErrored] = (0, import_react86.useState)(false);
|
|
42741
42965
|
const thumbnail = post.thumbnail_url || post.thumbnail || post.image || "";
|
|
42742
42966
|
const likes = post.engagement?.likes ?? post.likes ?? null;
|
|
42743
42967
|
const comments = post.engagement?.comments ?? post.comments ?? null;
|
|
42744
42968
|
const views = post.engagement?.views ?? post.engagement?.plays ?? post.views ?? post.plays ?? null;
|
|
42745
42969
|
const impressions = post.impressions ?? null;
|
|
42746
42970
|
const reach = post.reach ?? null;
|
|
42747
|
-
return /* @__PURE__ */ (0,
|
|
42971
|
+
return /* @__PURE__ */ (0, import_jsx_runtime172.jsxs)(
|
|
42748
42972
|
"div",
|
|
42749
42973
|
{
|
|
42750
42974
|
className: "rounded-xl overflow-hidden border border-gray500 bg-transparent shadow-sm cursor-pointer",
|
|
@@ -42753,7 +42977,7 @@ function PostCard({ post, platformUsername }) {
|
|
|
42753
42977
|
window.open(post.url, "_blank", "noopener,noreferrer");
|
|
42754
42978
|
},
|
|
42755
42979
|
children: [
|
|
42756
|
-
/* @__PURE__ */ (0,
|
|
42980
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsx)("div", { className: "w-full aspect-square relative bg-gray25", children: thumbnail && !errored ? /* @__PURE__ */ (0, import_jsx_runtime172.jsx)(
|
|
42757
42981
|
"img",
|
|
42758
42982
|
{
|
|
42759
42983
|
src: thumbnail,
|
|
@@ -42761,55 +42985,55 @@ function PostCard({ post, platformUsername }) {
|
|
|
42761
42985
|
className: "w-full h-full object-cover",
|
|
42762
42986
|
onError: () => setErrored(true)
|
|
42763
42987
|
}
|
|
42764
|
-
) : /* @__PURE__ */ (0,
|
|
42765
|
-
/* @__PURE__ */ (0,
|
|
42766
|
-
/* @__PURE__ */ (0,
|
|
42767
|
-
likes !== null && /* @__PURE__ */ (0,
|
|
42768
|
-
/* @__PURE__ */ (0,
|
|
42988
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime172.jsx)("div", { className: "w-full h-full flex items-center justify-center text-gray500 text-sm", children: "No preview" }) }),
|
|
42989
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsxs)("div", { className: "p-3", children: [
|
|
42990
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsxs)("div", { className: "flex items-center gap-4 text-sm text-gray600 mb-2", children: [
|
|
42991
|
+
likes !== null && /* @__PURE__ */ (0, import_jsx_runtime172.jsxs)("div", { className: "flex items-center gap-1", children: [
|
|
42992
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsx)("span", { children: formatFollowerCount(likes) }),
|
|
42769
42993
|
" ",
|
|
42770
|
-
/* @__PURE__ */ (0,
|
|
42994
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsx)(Heart, { size: 14 })
|
|
42771
42995
|
] }),
|
|
42772
|
-
comments !== null && /* @__PURE__ */ (0,
|
|
42773
|
-
/* @__PURE__ */ (0,
|
|
42996
|
+
comments !== null && /* @__PURE__ */ (0, import_jsx_runtime172.jsxs)("div", { className: "flex items-center gap-1", children: [
|
|
42997
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsx)("span", { children: formatFollowerCount(comments) }),
|
|
42774
42998
|
" ",
|
|
42775
|
-
/* @__PURE__ */ (0,
|
|
42999
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsx)(MessageCircle, { size: 14 })
|
|
42776
43000
|
] }),
|
|
42777
|
-
views !== null && /* @__PURE__ */ (0,
|
|
42778
|
-
/* @__PURE__ */ (0,
|
|
43001
|
+
views !== null && /* @__PURE__ */ (0, import_jsx_runtime172.jsxs)("div", { className: "flex items-center gap-1", children: [
|
|
43002
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsx)("span", { children: formatFollowerCount(views) }),
|
|
42779
43003
|
" ",
|
|
42780
|
-
/* @__PURE__ */ (0,
|
|
43004
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsx)(Eye, { size: 14 })
|
|
42781
43005
|
] })
|
|
42782
43006
|
] }),
|
|
42783
|
-
/* @__PURE__ */ (0,
|
|
42784
|
-
impressions !== null && /* @__PURE__ */ (0,
|
|
42785
|
-
/* @__PURE__ */ (0,
|
|
43007
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsxs)("div", { className: "flex gap-4 text-sm text-gray800 mb-2", children: [
|
|
43008
|
+
impressions !== null && /* @__PURE__ */ (0, import_jsx_runtime172.jsxs)("div", { children: [
|
|
43009
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsx)("span", { className: "text-gray500 font-bold", children: formatFollowerCount(impressions) }),
|
|
42786
43010
|
" ",
|
|
42787
43011
|
"est.Impressions"
|
|
42788
43012
|
] }),
|
|
42789
|
-
reach !== null && /* @__PURE__ */ (0,
|
|
42790
|
-
/* @__PURE__ */ (0,
|
|
43013
|
+
reach !== null && /* @__PURE__ */ (0, import_jsx_runtime172.jsxs)("div", { children: [
|
|
43014
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsx)("span", { className: "text-gray500 font-bold", children: formatFollowerCount(reach) }),
|
|
42791
43015
|
" ",
|
|
42792
43016
|
"est.Reach"
|
|
42793
43017
|
] })
|
|
42794
43018
|
] }),
|
|
42795
|
-
/* @__PURE__ */ (0,
|
|
42796
|
-
platformUsername && /* @__PURE__ */ (0,
|
|
43019
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsxs)("div", { className: "text-sm mb-1", children: [
|
|
43020
|
+
platformUsername && /* @__PURE__ */ (0, import_jsx_runtime172.jsxs)("div", { className: "text-md font-semibold text-gray500", children: [
|
|
42797
43021
|
"@",
|
|
42798
43022
|
platformUsername
|
|
42799
43023
|
] }),
|
|
42800
43024
|
["instagram", "tiktok"].includes(
|
|
42801
43025
|
post.platform?.toLowerCase() || ""
|
|
42802
|
-
) ? /* @__PURE__ */ (0,
|
|
43026
|
+
) ? /* @__PURE__ */ (0, import_jsx_runtime172.jsx)(import_jsx_runtime172.Fragment, { children: (() => {
|
|
42803
43027
|
const text = post.title || post.description || "";
|
|
42804
|
-
return /* @__PURE__ */ (0,
|
|
42805
|
-
/* @__PURE__ */ (0,
|
|
43028
|
+
return /* @__PURE__ */ (0, import_jsx_runtime172.jsxs)(import_jsx_runtime172.Fragment, { children: [
|
|
43029
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsx)(
|
|
42806
43030
|
"div",
|
|
42807
43031
|
{
|
|
42808
43032
|
className: `text-gray900 font-light mt-2 text-sm ${!expanded ? "line-clamp-3" : ""}`,
|
|
42809
43033
|
children: text
|
|
42810
43034
|
}
|
|
42811
43035
|
),
|
|
42812
|
-
text.length > 100 && /* @__PURE__ */ (0,
|
|
43036
|
+
text.length > 100 && /* @__PURE__ */ (0, import_jsx_runtime172.jsx)(
|
|
42813
43037
|
"button",
|
|
42814
43038
|
{
|
|
42815
43039
|
onClick: (e) => {
|
|
@@ -42821,9 +43045,9 @@ function PostCard({ post, platformUsername }) {
|
|
|
42821
43045
|
}
|
|
42822
43046
|
)
|
|
42823
43047
|
] });
|
|
42824
|
-
})() }) : /* @__PURE__ */ (0,
|
|
42825
|
-
post.title && /* @__PURE__ */ (0,
|
|
42826
|
-
post.description && /* @__PURE__ */ (0,
|
|
43048
|
+
})() }) : /* @__PURE__ */ (0, import_jsx_runtime172.jsxs)(import_jsx_runtime172.Fragment, { children: [
|
|
43049
|
+
post.title && /* @__PURE__ */ (0, import_jsx_runtime172.jsx)("div", { className: "text-gray900 font-light", children: post.title }),
|
|
43050
|
+
post.description && /* @__PURE__ */ (0, import_jsx_runtime172.jsx)(
|
|
42827
43051
|
"div",
|
|
42828
43052
|
{
|
|
42829
43053
|
className: "mt-2 text-sm text-gray900 overflow-hidden font-light",
|
|
@@ -42831,7 +43055,7 @@ function PostCard({ post, platformUsername }) {
|
|
|
42831
43055
|
children: post.description
|
|
42832
43056
|
}
|
|
42833
43057
|
),
|
|
42834
|
-
post.description && post.description.length > 200 && /* @__PURE__ */ (0,
|
|
43058
|
+
post.description && post.description.length > 200 && /* @__PURE__ */ (0, import_jsx_runtime172.jsx)(
|
|
42835
43059
|
"button",
|
|
42836
43060
|
{
|
|
42837
43061
|
onClick: (e) => {
|
|
@@ -42851,7 +43075,7 @@ function PostCard({ post, platformUsername }) {
|
|
|
42851
43075
|
}
|
|
42852
43076
|
|
|
42853
43077
|
// src/molecules/creator-discovery/CreatorWidget/PlatformPostsSection.tsx
|
|
42854
|
-
var
|
|
43078
|
+
var import_jsx_runtime173 = require("react/jsx-runtime");
|
|
42855
43079
|
var formatFollowerCount2 = (count) => {
|
|
42856
43080
|
if (count >= 1e6) {
|
|
42857
43081
|
const millions = count / 1e6;
|
|
@@ -42875,21 +43099,21 @@ function PlatformMetricsBanner({
|
|
|
42875
43099
|
const platformName = getPlatformName(platform);
|
|
42876
43100
|
const bgColor = getPlatformBgColor(platform);
|
|
42877
43101
|
const IconComponent = getPlatformIcon(platform);
|
|
42878
|
-
return /* @__PURE__ */ (0,
|
|
43102
|
+
return /* @__PURE__ */ (0, import_jsx_runtime173.jsxs)(
|
|
42879
43103
|
"div",
|
|
42880
43104
|
{
|
|
42881
|
-
className: "\n
|
|
43105
|
+
className: "\r\n grid grid-cols-1 gap-3 rounded-xl py-4 px-4 shadow-sm\r\n md:flex md:overflow-x-auto md:gap-6 md:rounded-l-xl md:py-4 md:px-4 md:items-center md:gap-0 md:px-0 md:ml-8\r\n ",
|
|
42882
43106
|
style: { backgroundColor: bgColor },
|
|
42883
43107
|
children: [
|
|
42884
|
-
/* @__PURE__ */ (0,
|
|
42885
|
-
/* @__PURE__ */ (0,
|
|
42886
|
-
/* @__PURE__ */ (0,
|
|
43108
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { className: "flex flex-col items-center md:min-w-0", children: [
|
|
43109
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)(IconComponent, { className: "w-5 h-5 md:w-6 md:h-6 text-gray900" }),
|
|
43110
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("span", { className: "text-sm md:text-xl font-bold text-gray900", children: platform === "youtubeMetrics" ? formatFollowerCount2(metrics.subscribers || 0) : formatFollowerCount2(metrics.followers || 0) })
|
|
42887
43111
|
] }),
|
|
42888
|
-
/* @__PURE__ */ (0,
|
|
42889
|
-
/* @__PURE__ */ (0,
|
|
43112
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { className: "flex flex-col items-start md:min-w-0", children: [
|
|
43113
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsxs)(
|
|
42890
43114
|
"span",
|
|
42891
43115
|
{
|
|
42892
|
-
className: "text-
|
|
43116
|
+
className: "text-xs md:text-lg dark:text-white truncate cursor-default",
|
|
42893
43117
|
title: `@${platform === "youtubeMetrics" ? metrics.channelName : metrics.username}`,
|
|
42894
43118
|
children: [
|
|
42895
43119
|
"@",
|
|
@@ -42897,22 +43121,22 @@ function PlatformMetricsBanner({
|
|
|
42897
43121
|
]
|
|
42898
43122
|
}
|
|
42899
43123
|
),
|
|
42900
|
-
/* @__PURE__ */ (0,
|
|
43124
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("span", { className: "text-xs md:text-sm text-gray900 opacity-90", children: platformName })
|
|
42901
43125
|
] }),
|
|
42902
|
-
/* @__PURE__ */ (0,
|
|
42903
|
-
/* @__PURE__ */ (0,
|
|
43126
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { className: "flex flex-col items-start md:min-w-0", children: [
|
|
43127
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("span", { className: "text-xs md:text-md font-semibold text-gray900", children: [
|
|
42904
43128
|
(metrics.engagementRate * 100).toFixed(2),
|
|
42905
43129
|
"%"
|
|
42906
43130
|
] }),
|
|
42907
|
-
/* @__PURE__ */ (0,
|
|
43131
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("span", { className: "text-xs text-gray900 opacity-80", children: "Engagement Rate" })
|
|
42908
43132
|
] }),
|
|
42909
|
-
/* @__PURE__ */ (0,
|
|
42910
|
-
/* @__PURE__ */ (0,
|
|
42911
|
-
/* @__PURE__ */ (0,
|
|
43133
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { className: "flex flex-col items-start md:min-w-0", children: [
|
|
43134
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("span", { className: "text-xs md:text-md font-semibold text-gray900", children: Math.round(metrics.avgLikes)?.toLocaleString() }),
|
|
43135
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("span", { className: "text-xs text-gray900 opacity-80", children: "Avg Likes" })
|
|
42912
43136
|
] }),
|
|
42913
|
-
/* @__PURE__ */ (0,
|
|
42914
|
-
/* @__PURE__ */ (0,
|
|
42915
|
-
/* @__PURE__ */ (0,
|
|
43137
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { className: "flex flex-col items-start md:min-w-0", children: [
|
|
43138
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("span", { className: "text-xs md:text-md font-semibold text-gray900", children: Math.round(metrics.avgComments)?.toLocaleString() }),
|
|
43139
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("span", { className: "text-xs text-gray900 opacity-80", children: "Avg Comments" })
|
|
42916
43140
|
] })
|
|
42917
43141
|
]
|
|
42918
43142
|
}
|
|
@@ -42923,16 +43147,16 @@ function PlatformPostsSection({
|
|
|
42923
43147
|
posts = []
|
|
42924
43148
|
}) {
|
|
42925
43149
|
if (!platformMetrics) return null;
|
|
42926
|
-
return /* @__PURE__ */ (0,
|
|
43150
|
+
return /* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "flex flex-col gap-4", children: /* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "flex flex-col gap-8", children: Object.entries(platformMetrics || {}).map(
|
|
42927
43151
|
([platform, metrics]) => {
|
|
42928
43152
|
if (!metrics) return null;
|
|
42929
43153
|
if (metrics.followers === 0 && metrics.subscribers === 0)
|
|
42930
43154
|
return null;
|
|
42931
43155
|
const platformPosts = filterPostsByPlatform(posts, platform);
|
|
42932
43156
|
const platformUsername = metrics.username ?? metrics.channelName ?? "";
|
|
42933
|
-
return /* @__PURE__ */ (0,
|
|
42934
|
-
/* @__PURE__ */ (0,
|
|
42935
|
-
platformPosts.length > 0 && /* @__PURE__ */ (0,
|
|
43157
|
+
return /* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { className: "w-full flex flex-col gap-8", children: [
|
|
43158
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)(PlatformMetricsBanner, { platform, metrics }),
|
|
43159
|
+
platformPosts.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: " sm:ml-8 sm:pr-7", children: /* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-4", children: platformPosts.map((post, idx) => /* @__PURE__ */ (0, import_jsx_runtime173.jsx)(
|
|
42936
43160
|
PostCard,
|
|
42937
43161
|
{
|
|
42938
43162
|
post,
|
|
@@ -42946,10 +43170,10 @@ function PlatformPostsSection({
|
|
|
42946
43170
|
}
|
|
42947
43171
|
|
|
42948
43172
|
// src/molecules/creator-discovery/CreatorWidget/BrandCollaborationsList.tsx
|
|
42949
|
-
var
|
|
43173
|
+
var import_react87 = require("react");
|
|
42950
43174
|
var import_react_dom = __toESM(require("react-dom"), 1);
|
|
42951
43175
|
var import_framer_motion3 = require("framer-motion");
|
|
42952
|
-
var
|
|
43176
|
+
var import_jsx_runtime174 = require("react/jsx-runtime");
|
|
42953
43177
|
var getSentimentRank = (score) => {
|
|
42954
43178
|
if (score >= 80) {
|
|
42955
43179
|
return {
|
|
@@ -42994,8 +43218,8 @@ function BrandMentionDetails({
|
|
|
42994
43218
|
) || [];
|
|
42995
43219
|
if (typeof window === "undefined") return null;
|
|
42996
43220
|
return import_react_dom.default.createPortal(
|
|
42997
|
-
/* @__PURE__ */ (0,
|
|
42998
|
-
/* @__PURE__ */ (0,
|
|
43221
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsx)(import_framer_motion3.AnimatePresence, { mode: "sync", children: open && /* @__PURE__ */ (0, import_jsx_runtime174.jsxs)(import_jsx_runtime174.Fragment, { children: [
|
|
43222
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsx)(
|
|
42999
43223
|
import_framer_motion3.motion.div,
|
|
43000
43224
|
{
|
|
43001
43225
|
initial: { opacity: 0 },
|
|
@@ -43010,7 +43234,7 @@ function BrandMentionDetails({
|
|
|
43010
43234
|
},
|
|
43011
43235
|
"brand-overlay"
|
|
43012
43236
|
),
|
|
43013
|
-
/* @__PURE__ */ (0,
|
|
43237
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsxs)(
|
|
43014
43238
|
import_framer_motion3.motion.div,
|
|
43015
43239
|
{
|
|
43016
43240
|
initial: { opacity: 0, scale: 0.95 },
|
|
@@ -43020,42 +43244,42 @@ function BrandMentionDetails({
|
|
|
43020
43244
|
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",
|
|
43021
43245
|
onClick: (e) => e.stopPropagation(),
|
|
43022
43246
|
children: [
|
|
43023
|
-
/* @__PURE__ */ (0,
|
|
43024
|
-
/* @__PURE__ */ (0,
|
|
43247
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsxs)("div", { className: "flex justify-between items-center p-4 border-b border-gray300", children: [
|
|
43248
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsxs)("h3", { className: "text-lg font-bold text-gray900", children: [
|
|
43025
43249
|
"Brand Mention Details: ",
|
|
43026
43250
|
selectedBrand
|
|
43027
43251
|
] }),
|
|
43028
|
-
/* @__PURE__ */ (0,
|
|
43252
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsx)(
|
|
43029
43253
|
"button",
|
|
43030
43254
|
{
|
|
43031
43255
|
onClick: onClose,
|
|
43032
43256
|
className: "p-1 rounded-full hover:bg-gray200 transition-colors",
|
|
43033
|
-
children: /* @__PURE__ */ (0,
|
|
43257
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime174.jsx)(X, { className: "w-4 h-4" })
|
|
43034
43258
|
}
|
|
43035
43259
|
)
|
|
43036
43260
|
] }),
|
|
43037
|
-
/* @__PURE__ */ (0,
|
|
43038
|
-
brandStats && /* @__PURE__ */ (0,
|
|
43039
|
-
/* @__PURE__ */ (0,
|
|
43040
|
-
/* @__PURE__ */ (0,
|
|
43041
|
-
/* @__PURE__ */ (0,
|
|
43042
|
-
/* @__PURE__ */ (0,
|
|
43043
|
-
/* @__PURE__ */ (0,
|
|
43261
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsxs)("div", { className: "flex flex-col gap-6 max-h-[70vh] overflow-y-auto p-4", children: [
|
|
43262
|
+
brandStats && /* @__PURE__ */ (0, import_jsx_runtime174.jsxs)("div", { className: "bg-gray25 border-2 border-gray200 rounded-xl p-4", children: [
|
|
43263
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsx)("h3", { className: "text-lg font-bold text-gray900 mb-4", children: "Overview" }),
|
|
43264
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsxs)("div", { className: "grid grid-cols-2 gap-4", children: [
|
|
43265
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsxs)("div", { className: "bg-background rounded-lg p-3", children: [
|
|
43266
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsx)("div", { className: "text-xs text-gray600", children: "Total Mentions" }),
|
|
43267
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsx)("div", { className: "text-2xl font-bold text-gray900", children: brandStats.mentions })
|
|
43044
43268
|
] }),
|
|
43045
|
-
/* @__PURE__ */ (0,
|
|
43046
|
-
/* @__PURE__ */ (0,
|
|
43047
|
-
/* @__PURE__ */ (0,
|
|
43269
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsxs)("div", { className: "bg-background rounded-lg p-3", children: [
|
|
43270
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsx)("div", { className: "text-xs text-gray600", children: "Posts Count" }),
|
|
43271
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsx)("div", { className: "text-2xl font-bold text-gray900", children: brandStats.postCount })
|
|
43048
43272
|
] }),
|
|
43049
|
-
/* @__PURE__ */ (0,
|
|
43050
|
-
/* @__PURE__ */ (0,
|
|
43051
|
-
/* @__PURE__ */ (0,
|
|
43273
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsxs)("div", { className: "bg-background rounded-lg p-3", children: [
|
|
43274
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsx)("div", { className: "text-xs text-gray600", children: "Avg Engagement" }),
|
|
43275
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsxs)("div", { className: "text-2xl font-bold text-gray900", children: [
|
|
43052
43276
|
brandStats.averageEngagementRate?.toFixed(2),
|
|
43053
43277
|
"%"
|
|
43054
43278
|
] })
|
|
43055
43279
|
] }),
|
|
43056
|
-
/* @__PURE__ */ (0,
|
|
43057
|
-
/* @__PURE__ */ (0,
|
|
43058
|
-
/* @__PURE__ */ (0,
|
|
43280
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsxs)("div", { className: "bg-background rounded-lg p-3", children: [
|
|
43281
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsx)("div", { className: "text-xs text-gray600", children: "Effectiveness" }),
|
|
43282
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsxs)(
|
|
43059
43283
|
"div",
|
|
43060
43284
|
{
|
|
43061
43285
|
className: `text-2xl font-bold ${getSentimentRank(brandStats.effectivenessPercent).scoreColor}`,
|
|
@@ -43067,8 +43291,8 @@ function BrandMentionDetails({
|
|
|
43067
43291
|
)
|
|
43068
43292
|
] })
|
|
43069
43293
|
] }),
|
|
43070
|
-
/* @__PURE__ */ (0,
|
|
43071
|
-
(type, idx) => /* @__PURE__ */ (0,
|
|
43294
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsx)("div", { className: "mt-3 flex gap-2 flex-wrap", children: brandStats.collaborationTypes?.map(
|
|
43295
|
+
(type, idx) => /* @__PURE__ */ (0, import_jsx_runtime174.jsx)(
|
|
43072
43296
|
"span",
|
|
43073
43297
|
{
|
|
43074
43298
|
className: "px-3 py-1 rounded-md text-xs font-medium bg-[#1D4324] text-[#72E285]",
|
|
@@ -43078,55 +43302,55 @@ function BrandMentionDetails({
|
|
|
43078
43302
|
)
|
|
43079
43303
|
) })
|
|
43080
43304
|
] }),
|
|
43081
|
-
/* @__PURE__ */ (0,
|
|
43082
|
-
/* @__PURE__ */ (0,
|
|
43305
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsxs)("div", { children: [
|
|
43306
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsxs)("h3", { className: "text-lg font-bold text-gray900 mb-3", children: [
|
|
43083
43307
|
"Individual Mentions (",
|
|
43084
43308
|
brandMentions.length,
|
|
43085
43309
|
")"
|
|
43086
43310
|
] }),
|
|
43087
|
-
/* @__PURE__ */ (0,
|
|
43311
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsx)("div", { className: "flex flex-col gap-3", children: brandMentions.map((mention, index) => {
|
|
43088
43312
|
const IconComponent = getPlatformIcon(mention?.platform);
|
|
43089
|
-
return /* @__PURE__ */ (0,
|
|
43313
|
+
return /* @__PURE__ */ (0, import_jsx_runtime174.jsxs)(
|
|
43090
43314
|
"div",
|
|
43091
43315
|
{
|
|
43092
43316
|
className: "bg-gray50 border-2 border-gray200 rounded-xl p-4 hover:border-purple100 transition-colors",
|
|
43093
43317
|
children: [
|
|
43094
|
-
/* @__PURE__ */ (0,
|
|
43095
|
-
/* @__PURE__ */ (0,
|
|
43096
|
-
/* @__PURE__ */ (0,
|
|
43097
|
-
/* @__PURE__ */ (0,
|
|
43318
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsxs)("div", { className: "flex items-center justify-between mb-3", children: [
|
|
43319
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
43320
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsx)(IconComponent, { className: "w-5 h-5 text-gray900" }),
|
|
43321
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsx)("span", { className: "text-sm font-medium text-gray700 capitalize", children: mention.platform })
|
|
43098
43322
|
] }),
|
|
43099
|
-
/* @__PURE__ */ (0,
|
|
43100
|
-
/* @__PURE__ */ (0,
|
|
43101
|
-
/* @__PURE__ */ (0,
|
|
43323
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
43324
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsx)("span", { className: "px-2 py-1 rounded-md text-xs font-medium bg-[#1D4324] text-[#72E285]", children: mention.collaborationType }),
|
|
43325
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsxs)("span", { className: "text-xs text-gray600", children: [
|
|
43102
43326
|
Math.round(mention.confidence * 100),
|
|
43103
43327
|
"% confidence"
|
|
43104
43328
|
] })
|
|
43105
43329
|
] })
|
|
43106
43330
|
] }),
|
|
43107
|
-
/* @__PURE__ */ (0,
|
|
43108
|
-
/* @__PURE__ */ (0,
|
|
43331
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsxs)("div", { className: "mb-2", children: [
|
|
43332
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsxs)("span", { className: "text-xs text-gray500", children: [
|
|
43109
43333
|
"Post ID:",
|
|
43110
43334
|
" "
|
|
43111
43335
|
] }),
|
|
43112
|
-
/* @__PURE__ */ (0,
|
|
43336
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsx)("span", { className: "text-xs font-mono text-gray700", children: mention.post_id })
|
|
43113
43337
|
] }),
|
|
43114
|
-
/* @__PURE__ */ (0,
|
|
43115
|
-
/* @__PURE__ */ (0,
|
|
43116
|
-
/* @__PURE__ */ (0,
|
|
43338
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsxs)("div", { className: "bg-background rounded-lg p-3 border border-gray300", children: [
|
|
43339
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsx)("div", { className: "text-xs text-gray600 mb-1", children: "Evidence:" }),
|
|
43340
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsxs)("p", { className: "text-sm text-gray800 italic", children: [
|
|
43117
43341
|
"\u201C",
|
|
43118
43342
|
mention.evidence,
|
|
43119
43343
|
"\u201D"
|
|
43120
43344
|
] })
|
|
43121
43345
|
] }),
|
|
43122
|
-
/* @__PURE__ */ (0,
|
|
43346
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsxs)("div", { className: "mt-2 text-xs text-gray500", children: [
|
|
43123
43347
|
"Source:",
|
|
43124
43348
|
" ",
|
|
43125
|
-
/* @__PURE__ */ (0,
|
|
43126
|
-
mention.handle && /* @__PURE__ */ (0,
|
|
43349
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsx)("span", { className: "font-medium", children: mention.source }),
|
|
43350
|
+
mention.handle && /* @__PURE__ */ (0, import_jsx_runtime174.jsxs)("span", { className: "ml-2", children: [
|
|
43127
43351
|
"Handle:",
|
|
43128
43352
|
" ",
|
|
43129
|
-
/* @__PURE__ */ (0,
|
|
43353
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsx)("span", { className: "font-medium", children: mention.handle })
|
|
43130
43354
|
] })
|
|
43131
43355
|
] })
|
|
43132
43356
|
]
|
|
@@ -43135,7 +43359,7 @@ function BrandMentionDetails({
|
|
|
43135
43359
|
);
|
|
43136
43360
|
}) })
|
|
43137
43361
|
] }),
|
|
43138
|
-
brandMentions.length === 0 && /* @__PURE__ */ (0,
|
|
43362
|
+
brandMentions.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime174.jsx)("div", { className: "text-center py-8 text-gray500", children: "No mentions found for this brand" })
|
|
43139
43363
|
] })
|
|
43140
43364
|
]
|
|
43141
43365
|
},
|
|
@@ -43148,16 +43372,16 @@ function BrandMentionDetails({
|
|
|
43148
43372
|
function BrandCollaborationsList({
|
|
43149
43373
|
brandBreakdown
|
|
43150
43374
|
}) {
|
|
43151
|
-
const [openDetails, setOpenDetails] = (0,
|
|
43152
|
-
const [selectedBrand, setSelectedBrand] = (0,
|
|
43375
|
+
const [openDetails, setOpenDetails] = (0, import_react87.useState)(false);
|
|
43376
|
+
const [selectedBrand, setSelectedBrand] = (0, import_react87.useState)("");
|
|
43153
43377
|
if (!brandBreakdown?.insights?.brandBreakdown || brandBreakdown.insights.brandBreakdown.length === 0) {
|
|
43154
43378
|
return null;
|
|
43155
43379
|
}
|
|
43156
|
-
return /* @__PURE__ */ (0,
|
|
43157
|
-
/* @__PURE__ */ (0,
|
|
43158
|
-
/* @__PURE__ */ (0,
|
|
43159
|
-
/* @__PURE__ */ (0,
|
|
43160
|
-
(item, index) => /* @__PURE__ */ (0,
|
|
43380
|
+
return /* @__PURE__ */ (0, import_jsx_runtime174.jsxs)(import_jsx_runtime174.Fragment, { children: [
|
|
43381
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsxs)("div", { children: [
|
|
43382
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsx)("div", { className: "text-purpleText text-xs mb-2", children: /* @__PURE__ */ (0, import_jsx_runtime174.jsx)("span", { className: "rounded-md bg-purple200 px-2 py-[4px] font-sans", children: "BRAND MENTIONS" }) }),
|
|
43383
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsx)("div", { className: "flex flex-col gap-2 max-h-[220px] overflow-y-auto", children: brandBreakdown.insights.brandBreakdown.map(
|
|
43384
|
+
(item, index) => /* @__PURE__ */ (0, import_jsx_runtime174.jsxs)(
|
|
43161
43385
|
"div",
|
|
43162
43386
|
{
|
|
43163
43387
|
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",
|
|
@@ -43167,17 +43391,17 @@ function BrandCollaborationsList({
|
|
|
43167
43391
|
setOpenDetails(true);
|
|
43168
43392
|
},
|
|
43169
43393
|
children: [
|
|
43170
|
-
/* @__PURE__ */ (0,
|
|
43171
|
-
/* @__PURE__ */ (0,
|
|
43172
|
-
/* @__PURE__ */ (0,
|
|
43173
|
-
/* @__PURE__ */ (0,
|
|
43174
|
-
/* @__PURE__ */ (0,
|
|
43175
|
-
/* @__PURE__ */ (0,
|
|
43394
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsx)("div", { className: "w-10 h-10 rounded-full bg-gray200 flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime174.jsx)("span", { className: "text-sm font-bold text-gray700", children: item.brand?.charAt(0)?.toUpperCase() || "?" }) }),
|
|
43395
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsxs)("div", { className: "flex flex-col gap-1", children: [
|
|
43396
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsx)("div", { className: "text-gray900 text-sm", children: item.brand }),
|
|
43397
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsxs)("div", { className: "flex gap-2 text-xs text-gray600", children: [
|
|
43398
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsxs)("div", { children: [
|
|
43399
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsx)("span", { className: "text-gray900", children: item?.mentions }),
|
|
43176
43400
|
" ",
|
|
43177
43401
|
"Mention"
|
|
43178
43402
|
] }),
|
|
43179
|
-
/* @__PURE__ */ (0,
|
|
43180
|
-
/* @__PURE__ */ (0,
|
|
43403
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsxs)("div", { children: [
|
|
43404
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsx)(
|
|
43181
43405
|
"span",
|
|
43182
43406
|
{
|
|
43183
43407
|
className: `${getSentimentRank(item.effectivenessPercent).scoreColor} font-bold`,
|
|
@@ -43195,7 +43419,7 @@ function BrandCollaborationsList({
|
|
|
43195
43419
|
)
|
|
43196
43420
|
) })
|
|
43197
43421
|
] }),
|
|
43198
|
-
/* @__PURE__ */ (0,
|
|
43422
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsx)(
|
|
43199
43423
|
BrandMentionDetails,
|
|
43200
43424
|
{
|
|
43201
43425
|
open: openDetails,
|
|
@@ -43208,9 +43432,9 @@ function BrandCollaborationsList({
|
|
|
43208
43432
|
}
|
|
43209
43433
|
|
|
43210
43434
|
// src/molecules/creator-discovery/CreatorWidget/CreatorGridView.tsx
|
|
43211
|
-
var
|
|
43435
|
+
var import_react88 = require("react");
|
|
43212
43436
|
var import_framer_motion4 = require("framer-motion");
|
|
43213
|
-
var
|
|
43437
|
+
var import_jsx_runtime175 = require("react/jsx-runtime");
|
|
43214
43438
|
var formatFollowerCount3 = (count) => {
|
|
43215
43439
|
if (count >= 1e6) {
|
|
43216
43440
|
const millions = count / 1e6;
|
|
@@ -43257,25 +43481,25 @@ var itemsExplanation = [
|
|
|
43257
43481
|
{ key: "brandSafety", label: "Brand Safety" }
|
|
43258
43482
|
];
|
|
43259
43483
|
function CreatorGridViewCard({ creator }) {
|
|
43260
|
-
const [isExpanded, setIsExpanded] = (0,
|
|
43261
|
-
const [showFullDescription, setShowFullDescription] = (0,
|
|
43262
|
-
const [isDescriptionOverflowing, setIsDescriptionOverflowing] = (0,
|
|
43263
|
-
const descriptionRef = (0,
|
|
43264
|
-
const cardRef = (0,
|
|
43265
|
-
const checkDescriptionOverflow = (0,
|
|
43484
|
+
const [isExpanded, setIsExpanded] = (0, import_react88.useState)(false);
|
|
43485
|
+
const [showFullDescription, setShowFullDescription] = (0, import_react88.useState)(false);
|
|
43486
|
+
const [isDescriptionOverflowing, setIsDescriptionOverflowing] = (0, import_react88.useState)(false);
|
|
43487
|
+
const descriptionRef = (0, import_react88.useRef)(null);
|
|
43488
|
+
const cardRef = (0, import_react88.useRef)(null);
|
|
43489
|
+
const checkDescriptionOverflow = (0, import_react88.useCallback)(() => {
|
|
43266
43490
|
const el = descriptionRef.current;
|
|
43267
43491
|
if (!el) return;
|
|
43268
43492
|
setIsDescriptionOverflowing(el.scrollHeight > el.clientHeight + 1);
|
|
43269
43493
|
}, []);
|
|
43270
|
-
(0,
|
|
43494
|
+
(0, import_react88.useEffect)(() => {
|
|
43271
43495
|
checkDescriptionOverflow();
|
|
43272
43496
|
}, [checkDescriptionOverflow, isExpanded, showFullDescription]);
|
|
43273
|
-
(0,
|
|
43497
|
+
(0, import_react88.useEffect)(() => {
|
|
43274
43498
|
const onResize = () => checkDescriptionOverflow();
|
|
43275
43499
|
window.addEventListener("resize", onResize);
|
|
43276
43500
|
return () => window.removeEventListener("resize", onResize);
|
|
43277
43501
|
}, [checkDescriptionOverflow]);
|
|
43278
|
-
const platformStats = (0,
|
|
43502
|
+
const platformStats = (0, import_react88.useMemo)(() => {
|
|
43279
43503
|
return [
|
|
43280
43504
|
{
|
|
43281
43505
|
platform: "instagram",
|
|
@@ -43311,7 +43535,7 @@ function CreatorGridViewCard({ creator }) {
|
|
|
43311
43535
|
};
|
|
43312
43536
|
const iso2 = normalizeToIso2(creator.country);
|
|
43313
43537
|
const meta = codeToMeta[iso2];
|
|
43314
|
-
return /* @__PURE__ */ (0,
|
|
43538
|
+
return /* @__PURE__ */ (0, import_jsx_runtime175.jsx)(
|
|
43315
43539
|
import_framer_motion4.motion.div,
|
|
43316
43540
|
{
|
|
43317
43541
|
ref: cardRef,
|
|
@@ -43322,10 +43546,10 @@ function CreatorGridViewCard({ creator }) {
|
|
|
43322
43546
|
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" : ""}`,
|
|
43323
43547
|
style: isExpanded ? { gridColumn: "1 / -1" } : {},
|
|
43324
43548
|
onClick: toggleExpanded,
|
|
43325
|
-
children: /* @__PURE__ */ (0,
|
|
43326
|
-
/* @__PURE__ */ (0,
|
|
43327
|
-
/* @__PURE__ */ (0,
|
|
43328
|
-
creator.profile_pic ? /* @__PURE__ */ (0,
|
|
43549
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime175.jsxs)("div", { className: "flex", children: [
|
|
43550
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsxs)("div", { className: `${isExpanded ? "w-1/3" : "w-full"}`, children: [
|
|
43551
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsxs)("div", { className: "relative w-full aspect-square mb-2", children: [
|
|
43552
|
+
creator.profile_pic ? /* @__PURE__ */ (0, import_jsx_runtime175.jsx)(
|
|
43329
43553
|
"img",
|
|
43330
43554
|
{
|
|
43331
43555
|
src: creator.profile_pic,
|
|
@@ -43333,15 +43557,15 @@ function CreatorGridViewCard({ creator }) {
|
|
|
43333
43557
|
className: "w-full h-full object-cover bg-primary/10",
|
|
43334
43558
|
style: { borderRadius: "10px 10px 0 0" }
|
|
43335
43559
|
}
|
|
43336
|
-
) : /* @__PURE__ */ (0,
|
|
43560
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime175.jsx)(
|
|
43337
43561
|
"div",
|
|
43338
43562
|
{
|
|
43339
43563
|
className: "w-full h-full bg-primary/10 flex items-center justify-center",
|
|
43340
43564
|
style: { borderRadius: "10px 10px 0 0" },
|
|
43341
|
-
children: /* @__PURE__ */ (0,
|
|
43565
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime175.jsx)("span", { className: "text-2xl text-primary", children: creator.name?.charAt(0) || "?" })
|
|
43342
43566
|
}
|
|
43343
43567
|
),
|
|
43344
|
-
/* @__PURE__ */ (0,
|
|
43568
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)(
|
|
43345
43569
|
"div",
|
|
43346
43570
|
{
|
|
43347
43571
|
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`,
|
|
@@ -43349,34 +43573,34 @@ function CreatorGridViewCard({ creator }) {
|
|
|
43349
43573
|
}
|
|
43350
43574
|
)
|
|
43351
43575
|
] }),
|
|
43352
|
-
/* @__PURE__ */ (0,
|
|
43353
|
-
/* @__PURE__ */ (0,
|
|
43354
|
-
/* @__PURE__ */ (0,
|
|
43576
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsxs)("div", { className: "px-3 pb-1", children: [
|
|
43577
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsxs)("div", { children: [
|
|
43578
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)(
|
|
43355
43579
|
"h3",
|
|
43356
43580
|
{
|
|
43357
43581
|
className: `${isExpanded ? "text-md" : "text-sm"} font-normal text-gray900 mb-1 line-clamp-2 text-start`,
|
|
43358
43582
|
children: creator.name || "Unnamed"
|
|
43359
43583
|
}
|
|
43360
43584
|
),
|
|
43361
|
-
/* @__PURE__ */ (0,
|
|
43585
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsxs)(
|
|
43362
43586
|
"div",
|
|
43363
43587
|
{
|
|
43364
43588
|
className: `${isExpanded ? "text-sm" : "text-xs"} text-gray700 mb-1 text-start flex items-center gap-1`,
|
|
43365
43589
|
children: [
|
|
43366
|
-
/* @__PURE__ */ (0,
|
|
43367
|
-
/* @__PURE__ */ (0,
|
|
43590
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("span", { className: "text-base", children: meta?.flag }),
|
|
43591
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("span", { children: meta?.name || creator.country || "Unknown" })
|
|
43368
43592
|
]
|
|
43369
43593
|
}
|
|
43370
43594
|
),
|
|
43371
|
-
isExpanded && creator?.sentiment?.detailedScores && /* @__PURE__ */ (0,
|
|
43595
|
+
isExpanded && creator?.sentiment?.detailedScores && /* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: "overflow-x-auto", children: /* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: "mt-2 w-[150px] flex gap-2", children: Object.entries(creator.sentiment.detailedScores).map(
|
|
43372
43596
|
([key, value]) => {
|
|
43373
43597
|
const itemRank = getSentimentRank2(value);
|
|
43374
|
-
return /* @__PURE__ */ (0,
|
|
43598
|
+
return /* @__PURE__ */ (0, import_jsx_runtime175.jsxs)(
|
|
43375
43599
|
"div",
|
|
43376
43600
|
{
|
|
43377
43601
|
className: "flex flex-col items-center w-[100px]",
|
|
43378
43602
|
children: [
|
|
43379
|
-
/* @__PURE__ */ (0,
|
|
43603
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsxs)(
|
|
43380
43604
|
"span",
|
|
43381
43605
|
{
|
|
43382
43606
|
className: `text-[14px] font-bold ${itemRank.scoreColor}`,
|
|
@@ -43386,7 +43610,7 @@ function CreatorGridViewCard({ creator }) {
|
|
|
43386
43610
|
]
|
|
43387
43611
|
}
|
|
43388
43612
|
),
|
|
43389
|
-
/* @__PURE__ */ (0,
|
|
43613
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: "flex items-center justify-center gap-1 w-full", children: /* @__PURE__ */ (0, import_jsx_runtime175.jsx)("span", { className: "text-xs dark:text-gray500 text-center px-1", children: itemsExplanation.find(
|
|
43390
43614
|
(item) => item.key === key
|
|
43391
43615
|
)?.label }) })
|
|
43392
43616
|
]
|
|
@@ -43396,20 +43620,20 @@ function CreatorGridViewCard({ creator }) {
|
|
|
43396
43620
|
}
|
|
43397
43621
|
) }) })
|
|
43398
43622
|
] }),
|
|
43399
|
-
!isExpanded && /* @__PURE__ */ (0,
|
|
43400
|
-
({ platform, icon: Icon3, followers }) => /* @__PURE__ */ (0,
|
|
43623
|
+
!isExpanded && /* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: "flex gap-2 justify-between", children: platformStats.map(
|
|
43624
|
+
({ platform, icon: Icon3, followers }) => /* @__PURE__ */ (0, import_jsx_runtime175.jsxs)(
|
|
43401
43625
|
"div",
|
|
43402
43626
|
{
|
|
43403
43627
|
className: "flex flex-col items-center gap-1",
|
|
43404
43628
|
title: `${formatFollowerCount3(followers)} followers`,
|
|
43405
43629
|
children: [
|
|
43406
|
-
/* @__PURE__ */ (0,
|
|
43630
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)(
|
|
43407
43631
|
Icon3,
|
|
43408
43632
|
{
|
|
43409
43633
|
className: `w-5 h-5 ${getPlatformIconColor(platform)}`
|
|
43410
43634
|
}
|
|
43411
43635
|
),
|
|
43412
|
-
/* @__PURE__ */ (0,
|
|
43636
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("span", { className: "text-xs dark:text-gray500", children: followers > 0 && formatFollowerCount3(followers) })
|
|
43413
43637
|
]
|
|
43414
43638
|
},
|
|
43415
43639
|
platform
|
|
@@ -43417,20 +43641,20 @@ function CreatorGridViewCard({ creator }) {
|
|
|
43417
43641
|
) })
|
|
43418
43642
|
] })
|
|
43419
43643
|
] }),
|
|
43420
|
-
isExpanded && /* @__PURE__ */ (0,
|
|
43421
|
-
/* @__PURE__ */ (0,
|
|
43422
|
-
/* @__PURE__ */ (0,
|
|
43644
|
+
isExpanded && /* @__PURE__ */ (0, import_jsx_runtime175.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_runtime175.jsxs)("div", { className: "space-y-4", children: [
|
|
43645
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsxs)("div", { children: [
|
|
43646
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsxs)(
|
|
43423
43647
|
"div",
|
|
43424
43648
|
{
|
|
43425
43649
|
ref: descriptionRef,
|
|
43426
43650
|
className: `${showFullDescription ? "" : "max-h-[80px] overflow-hidden"} relative`,
|
|
43427
43651
|
children: [
|
|
43428
|
-
/* @__PURE__ */ (0,
|
|
43429
|
-
!showFullDescription && isDescriptionOverflowing && /* @__PURE__ */ (0,
|
|
43652
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("p", { className: "text-sm text-gray700 leading-relaxed", children: creator.description || "No description provided." }),
|
|
43653
|
+
!showFullDescription && isDescriptionOverflowing && /* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: "pointer-events-none absolute bottom-0 left-0 right-0 h-10 bg-gradient-to-t from-gray25 to-transparent" })
|
|
43430
43654
|
]
|
|
43431
43655
|
}
|
|
43432
43656
|
),
|
|
43433
|
-
(isDescriptionOverflowing || showFullDescription) && /* @__PURE__ */ (0,
|
|
43657
|
+
(isDescriptionOverflowing || showFullDescription) && /* @__PURE__ */ (0, import_jsx_runtime175.jsx)(
|
|
43434
43658
|
"button",
|
|
43435
43659
|
{
|
|
43436
43660
|
onClick: (e) => {
|
|
@@ -43442,38 +43666,38 @@ function CreatorGridViewCard({ creator }) {
|
|
|
43442
43666
|
}
|
|
43443
43667
|
)
|
|
43444
43668
|
] }),
|
|
43445
|
-
/* @__PURE__ */ (0,
|
|
43446
|
-
({ platform, icon: Icon3, followers, engagement }) => /* @__PURE__ */ (0,
|
|
43447
|
-
/* @__PURE__ */ (0,
|
|
43669
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: "flex gap-6 justify-start items-center", children: platformStats.map(
|
|
43670
|
+
({ platform, icon: Icon3, followers, engagement }) => /* @__PURE__ */ (0, import_jsx_runtime175.jsxs)("div", { className: "flex items-center gap-3", children: [
|
|
43671
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsxs)(
|
|
43448
43672
|
"div",
|
|
43449
43673
|
{
|
|
43450
43674
|
className: "flex items-center gap-1",
|
|
43451
43675
|
title: `${formatFollowerCount3(followers)} followers`,
|
|
43452
43676
|
children: [
|
|
43453
|
-
/* @__PURE__ */ (0,
|
|
43677
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)(
|
|
43454
43678
|
Icon3,
|
|
43455
43679
|
{
|
|
43456
43680
|
className: `w-5 h-5 ${getPlatformIconColor(platform)}`
|
|
43457
43681
|
}
|
|
43458
43682
|
),
|
|
43459
|
-
/* @__PURE__ */ (0,
|
|
43683
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("span", { className: "text-xs dark:text-gray500", children: followers > 0 ? formatFollowerCount3(followers) : "0" })
|
|
43460
43684
|
]
|
|
43461
43685
|
}
|
|
43462
43686
|
),
|
|
43463
|
-
/* @__PURE__ */ (0,
|
|
43464
|
-
/* @__PURE__ */ (0,
|
|
43465
|
-
/* @__PURE__ */ (0,
|
|
43687
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsxs)("div", { className: "flex items-center gap-1", children: [
|
|
43688
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)(ChartColumn, { className: "w-5 h-5 dark:text-gray500" }),
|
|
43689
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsxs)("span", { className: "text-sm dark:text-gray500 w-[40px]", children: [
|
|
43466
43690
|
(engagement * 100).toFixed(1),
|
|
43467
43691
|
"%"
|
|
43468
43692
|
] })
|
|
43469
43693
|
] })
|
|
43470
43694
|
] }, platform)
|
|
43471
43695
|
) }),
|
|
43472
|
-
creator.posts?.length > 0 && /* @__PURE__ */ (0,
|
|
43473
|
-
/* @__PURE__ */ (0,
|
|
43474
|
-
/* @__PURE__ */ (0,
|
|
43696
|
+
creator.posts?.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime175.jsxs)("div", { className: "w-full overflow-hidden", children: [
|
|
43697
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("h3", { className: "mb-2 text-sm font-medium text-gray900", children: "Recent Posts" }),
|
|
43698
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("div", { className: "flex gap-3 overflow-x-auto", children: creator.posts.filter(
|
|
43475
43699
|
(post) => post.thumbnail || post.thumbnail_url
|
|
43476
|
-
).slice(0, 8).map((post, idx) => /* @__PURE__ */ (0,
|
|
43700
|
+
).slice(0, 8).map((post, idx) => /* @__PURE__ */ (0, import_jsx_runtime175.jsx)(
|
|
43477
43701
|
"a",
|
|
43478
43702
|
{
|
|
43479
43703
|
href: post.url || "#",
|
|
@@ -43481,7 +43705,7 @@ function CreatorGridViewCard({ creator }) {
|
|
|
43481
43705
|
rel: "noopener noreferrer",
|
|
43482
43706
|
className: "block flex-shrink-0",
|
|
43483
43707
|
onClick: (e) => e.stopPropagation(),
|
|
43484
|
-
children: /* @__PURE__ */ (0,
|
|
43708
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime175.jsx)(
|
|
43485
43709
|
"img",
|
|
43486
43710
|
{
|
|
43487
43711
|
src: post.thumbnail_url || post.thumbnail,
|
|
@@ -43493,9 +43717,9 @@ function CreatorGridViewCard({ creator }) {
|
|
|
43493
43717
|
idx
|
|
43494
43718
|
)) })
|
|
43495
43719
|
] }),
|
|
43496
|
-
creator?.sentiment?.aiReasoning && /* @__PURE__ */ (0,
|
|
43497
|
-
/* @__PURE__ */ (0,
|
|
43498
|
-
/* @__PURE__ */ (0,
|
|
43720
|
+
creator?.sentiment?.aiReasoning && /* @__PURE__ */ (0, import_jsx_runtime175.jsxs)("div", { className: "text-gray700 max-h-[200px] overflow-auto", children: [
|
|
43721
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("h4", { className: "font-semibold text-sm", children: "AI Analysis" }),
|
|
43722
|
+
/* @__PURE__ */ (0, import_jsx_runtime175.jsx)("p", { className: "text-sm", children: creator.sentiment.aiReasoning })
|
|
43499
43723
|
] })
|
|
43500
43724
|
] }) })
|
|
43501
43725
|
] })
|
|
@@ -43505,11 +43729,11 @@ function CreatorGridViewCard({ creator }) {
|
|
|
43505
43729
|
function CreatorGridView({
|
|
43506
43730
|
creatorData
|
|
43507
43731
|
}) {
|
|
43508
|
-
return /* @__PURE__ */ (0,
|
|
43732
|
+
return /* @__PURE__ */ (0, import_jsx_runtime175.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_runtime175.jsx)(CreatorGridViewCard, { creator }, creator._id)) });
|
|
43509
43733
|
}
|
|
43510
43734
|
|
|
43511
43735
|
// src/molecules/creator-discovery/CreatorWidget/CreatorExpandedPanel.tsx
|
|
43512
|
-
var
|
|
43736
|
+
var import_jsx_runtime176 = require("react/jsx-runtime");
|
|
43513
43737
|
var formatFollowerCount4 = (count) => {
|
|
43514
43738
|
if (count >= 1e6) {
|
|
43515
43739
|
const millions = count / 1e6;
|
|
@@ -43603,12 +43827,12 @@ function SearchSpecDisplay({ spec }) {
|
|
|
43603
43827
|
{
|
|
43604
43828
|
key: "platforms",
|
|
43605
43829
|
title: "Platforms",
|
|
43606
|
-
content: /* @__PURE__ */ (0,
|
|
43830
|
+
content: /* @__PURE__ */ (0, import_jsx_runtime176.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_runtime176.jsx)("span", { className: `${tagClass} flex items-center justify-center`, children: p.charAt(0).toUpperCase() + p.slice(1).toLowerCase() }, idx)) })
|
|
43607
43831
|
},
|
|
43608
43832
|
{
|
|
43609
43833
|
key: "follower_range",
|
|
43610
43834
|
title: "Follower Range",
|
|
43611
|
-
content: /* @__PURE__ */ (0,
|
|
43835
|
+
content: /* @__PURE__ */ (0, import_jsx_runtime176.jsxs)("div", { className: `inline-block ${tagClass} font-grotesk`, children: [
|
|
43612
43836
|
formatFollowerCount4(spec?.follower_range?.min ?? 0),
|
|
43613
43837
|
" -",
|
|
43614
43838
|
" ",
|
|
@@ -43618,7 +43842,7 @@ function SearchSpecDisplay({ spec }) {
|
|
|
43618
43842
|
{
|
|
43619
43843
|
key: "geography",
|
|
43620
43844
|
title: "Geography",
|
|
43621
|
-
content: /* @__PURE__ */ (0,
|
|
43845
|
+
content: /* @__PURE__ */ (0, import_jsx_runtime176.jsx)("div", { className: `inline-block ${tagClass} font-grotesk`, children: /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(
|
|
43622
43846
|
"div",
|
|
43623
43847
|
{
|
|
43624
43848
|
className: "max-w-[200px] overflow-x-auto whitespace-nowrap",
|
|
@@ -43632,7 +43856,7 @@ function SearchSpecDisplay({ spec }) {
|
|
|
43632
43856
|
e.currentTarget.style.overflow = "hidden";
|
|
43633
43857
|
e.currentTarget.scrollLeft = 0;
|
|
43634
43858
|
},
|
|
43635
|
-
children: (spec.geography || []).map((g, idx) => /* @__PURE__ */ (0,
|
|
43859
|
+
children: (spec.geography || []).map((g, idx) => /* @__PURE__ */ (0, import_jsx_runtime176.jsxs)("span", { children: [
|
|
43636
43860
|
g,
|
|
43637
43861
|
idx < spec.geography.length - 1 ? ", " : ""
|
|
43638
43862
|
] }, idx))
|
|
@@ -43642,13 +43866,13 @@ function SearchSpecDisplay({ spec }) {
|
|
|
43642
43866
|
{
|
|
43643
43867
|
key: "keyword_bundles",
|
|
43644
43868
|
title: "Keyword",
|
|
43645
|
-
content: /* @__PURE__ */ (0,
|
|
43869
|
+
content: /* @__PURE__ */ (0, import_jsx_runtime176.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_runtime176.jsx)("div", { className: `${textClass} text-white/70`, children: "No priority 1 keywords" }) : priorityOneBundles.map((kw, idx) => /* @__PURE__ */ (0, import_jsx_runtime176.jsx)("span", { className: tagClass, children: kw }, idx)) })
|
|
43646
43870
|
}
|
|
43647
43871
|
];
|
|
43648
43872
|
const itemsToShow = ["platforms", "follower_range", "geography", "keyword_bundles"];
|
|
43649
|
-
return /* @__PURE__ */ (0,
|
|
43650
|
-
/* @__PURE__ */ (0,
|
|
43651
|
-
/* @__PURE__ */ (0,
|
|
43873
|
+
return /* @__PURE__ */ (0, import_jsx_runtime176.jsx)("div", { className: "mt-3", children: /* @__PURE__ */ (0, import_jsx_runtime176.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_runtime176.jsxs)("div", { className: "flex-none p-5 bg-paperBackground rounded-lg", children: [
|
|
43874
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)("div", { className: "text-purpleText text-sm mb-4", children: /* @__PURE__ */ (0, import_jsx_runtime176.jsx)("span", { className: "rounded-md bg-purple200 px-2 py-[4px] font-sans", children: title.toUpperCase() }) }),
|
|
43875
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)("div", { className: `flex text-gray900 ${textClass}`, children: content })
|
|
43652
43876
|
] }, key)) }) });
|
|
43653
43877
|
}
|
|
43654
43878
|
function SentimentScoreRank({
|
|
@@ -43657,16 +43881,16 @@ function SentimentScoreRank({
|
|
|
43657
43881
|
showMinialView = false
|
|
43658
43882
|
}) {
|
|
43659
43883
|
const sentimentScoreRank = getSentimentRank3(score);
|
|
43660
|
-
return /* @__PURE__ */ (0,
|
|
43661
|
-
score !== void 0 && /* @__PURE__ */ (0,
|
|
43884
|
+
return /* @__PURE__ */ (0, import_jsx_runtime176.jsx)("div", { className: "flex flex-col items-center", children: /* @__PURE__ */ (0, import_jsx_runtime176.jsxs)("div", { className: `flex flex-col justify-end ${showMinialView ? "w-[120px]" : "w-[150px]"} text-sm`, children: [
|
|
43885
|
+
score !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime176.jsx)("div", { className: "flex justify-center items-center mb-2", children: /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(
|
|
43662
43886
|
"span",
|
|
43663
43887
|
{
|
|
43664
43888
|
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]"}`,
|
|
43665
43889
|
children: isValidationComplete ? sentimentScoreRank.rank : "Unranked"
|
|
43666
43890
|
}
|
|
43667
43891
|
) }),
|
|
43668
|
-
/* @__PURE__ */ (0,
|
|
43669
|
-
!showMinialView && /* @__PURE__ */ (0,
|
|
43892
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.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_runtime176.jsx)("div", { className: "flex items-center justify-center py-2", children: /* @__PURE__ */ (0, import_jsx_runtime176.jsx)("div", { className: "w-6 h-6 border-2 border-purple100 border-t-transparent rounded-full animate-spin" }) }) }),
|
|
43893
|
+
!showMinialView && /* @__PURE__ */ (0, import_jsx_runtime176.jsx)("p", { className: "text-gray600 dark:text-gray500 text-center", children: "Match Score" })
|
|
43670
43894
|
] }) });
|
|
43671
43895
|
}
|
|
43672
43896
|
function BrandMentionPerformance({ creator }) {
|
|
@@ -43681,34 +43905,46 @@ function BrandMentionPerformance({ creator }) {
|
|
|
43681
43905
|
{ title: "Effectiveness", subtitle: "compared to all posts", value: `${insights?.effectivenessPercent || 0} %` },
|
|
43682
43906
|
{ title: "Saturation Rate", subtitle: "on brand mention", value: `${insights?.saturationRate || 0} %` }
|
|
43683
43907
|
];
|
|
43684
|
-
return /* @__PURE__ */ (0,
|
|
43685
|
-
/* @__PURE__ */ (0,
|
|
43686
|
-
/* @__PURE__ */ (0,
|
|
43687
|
-
/* @__PURE__ */ (0,
|
|
43688
|
-
/* @__PURE__ */ (0,
|
|
43689
|
-
/* @__PURE__ */ (0,
|
|
43908
|
+
return /* @__PURE__ */ (0, import_jsx_runtime176.jsxs)("div", { children: [
|
|
43909
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)("div", { className: "text-purpleText text-xs mb-4", children: /* @__PURE__ */ (0, import_jsx_runtime176.jsx)("span", { className: "rounded-md bg-purple200 px-2 py-[4px] font-sans", children: "BRAND MENTION PERFORMANCE" }) }),
|
|
43910
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)("div", { className: "flex flex-col gap-3", children: metrics.map((item) => /* @__PURE__ */ (0, import_jsx_runtime176.jsxs)("div", { className: "flex justify-between items-center text-gray700 text-sm", children: [
|
|
43911
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsxs)("div", { className: "flex flex-col gap-1", children: [
|
|
43912
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)("h5", { children: item.title }),
|
|
43913
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)("p", { className: "text-xs", children: item.subtitle })
|
|
43690
43914
|
] }),
|
|
43691
|
-
/* @__PURE__ */ (0,
|
|
43915
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)("p", { className: "text-purpleText text-lg", children: item.value })
|
|
43692
43916
|
] }, item.title)) })
|
|
43693
43917
|
] });
|
|
43694
43918
|
}
|
|
43695
43919
|
function CreatorFitSummary({ creator, showBrandPerformance }) {
|
|
43920
|
+
const [contentExpanded, setContentExpanded] = (0, import_react89.useState)(false);
|
|
43696
43921
|
const hasDeepAnalysis = creator?.sentiment?.deepAnalysis?.deepAnalysis;
|
|
43697
43922
|
const title = hasDeepAnalysis ? "CREATOR DEEP ANALYSIS" : "CREATOR FIT SUMMARY";
|
|
43698
43923
|
const content = hasDeepAnalysis ? creator.sentiment.deepAnalysis.deepAnalysis : creator?.sentiment?.aiReasoning || "No data available.";
|
|
43699
|
-
return /* @__PURE__ */ (0,
|
|
43700
|
-
/* @__PURE__ */ (0,
|
|
43701
|
-
/* @__PURE__ */ (0,
|
|
43924
|
+
return /* @__PURE__ */ (0, import_jsx_runtime176.jsxs)("div", { className: `${showBrandPerformance ? "md:col-span-1" : "md:col-span-2"} col-span-1`, children: [
|
|
43925
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)("div", { className: "text-purpleText text-xs mb-4", children: /* @__PURE__ */ (0, import_jsx_runtime176.jsx)("span", { className: "rounded-md bg-purple200 px-2 py-[4px] font-sans", children: title }) }),
|
|
43926
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)(
|
|
43927
|
+
"div",
|
|
43928
|
+
{
|
|
43929
|
+
onClick: (e) => {
|
|
43930
|
+
e.stopPropagation();
|
|
43931
|
+
setContentExpanded(!contentExpanded);
|
|
43932
|
+
},
|
|
43933
|
+
className: `cursor-pointer ${!contentExpanded ? "max-h-[140px] overflow-hidden md:overflow-y-auto md:max-h-none" : "overflow-y-auto"} slim-scrollbar`,
|
|
43934
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime176.jsx)("p", { className: `text-gray700 text-sm ${!contentExpanded ? "line-clamp-3 md:line-clamp-none" : ""}`, children: content })
|
|
43935
|
+
}
|
|
43936
|
+
)
|
|
43702
43937
|
] });
|
|
43703
43938
|
}
|
|
43704
43939
|
function ProfileSection({ creator, isValidationComplete }) {
|
|
43940
|
+
const [descriptionExpanded, setDescriptionExpanded] = (0, import_react89.useState)(false);
|
|
43705
43941
|
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}` : "";
|
|
43706
43942
|
const iso2 = normalizeToIso2(creator.country);
|
|
43707
43943
|
const meta = codeToMeta[iso2];
|
|
43708
|
-
return /* @__PURE__ */ (0,
|
|
43709
|
-
/* @__PURE__ */ (0,
|
|
43710
|
-
/* @__PURE__ */ (0,
|
|
43711
|
-
/* @__PURE__ */ (0,
|
|
43944
|
+
return /* @__PURE__ */ (0, import_jsx_runtime176.jsxs)("div", { className: "flex flex-col md:flex-row items-start gap-1 md:gap-6", children: [
|
|
43945
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsxs)("div", { className: "flex flex-col items-center gap-6", children: [
|
|
43946
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.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_runtime176.jsxs)(import_jsx_runtime176.Fragment, { children: [
|
|
43947
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)(
|
|
43712
43948
|
"img",
|
|
43713
43949
|
{
|
|
43714
43950
|
src: creator.profile_pic,
|
|
@@ -43716,24 +43952,37 @@ function ProfileSection({ creator, isValidationComplete }) {
|
|
|
43716
43952
|
className: "object-cover w-[5rem] h-[5rem] rounded-[15px]"
|
|
43717
43953
|
}
|
|
43718
43954
|
),
|
|
43719
|
-
creator?.profile?.isVerified && /* @__PURE__ */ (0,
|
|
43955
|
+
creator?.profile?.isVerified && /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(
|
|
43720
43956
|
BadgeCheck,
|
|
43721
43957
|
{
|
|
43722
43958
|
size: 35,
|
|
43723
43959
|
className: "absolute -top-2 -right-2 text-blue-500 drop-shadow-sm fill-blue-300"
|
|
43724
43960
|
}
|
|
43725
43961
|
)
|
|
43726
|
-
] }) : /* @__PURE__ */ (0,
|
|
43727
|
-
/* @__PURE__ */ (0,
|
|
43962
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime176.jsx)("span", { className: "text-2xl text-primary", children: creator.name?.charAt(0) || "?" }) }),
|
|
43963
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)("div", { className: "block sm:hidden", children: /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(SentimentScoreRank, { score: creator?.sentiment?.matchScore || -1, isValidationComplete, showMinialView: true }) })
|
|
43728
43964
|
] }),
|
|
43729
|
-
/* @__PURE__ */ (0,
|
|
43730
|
-
/* @__PURE__ */ (0,
|
|
43731
|
-
username && /* @__PURE__ */ (0,
|
|
43732
|
-
/* @__PURE__ */ (0,
|
|
43733
|
-
/* @__PURE__ */ (0,
|
|
43734
|
-
/* @__PURE__ */ (0,
|
|
43965
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsxs)("div", { className: "flex flex-col gap-3 truncate min-w-0", children: [
|
|
43966
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)("div", { className: "flex items-center gap-2 min-w-0", children: /* @__PURE__ */ (0, import_jsx_runtime176.jsx)("h4", { className: "text-lg text-gray900 max-w-[220px] sm:max-w-[150px] truncate", title: creator.name, children: truncateName2(creator.name, 100) }) }),
|
|
43967
|
+
username && /* @__PURE__ */ (0, import_jsx_runtime176.jsx)("div", { className: "text-xs text-gray700 truncate", children: username }),
|
|
43968
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsxs)("div", { className: "text-sm text-gray700 flex items-center gap-2 min-w-0", children: [
|
|
43969
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)("span", { className: "text-base flex-shrink-0", children: meta?.flag }),
|
|
43970
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)("span", { className: "truncate", children: meta?.name || creator.country || "Unknown" })
|
|
43735
43971
|
] }),
|
|
43736
|
-
/* @__PURE__ */ (0,
|
|
43972
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsxs)("div", { className: "flex flex-col gap-1 min-w-0", children: [
|
|
43973
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)("div", { className: `text-xs text-gray700 ${!descriptionExpanded ? "line-clamp-2 whitespace-nowrap md:whitespace-normal md:line-clamp-none" : "whitespace-normal"}`, children: creator.description }),
|
|
43974
|
+
creator.description && /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(
|
|
43975
|
+
"button",
|
|
43976
|
+
{
|
|
43977
|
+
onClick: (e) => {
|
|
43978
|
+
e.stopPropagation();
|
|
43979
|
+
setDescriptionExpanded(!descriptionExpanded);
|
|
43980
|
+
},
|
|
43981
|
+
className: "md:hidden text-xs text-purple600 font-medium hover:text-purple700 text-left w-fit",
|
|
43982
|
+
children: descriptionExpanded ? "Read Less" : "Read More"
|
|
43983
|
+
}
|
|
43984
|
+
)
|
|
43985
|
+
] })
|
|
43737
43986
|
] })
|
|
43738
43987
|
] });
|
|
43739
43988
|
}
|
|
@@ -43741,35 +43990,35 @@ function CreatorCardExpandedSection({
|
|
|
43741
43990
|
creator
|
|
43742
43991
|
}) {
|
|
43743
43992
|
const hasBrandBreakdown = creator?.brandCollaborations?.insights?.brandBreakdown && creator?.sentiment?.deepAnalysis;
|
|
43744
|
-
return /* @__PURE__ */ (0,
|
|
43993
|
+
return /* @__PURE__ */ (0, import_jsx_runtime176.jsxs)(
|
|
43745
43994
|
import_framer_motion5.motion.div,
|
|
43746
43995
|
{
|
|
43747
43996
|
initial: { y: 20, opacity: 0 },
|
|
43748
43997
|
animate: { y: 0, opacity: 1 },
|
|
43749
43998
|
transition: { duration: 0.3, delay: 0.1 },
|
|
43750
|
-
className: "md:mt-6 space-y-5",
|
|
43999
|
+
className: "md:mt-6 space-y-5 px-4 md:px-0",
|
|
43751
44000
|
children: [
|
|
43752
|
-
/* @__PURE__ */ (0,
|
|
43753
|
-
/* @__PURE__ */ (0,
|
|
44001
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsxs)("div", { className: "flex flex-col md:grid md:grid-cols-[1.3fr_1fr_2fr_120px] gap-4 md:gap-8 py-4 md:pr-7", children: [
|
|
44002
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)("div", { className: "col-span-1 md:col-span-1", children: hasBrandBreakdown ? /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(
|
|
43754
44003
|
BrandCollaborationsList,
|
|
43755
44004
|
{
|
|
43756
44005
|
brandBreakdown: creator?.brandCollaborations
|
|
43757
44006
|
}
|
|
43758
|
-
) : /* @__PURE__ */ (0,
|
|
43759
|
-
/* @__PURE__ */ (0,
|
|
44007
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime176.jsx)("div", { className: "hidden md:block" }) }),
|
|
44008
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)("div", { className: "col-span-1 md:col-span-3", children: creator?.audienceDemographics ? /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(
|
|
43760
44009
|
EngagedAudienceDemographics,
|
|
43761
44010
|
{
|
|
43762
44011
|
audienceDemographics: creator.audienceDemographics
|
|
43763
44012
|
}
|
|
43764
44013
|
) : null })
|
|
43765
44014
|
] }),
|
|
43766
|
-
/* @__PURE__ */ (0,
|
|
44015
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)("div", { className: "overflow-x-auto -mx-4 md:mx-0 px-4 md:px-0", children: /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(
|
|
43767
44016
|
PlatformPostsSection,
|
|
43768
44017
|
{
|
|
43769
44018
|
platformMetrics: creator.platformMetrics,
|
|
43770
44019
|
posts: creator.posts ?? creator.post
|
|
43771
44020
|
}
|
|
43772
|
-
)
|
|
44021
|
+
) })
|
|
43773
44022
|
]
|
|
43774
44023
|
}
|
|
43775
44024
|
);
|
|
@@ -43778,14 +44027,14 @@ function CreatorCard({
|
|
|
43778
44027
|
creator,
|
|
43779
44028
|
isValidationComplete
|
|
43780
44029
|
}) {
|
|
43781
|
-
const [detailsExpanded, setDetailsExpanded] = (0,
|
|
44030
|
+
const [detailsExpanded, setDetailsExpanded] = (0, import_react89.useState)(false);
|
|
43782
44031
|
const hasValidBrandMention = (() => {
|
|
43783
44032
|
const insights = creator?.brandCollaborations?.insights;
|
|
43784
44033
|
if (!insights) return false;
|
|
43785
44034
|
const isValid2 = (val) => val !== null && val !== void 0 && val !== 0 && val !== "0" && val !== "" && !Number.isNaN(val);
|
|
43786
44035
|
return isValid2(insights.averageBrandEngagementRate) || isValid2(insights.effectivenessPercent) || isValid2(insights.saturationRate);
|
|
43787
44036
|
})();
|
|
43788
|
-
return /* @__PURE__ */ (0,
|
|
44037
|
+
return /* @__PURE__ */ (0, import_jsx_runtime176.jsxs)(
|
|
43789
44038
|
import_framer_motion5.motion.div,
|
|
43790
44039
|
{
|
|
43791
44040
|
layout: true,
|
|
@@ -43793,23 +44042,23 @@ function CreatorCard({
|
|
|
43793
44042
|
animate: { opacity: 1, y: 0 },
|
|
43794
44043
|
exit: { opacity: 0, y: -20 },
|
|
43795
44044
|
transition: { duration: 0.4, ease: [0.22, 1, 0.36, 1] },
|
|
43796
|
-
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"}`,
|
|
44045
|
+
className: `flex flex-col bg-paperBackground rounded-[25px] py-5 px-4 md:pl-7 border-2 shadow-sm cursor-pointer transition-all ${detailsExpanded ? "border-purple100" : "border-gray300"}`,
|
|
43797
44046
|
onClick: () => setDetailsExpanded((prev) => !prev),
|
|
43798
44047
|
children: [
|
|
43799
|
-
/* @__PURE__ */ (0,
|
|
43800
|
-
/* @__PURE__ */ (0,
|
|
43801
|
-
hasValidBrandMention && /* @__PURE__ */ (0,
|
|
43802
|
-
/* @__PURE__ */ (0,
|
|
43803
|
-
/* @__PURE__ */ (0,
|
|
44048
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsxs)("div", { className: "flex flex-col gap-4 md:grid md:grid-cols-[1.3fr_1fr_2fr_120px] gap-4 md:gap-8 items-start w-full md:pr-7 overflow-hidden", children: [
|
|
44049
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)(ProfileSection, { creator, isValidationComplete }),
|
|
44050
|
+
hasValidBrandMention && /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(BrandMentionPerformance, { creator }),
|
|
44051
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)(CreatorFitSummary, { creator, showBrandPerformance: hasValidBrandMention }),
|
|
44052
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)("div", { className: "hidden md:block", children: /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(SentimentScoreRank, { score: creator?.sentiment?.matchScore || -1, isValidationComplete }) })
|
|
43804
44053
|
] }),
|
|
43805
|
-
/* @__PURE__ */ (0,
|
|
44054
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)(import_framer_motion5.AnimatePresence, { children: detailsExpanded && /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(
|
|
43806
44055
|
import_framer_motion5.motion.div,
|
|
43807
44056
|
{
|
|
43808
44057
|
initial: { height: 0, opacity: 0 },
|
|
43809
44058
|
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 } } },
|
|
43810
44059
|
exit: { height: 0, opacity: 0, transition: { height: { duration: 0.3, ease: [0.04, 0.62, 0.23, 0.98] }, opacity: { duration: 0.2 } } },
|
|
43811
44060
|
className: "overflow-hidden mt-4",
|
|
43812
|
-
children: /* @__PURE__ */ (0,
|
|
44061
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(CreatorCardExpandedSection, { creator })
|
|
43813
44062
|
}
|
|
43814
44063
|
) })
|
|
43815
44064
|
]
|
|
@@ -43820,19 +44069,19 @@ function CreatorDisplay({
|
|
|
43820
44069
|
creators,
|
|
43821
44070
|
isValidationComplete
|
|
43822
44071
|
}) {
|
|
43823
|
-
const [viewMode, setViewMode] = (0,
|
|
43824
|
-
return /* @__PURE__ */ (0,
|
|
43825
|
-
/* @__PURE__ */ (0,
|
|
43826
|
-
/* @__PURE__ */ (0,
|
|
44072
|
+
const [viewMode, setViewMode] = (0, import_react89.useState)("list");
|
|
44073
|
+
return /* @__PURE__ */ (0, import_jsx_runtime176.jsxs)("div", { className: "px-4", children: [
|
|
44074
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsxs)("div", { className: "flex justify-end items-center my-3 gap-1", children: [
|
|
44075
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsxs)("span", { className: "text-xs text-gray600 mr-2", children: [
|
|
43827
44076
|
creators.length,
|
|
43828
44077
|
" creators"
|
|
43829
44078
|
] }),
|
|
43830
|
-
/* @__PURE__ */ (0,
|
|
44079
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)(
|
|
43831
44080
|
"button",
|
|
43832
44081
|
{
|
|
43833
|
-
className: `h-7 w-7
|
|
44082
|
+
className: `hidden md:flex h-7 w-7 items-center justify-center rounded ${viewMode === "list" ? "bg-gray200" : ""}`,
|
|
43834
44083
|
onClick: () => setViewMode("list"),
|
|
43835
|
-
children: /* @__PURE__ */ (0,
|
|
44084
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(
|
|
43836
44085
|
AlignJustify,
|
|
43837
44086
|
{
|
|
43838
44087
|
className: `h-5 w-5 ${viewMode === "list" ? "text-gray900 dark:text-white" : "text-gray500"}`
|
|
@@ -43840,12 +44089,12 @@ function CreatorDisplay({
|
|
|
43840
44089
|
)
|
|
43841
44090
|
}
|
|
43842
44091
|
),
|
|
43843
|
-
/* @__PURE__ */ (0,
|
|
44092
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)(
|
|
43844
44093
|
"button",
|
|
43845
44094
|
{
|
|
43846
|
-
className: `h-7 w-7
|
|
44095
|
+
className: `hidden md:flex h-7 w-7 items-center justify-center rounded ${viewMode === "grid" ? "bg-gray200" : ""}`,
|
|
43847
44096
|
onClick: () => setViewMode("grid"),
|
|
43848
|
-
children: /* @__PURE__ */ (0,
|
|
44097
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(
|
|
43849
44098
|
LayoutGrid,
|
|
43850
44099
|
{
|
|
43851
44100
|
className: `h-5 w-5 ${viewMode === "grid" ? "text-gray900 dark:text-white" : "text-gray500"}`
|
|
@@ -43854,43 +44103,43 @@ function CreatorDisplay({
|
|
|
43854
44103
|
}
|
|
43855
44104
|
)
|
|
43856
44105
|
] }),
|
|
43857
|
-
creators.length > 0 ? viewMode === "list" ? /* @__PURE__ */ (0,
|
|
43858
|
-
/* @__PURE__ */ (0,
|
|
43859
|
-
/* @__PURE__ */ (0,
|
|
43860
|
-
/* @__PURE__ */ (0,
|
|
44106
|
+
creators.length > 0 ? viewMode === "list" ? /* @__PURE__ */ (0, import_jsx_runtime176.jsx)("div", { className: "space-y-4", children: creators.map((creator) => /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(CreatorCard, { creator, isValidationComplete }, creator._id)) }) : /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(CreatorGridView, { creatorData: creators }) : /* @__PURE__ */ (0, import_jsx_runtime176.jsxs)("div", { className: "text-center py-8 bg-gray100 rounded-lg border border-gray300", children: [
|
|
44107
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.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_runtime176.jsx)(Users, { className: "w-6 h-6 text-primary" }) }),
|
|
44108
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)("h3", { className: "text-base font-medium text-gray900", children: "No creators found" }),
|
|
44109
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)("p", { className: "mt-1 text-sm text-gray600", children: "Try adjusting your search criteria" })
|
|
43861
44110
|
] })
|
|
43862
44111
|
] });
|
|
43863
44112
|
}
|
|
43864
44113
|
function CreatorCardSkeleton() {
|
|
43865
|
-
return /* @__PURE__ */ (0,
|
|
43866
|
-
/* @__PURE__ */ (0,
|
|
43867
|
-
/* @__PURE__ */ (0,
|
|
43868
|
-
/* @__PURE__ */ (0,
|
|
43869
|
-
/* @__PURE__ */ (0,
|
|
43870
|
-
/* @__PURE__ */ (0,
|
|
43871
|
-
/* @__PURE__ */ (0,
|
|
43872
|
-
/* @__PURE__ */ (0,
|
|
44114
|
+
return /* @__PURE__ */ (0, import_jsx_runtime176.jsx)("div", { className: "bg-paperBackground rounded-[25px] py-5 px-4 md:pl-7 md:pr-7 border-2 border-gray300 shadow-sm", children: /* @__PURE__ */ (0, import_jsx_runtime176.jsxs)("div", { className: "flex flex-col gap-4 md:grid md:grid-cols-[1.3fr_1fr_2fr_120px] gap-4 md:gap-8 items-start w-full", children: [
|
|
44115
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsxs)("div", { className: "flex flex-col md:grid md:grid-cols-[auto_1fr] items-start gap-1 md:gap-6", children: [
|
|
44116
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)("div", { className: "w-[5rem] h-[5rem] rounded-[10px] bg-gray200 animate-pulse" }),
|
|
44117
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsxs)("div", { className: "flex flex-col gap-3", children: [
|
|
44118
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)("div", { className: "h-5 w-36 rounded bg-gray200 animate-pulse" }),
|
|
44119
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)("div", { className: "h-3 w-24 rounded bg-gray200 animate-pulse" }),
|
|
44120
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)("div", { className: "h-3 w-32 rounded bg-gray200 animate-pulse" }),
|
|
44121
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)("div", { className: "h-3 w-44 rounded bg-gray200 animate-pulse" })
|
|
43873
44122
|
] })
|
|
43874
44123
|
] }),
|
|
43875
|
-
/* @__PURE__ */ (0,
|
|
43876
|
-
/* @__PURE__ */ (0,
|
|
43877
|
-
/* @__PURE__ */ (0,
|
|
43878
|
-
/* @__PURE__ */ (0,
|
|
44124
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsxs)("div", { className: "space-y-3 w-full", children: [
|
|
44125
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)("div", { className: "h-4 w-32 rounded bg-gray200 animate-pulse" }),
|
|
44126
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)("div", { className: "h-4 w-28 rounded bg-gray200 animate-pulse" }),
|
|
44127
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)("div", { className: "h-4 w-24 rounded bg-gray200 animate-pulse" })
|
|
43879
44128
|
] }),
|
|
43880
|
-
/* @__PURE__ */ (0,
|
|
43881
|
-
/* @__PURE__ */ (0,
|
|
43882
|
-
/* @__PURE__ */ (0,
|
|
43883
|
-
/* @__PURE__ */ (0,
|
|
43884
|
-
/* @__PURE__ */ (0,
|
|
44129
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsxs)("div", { className: "space-y-3 w-full", children: [
|
|
44130
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)("div", { className: "h-4 w-40 rounded bg-gray200 animate-pulse" }),
|
|
44131
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)("div", { className: "h-3 w-full rounded bg-gray200 animate-pulse" }),
|
|
44132
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)("div", { className: "h-3 w-[90%] rounded bg-gray200 animate-pulse" }),
|
|
44133
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)("div", { className: "h-3 w-[75%] rounded bg-gray200 animate-pulse" })
|
|
43885
44134
|
] }),
|
|
43886
|
-
/* @__PURE__ */ (0,
|
|
43887
|
-
/* @__PURE__ */ (0,
|
|
43888
|
-
/* @__PURE__ */ (0,
|
|
44135
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsxs)("div", { className: "hidden md:flex flex-col items-center justify-center gap-3", children: [
|
|
44136
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)("div", { className: "h-6 w-16 rounded bg-gray200 animate-pulse" }),
|
|
44137
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)("div", { className: "h-4 w-20 rounded bg-gray200 animate-pulse" })
|
|
43889
44138
|
] })
|
|
43890
44139
|
] }) });
|
|
43891
44140
|
}
|
|
43892
44141
|
function CreatorDisplaySkeleton() {
|
|
43893
|
-
return /* @__PURE__ */ (0,
|
|
44142
|
+
return /* @__PURE__ */ (0, import_jsx_runtime176.jsx)("div", { className: "px-4 py-4 space-y-4", children: Array.from({ length: 3 }).map((_, idx) => /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(CreatorCardSkeleton, {}, idx)) });
|
|
43894
44143
|
}
|
|
43895
44144
|
function CreatorExpandedPanel({
|
|
43896
44145
|
isOpen,
|
|
@@ -43901,10 +44150,10 @@ function CreatorExpandedPanel({
|
|
|
43901
44150
|
searchSpec,
|
|
43902
44151
|
fetchCreatorDetails
|
|
43903
44152
|
}) {
|
|
43904
|
-
const [creators, setCreators] = (0,
|
|
43905
|
-
const [loading, setLoading] = (0,
|
|
44153
|
+
const [creators, setCreators] = (0, import_react89.useState)([]);
|
|
44154
|
+
const [loading, setLoading] = (0, import_react89.useState)(false);
|
|
43906
44155
|
const fetcher = fetchCreatorDetails ?? defaultFetchCreatorDetails;
|
|
43907
|
-
const loadCreators = (0,
|
|
44156
|
+
const loadCreators = (0, import_react89.useCallback)(async () => {
|
|
43908
44157
|
if (!creatorIds.length) return;
|
|
43909
44158
|
setLoading(true);
|
|
43910
44159
|
try {
|
|
@@ -43916,15 +44165,15 @@ function CreatorExpandedPanel({
|
|
|
43916
44165
|
setLoading(false);
|
|
43917
44166
|
}
|
|
43918
44167
|
}, [creatorIds, sessionId, version, fetcher]);
|
|
43919
|
-
(0,
|
|
44168
|
+
(0, import_react89.useEffect)(() => {
|
|
43920
44169
|
if (isOpen && creatorIds.length > 0) {
|
|
43921
44170
|
loadCreators();
|
|
43922
44171
|
}
|
|
43923
44172
|
}, [isOpen, loadCreators]);
|
|
43924
44173
|
if (typeof window === "undefined") return null;
|
|
43925
44174
|
return import_react_dom2.default.createPortal(
|
|
43926
|
-
/* @__PURE__ */ (0,
|
|
43927
|
-
/* @__PURE__ */ (0,
|
|
44175
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)(import_framer_motion5.AnimatePresence, { mode: "sync", children: isOpen && /* @__PURE__ */ (0, import_jsx_runtime176.jsxs)(import_jsx_runtime176.Fragment, { children: [
|
|
44176
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)(
|
|
43928
44177
|
import_framer_motion5.motion.div,
|
|
43929
44178
|
{
|
|
43930
44179
|
initial: { opacity: 0 },
|
|
@@ -43939,7 +44188,7 @@ function CreatorExpandedPanel({
|
|
|
43939
44188
|
},
|
|
43940
44189
|
"overlay"
|
|
43941
44190
|
),
|
|
43942
|
-
/* @__PURE__ */ (0,
|
|
44191
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)(
|
|
43943
44192
|
import_framer_motion5.motion.div,
|
|
43944
44193
|
{
|
|
43945
44194
|
initial: { x: "100%" },
|
|
@@ -43947,19 +44196,19 @@ function CreatorExpandedPanel({
|
|
|
43947
44196
|
exit: { x: "100%" },
|
|
43948
44197
|
transition: { type: "spring", damping: 30, stiffness: 400 },
|
|
43949
44198
|
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",
|
|
43950
|
-
children: /* @__PURE__ */ (0,
|
|
43951
|
-
/* @__PURE__ */ (0,
|
|
43952
|
-
/* @__PURE__ */ (0,
|
|
43953
|
-
/* @__PURE__ */ (0,
|
|
43954
|
-
/* @__PURE__ */ (0,
|
|
43955
|
-
/* @__PURE__ */ (0,
|
|
43956
|
-
/* @__PURE__ */ (0,
|
|
44199
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime176.jsxs)("div", { className: "py-4 font-noto", children: [
|
|
44200
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsxs)("div", { className: "flex justify-between items-center w-full mb-4 px-2 md:pl-2", children: [
|
|
44201
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)("button", { onClick: onClose, className: "p-2 rounded-full transition-colors flex-shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(X, { className: "w-5 h-5" }) }),
|
|
44202
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsxs)("div", { className: "flex-1 flex flex-col min-w-0", children: [
|
|
44203
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)("div", { className: "flex flex-col md:flex-row justify-between gap-2 md:gap-0 md:items-center md:pr-16", children: /* @__PURE__ */ (0, import_jsx_runtime176.jsxs)("div", { className: "flex flex-col", children: [
|
|
44204
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)("div", { className: "w-fit rounded-md bg-purple200 px-2 py-[4px] mb-2", children: /* @__PURE__ */ (0, import_jsx_runtime176.jsx)("h4", { className: "text-xs font-medium text-purpleText", children: "VERIFIED SEARCH RESULTS" }) }),
|
|
44205
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)("h2", { className: "text-xl font-bold mb-1", children: "Creators Search Results" })
|
|
43957
44206
|
] }) }),
|
|
43958
|
-
searchSpec && /* @__PURE__ */ (0,
|
|
44207
|
+
searchSpec && /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(SearchSpecDisplay, { spec: searchSpec })
|
|
43959
44208
|
] })
|
|
43960
44209
|
] }),
|
|
43961
|
-
/* @__PURE__ */ (0,
|
|
43962
|
-
loading ? /* @__PURE__ */ (0,
|
|
44210
|
+
/* @__PURE__ */ (0, import_jsx_runtime176.jsx)("div", { className: "border-b border-gray300" }),
|
|
44211
|
+
loading ? /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(CreatorDisplaySkeleton, {}) : /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(CreatorDisplay, { creators, isValidationComplete: version !== void 0 })
|
|
43963
44212
|
] })
|
|
43964
44213
|
},
|
|
43965
44214
|
"creator-panel"
|
|
@@ -43970,7 +44219,7 @@ function CreatorExpandedPanel({
|
|
|
43970
44219
|
}
|
|
43971
44220
|
|
|
43972
44221
|
// src/molecules/creator-discovery/CreatorWidget/useCreatorWidgetPolling.ts
|
|
43973
|
-
var
|
|
44222
|
+
var import_react90 = require("react");
|
|
43974
44223
|
var DEFAULT_POLLING_CONFIG = {
|
|
43975
44224
|
pollInterval: 5e3,
|
|
43976
44225
|
maxDuration: 15 * 60 * 1e3,
|
|
@@ -43987,22 +44236,22 @@ function useCreatorWidgetPolling({
|
|
|
43987
44236
|
}) {
|
|
43988
44237
|
const fetchVersions = fetchVersionsProp ?? defaultFetchVersions;
|
|
43989
44238
|
const fetchStatus = fetchStatusProp ?? defaultFetchStatus;
|
|
43990
|
-
const config = (0,
|
|
44239
|
+
const config = (0, import_react90.useMemo)(
|
|
43991
44240
|
() => ({ ...DEFAULT_POLLING_CONFIG, ...pollingConfig }),
|
|
43992
44241
|
[pollingConfig]
|
|
43993
44242
|
);
|
|
43994
|
-
const [versionData, setVersionData] = (0,
|
|
43995
|
-
const [totalVersions, setTotalVersions] = (0,
|
|
43996
|
-
const [selectedVersion, setSelectedVersion] = (0,
|
|
43997
|
-
const [isLoadingVersion, setIsLoadingVersion] = (0,
|
|
43998
|
-
const [isValidationComplete, setIsValidationComplete] = (0,
|
|
43999
|
-
const [versionStatus, setVersionStatus] = (0,
|
|
44000
|
-
const [statusDetails, setStatusDetails] = (0,
|
|
44001
|
-
const [timeDisplay, setTimeDisplay] = (0,
|
|
44002
|
-
const [loadingStatus, setLoadingStatus] = (0,
|
|
44003
|
-
const remainingTimeRef = (0,
|
|
44243
|
+
const [versionData, setVersionData] = (0, import_react90.useState)(null);
|
|
44244
|
+
const [totalVersions, setTotalVersions] = (0, import_react90.useState)(0);
|
|
44245
|
+
const [selectedVersion, setSelectedVersion] = (0, import_react90.useState)();
|
|
44246
|
+
const [isLoadingVersion, setIsLoadingVersion] = (0, import_react90.useState)(false);
|
|
44247
|
+
const [isValidationComplete, setIsValidationComplete] = (0, import_react90.useState)(false);
|
|
44248
|
+
const [versionStatus, setVersionStatus] = (0, import_react90.useState)("checking");
|
|
44249
|
+
const [statusDetails, setStatusDetails] = (0, import_react90.useState)();
|
|
44250
|
+
const [timeDisplay, setTimeDisplay] = (0, import_react90.useState)("");
|
|
44251
|
+
const [loadingStatus, setLoadingStatus] = (0, import_react90.useState)(true);
|
|
44252
|
+
const remainingTimeRef = (0, import_react90.useRef)(0);
|
|
44004
44253
|
const requestedVersion = selectedVersion ?? currentVersion ?? versionData?.currentVersion;
|
|
44005
|
-
const fetchVersionData = (0,
|
|
44254
|
+
const fetchVersionData = (0, import_react90.useCallback)(async () => {
|
|
44006
44255
|
if (!sessionId) return;
|
|
44007
44256
|
if (!versionData) setIsLoadingVersion(true);
|
|
44008
44257
|
try {
|
|
@@ -44023,17 +44272,17 @@ function useCreatorWidgetPolling({
|
|
|
44023
44272
|
setIsLoadingVersion(false);
|
|
44024
44273
|
}
|
|
44025
44274
|
}, [sessionId, requestedVersion, isValidationComplete, fetchVersions, versionData]);
|
|
44026
|
-
(0,
|
|
44275
|
+
(0, import_react90.useEffect)(() => {
|
|
44027
44276
|
fetchVersionData();
|
|
44028
44277
|
}, [sessionId, requestedVersion, isValidationComplete]);
|
|
44029
|
-
(0,
|
|
44278
|
+
(0, import_react90.useEffect)(() => {
|
|
44030
44279
|
if (totalVersions > 0 || !sessionId) return;
|
|
44031
44280
|
const interval = setInterval(() => {
|
|
44032
44281
|
if (totalVersions === 0) fetchVersionData();
|
|
44033
44282
|
}, config.pollInterval);
|
|
44034
44283
|
return () => clearInterval(interval);
|
|
44035
44284
|
}, [totalVersions, sessionId, fetchVersionData, config.pollInterval]);
|
|
44036
|
-
(0,
|
|
44285
|
+
(0, import_react90.useEffect)(() => {
|
|
44037
44286
|
if (!selectedVersion && !requestedVersion) return;
|
|
44038
44287
|
const activeVersion = selectedVersion ?? requestedVersion;
|
|
44039
44288
|
let isMounted = true;
|
|
@@ -44116,7 +44365,7 @@ function useCreatorWidgetPolling({
|
|
|
44116
44365
|
stopPolling();
|
|
44117
44366
|
};
|
|
44118
44367
|
}, [selectedVersion, requestedVersion, sessionId]);
|
|
44119
|
-
const versionNumbers = (0,
|
|
44368
|
+
const versionNumbers = (0, import_react90.useMemo)(() => {
|
|
44120
44369
|
if (!totalVersions) return [];
|
|
44121
44370
|
return Array.from({ length: totalVersions }, (_, i) => i + 1);
|
|
44122
44371
|
}, [totalVersions]);
|
|
@@ -44143,7 +44392,7 @@ function useCreatorWidgetPolling({
|
|
|
44143
44392
|
}
|
|
44144
44393
|
|
|
44145
44394
|
// src/molecules/creator-discovery/CreatorWidget/CreatorWidget.tsx
|
|
44146
|
-
var
|
|
44395
|
+
var import_jsx_runtime177 = require("react/jsx-runtime");
|
|
44147
44396
|
function CreatorWidgetInner({
|
|
44148
44397
|
sessionId,
|
|
44149
44398
|
currentVersion,
|
|
@@ -44156,7 +44405,7 @@ function CreatorWidgetInner({
|
|
|
44156
44405
|
onAction,
|
|
44157
44406
|
className
|
|
44158
44407
|
}) {
|
|
44159
|
-
const [isExpanded, setIsExpanded] = (0,
|
|
44408
|
+
const [isExpanded, setIsExpanded] = (0, import_react91.useState)(false);
|
|
44160
44409
|
const {
|
|
44161
44410
|
versionNumbers,
|
|
44162
44411
|
selectedVersion,
|
|
@@ -44177,11 +44426,11 @@ function CreatorWidgetInner({
|
|
|
44177
44426
|
pollingConfig,
|
|
44178
44427
|
onStatusChange
|
|
44179
44428
|
});
|
|
44180
|
-
const handleVersionSelect = (0,
|
|
44429
|
+
const handleVersionSelect = (0, import_react91.useCallback)(
|
|
44181
44430
|
(version) => setSelectedVersion(version),
|
|
44182
44431
|
[setSelectedVersion]
|
|
44183
44432
|
);
|
|
44184
|
-
const handleViewCreators = (0,
|
|
44433
|
+
const handleViewCreators = (0, import_react91.useCallback)(() => {
|
|
44185
44434
|
setIsExpanded(true);
|
|
44186
44435
|
onAction?.({
|
|
44187
44436
|
type: "view-creators",
|
|
@@ -44191,8 +44440,8 @@ function CreatorWidgetInner({
|
|
|
44191
44440
|
searchSpec
|
|
44192
44441
|
});
|
|
44193
44442
|
}, [onAction, sessionId, creatorIds, selectedVersion, searchSpec]);
|
|
44194
|
-
return /* @__PURE__ */ (0,
|
|
44195
|
-
/* @__PURE__ */ (0,
|
|
44443
|
+
return /* @__PURE__ */ (0, import_jsx_runtime177.jsxs)("div", { className, children: [
|
|
44444
|
+
/* @__PURE__ */ (0, import_jsx_runtime177.jsx)(
|
|
44196
44445
|
CreatorCompactView,
|
|
44197
44446
|
{
|
|
44198
44447
|
versions: versionNumbers,
|
|
@@ -44208,7 +44457,7 @@ function CreatorWidgetInner({
|
|
|
44208
44457
|
isLoading
|
|
44209
44458
|
}
|
|
44210
44459
|
),
|
|
44211
|
-
/* @__PURE__ */ (0,
|
|
44460
|
+
/* @__PURE__ */ (0, import_jsx_runtime177.jsx)(
|
|
44212
44461
|
CreatorExpandedPanel,
|
|
44213
44462
|
{
|
|
44214
44463
|
isOpen: isExpanded,
|
|
@@ -44222,7 +44471,7 @@ function CreatorWidgetInner({
|
|
|
44222
44471
|
)
|
|
44223
44472
|
] });
|
|
44224
44473
|
}
|
|
44225
|
-
var CreatorWidget = (0,
|
|
44474
|
+
var CreatorWidget = (0, import_react91.memo)(CreatorWidgetInner);
|
|
44226
44475
|
|
|
44227
44476
|
// src/components/ui/index.ts
|
|
44228
44477
|
var ui_exports = {};
|
|
@@ -44516,7 +44765,7 @@ __export(ui_exports, {
|
|
|
44516
44765
|
// src/components/ui/button-group.tsx
|
|
44517
44766
|
var import_react_slot4 = require("@radix-ui/react-slot");
|
|
44518
44767
|
var import_class_variance_authority8 = require("class-variance-authority");
|
|
44519
|
-
var
|
|
44768
|
+
var import_jsx_runtime178 = require("react/jsx-runtime");
|
|
44520
44769
|
var buttonGroupVariants = (0, import_class_variance_authority8.cva)(
|
|
44521
44770
|
"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",
|
|
44522
44771
|
{
|
|
@@ -44536,7 +44785,7 @@ function ButtonGroup({
|
|
|
44536
44785
|
orientation,
|
|
44537
44786
|
...props
|
|
44538
44787
|
}) {
|
|
44539
|
-
return /* @__PURE__ */ (0,
|
|
44788
|
+
return /* @__PURE__ */ (0, import_jsx_runtime178.jsx)(
|
|
44540
44789
|
"div",
|
|
44541
44790
|
{
|
|
44542
44791
|
role: "group",
|
|
@@ -44553,7 +44802,7 @@ function ButtonGroupText({
|
|
|
44553
44802
|
...props
|
|
44554
44803
|
}) {
|
|
44555
44804
|
const Comp = asChild ? import_react_slot4.Slot : "div";
|
|
44556
|
-
return /* @__PURE__ */ (0,
|
|
44805
|
+
return /* @__PURE__ */ (0, import_jsx_runtime178.jsx)(
|
|
44557
44806
|
Comp,
|
|
44558
44807
|
{
|
|
44559
44808
|
className: cn(
|
|
@@ -44569,7 +44818,7 @@ function ButtonGroupSeparator({
|
|
|
44569
44818
|
orientation = "vertical",
|
|
44570
44819
|
...props
|
|
44571
44820
|
}) {
|
|
44572
|
-
return /* @__PURE__ */ (0,
|
|
44821
|
+
return /* @__PURE__ */ (0, import_jsx_runtime178.jsx)(
|
|
44573
44822
|
Separator2,
|
|
44574
44823
|
{
|
|
44575
44824
|
"data-slot": "button-group-separator",
|
|
@@ -44585,9 +44834,9 @@ function ButtonGroupSeparator({
|
|
|
44585
44834
|
|
|
44586
44835
|
// src/components/ui/empty.tsx
|
|
44587
44836
|
var import_class_variance_authority9 = require("class-variance-authority");
|
|
44588
|
-
var
|
|
44837
|
+
var import_jsx_runtime179 = require("react/jsx-runtime");
|
|
44589
44838
|
function Empty({ className, ...props }) {
|
|
44590
|
-
return /* @__PURE__ */ (0,
|
|
44839
|
+
return /* @__PURE__ */ (0, import_jsx_runtime179.jsx)(
|
|
44591
44840
|
"div",
|
|
44592
44841
|
{
|
|
44593
44842
|
"data-slot": "empty",
|
|
@@ -44600,7 +44849,7 @@ function Empty({ className, ...props }) {
|
|
|
44600
44849
|
);
|
|
44601
44850
|
}
|
|
44602
44851
|
function EmptyHeader({ className, ...props }) {
|
|
44603
|
-
return /* @__PURE__ */ (0,
|
|
44852
|
+
return /* @__PURE__ */ (0, import_jsx_runtime179.jsx)(
|
|
44604
44853
|
"div",
|
|
44605
44854
|
{
|
|
44606
44855
|
"data-slot": "empty-header",
|
|
@@ -44631,7 +44880,7 @@ function EmptyMedia({
|
|
|
44631
44880
|
variant = "default",
|
|
44632
44881
|
...props
|
|
44633
44882
|
}) {
|
|
44634
|
-
return /* @__PURE__ */ (0,
|
|
44883
|
+
return /* @__PURE__ */ (0, import_jsx_runtime179.jsx)(
|
|
44635
44884
|
"div",
|
|
44636
44885
|
{
|
|
44637
44886
|
"data-slot": "empty-icon",
|
|
@@ -44642,7 +44891,7 @@ function EmptyMedia({
|
|
|
44642
44891
|
);
|
|
44643
44892
|
}
|
|
44644
44893
|
function EmptyTitle({ className, ...props }) {
|
|
44645
|
-
return /* @__PURE__ */ (0,
|
|
44894
|
+
return /* @__PURE__ */ (0, import_jsx_runtime179.jsx)(
|
|
44646
44895
|
"div",
|
|
44647
44896
|
{
|
|
44648
44897
|
"data-slot": "empty-title",
|
|
@@ -44652,7 +44901,7 @@ function EmptyTitle({ className, ...props }) {
|
|
|
44652
44901
|
);
|
|
44653
44902
|
}
|
|
44654
44903
|
function EmptyDescription({ className, ...props }) {
|
|
44655
|
-
return /* @__PURE__ */ (0,
|
|
44904
|
+
return /* @__PURE__ */ (0, import_jsx_runtime179.jsx)(
|
|
44656
44905
|
"div",
|
|
44657
44906
|
{
|
|
44658
44907
|
"data-slot": "empty-description",
|
|
@@ -44665,7 +44914,7 @@ function EmptyDescription({ className, ...props }) {
|
|
|
44665
44914
|
);
|
|
44666
44915
|
}
|
|
44667
44916
|
function EmptyContent({ className, ...props }) {
|
|
44668
|
-
return /* @__PURE__ */ (0,
|
|
44917
|
+
return /* @__PURE__ */ (0, import_jsx_runtime179.jsx)(
|
|
44669
44918
|
"div",
|
|
44670
44919
|
{
|
|
44671
44920
|
"data-slot": "empty-content",
|
|
@@ -44679,11 +44928,11 @@ function EmptyContent({ className, ...props }) {
|
|
|
44679
44928
|
}
|
|
44680
44929
|
|
|
44681
44930
|
// src/components/ui/field.tsx
|
|
44682
|
-
var
|
|
44931
|
+
var import_react92 = require("react");
|
|
44683
44932
|
var import_class_variance_authority10 = require("class-variance-authority");
|
|
44684
|
-
var
|
|
44933
|
+
var import_jsx_runtime180 = require("react/jsx-runtime");
|
|
44685
44934
|
function FieldSet({ className, ...props }) {
|
|
44686
|
-
return /* @__PURE__ */ (0,
|
|
44935
|
+
return /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(
|
|
44687
44936
|
"fieldset",
|
|
44688
44937
|
{
|
|
44689
44938
|
"data-slot": "field-set",
|
|
@@ -44701,7 +44950,7 @@ function FieldLegend({
|
|
|
44701
44950
|
variant = "legend",
|
|
44702
44951
|
...props
|
|
44703
44952
|
}) {
|
|
44704
|
-
return /* @__PURE__ */ (0,
|
|
44953
|
+
return /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(
|
|
44705
44954
|
"legend",
|
|
44706
44955
|
{
|
|
44707
44956
|
"data-slot": "field-legend",
|
|
@@ -44717,7 +44966,7 @@ function FieldLegend({
|
|
|
44717
44966
|
);
|
|
44718
44967
|
}
|
|
44719
44968
|
function FieldGroup({ className, ...props }) {
|
|
44720
|
-
return /* @__PURE__ */ (0,
|
|
44969
|
+
return /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(
|
|
44721
44970
|
"div",
|
|
44722
44971
|
{
|
|
44723
44972
|
"data-slot": "field-group",
|
|
@@ -44757,7 +45006,7 @@ function Field({
|
|
|
44757
45006
|
orientation = "vertical",
|
|
44758
45007
|
...props
|
|
44759
45008
|
}) {
|
|
44760
|
-
return /* @__PURE__ */ (0,
|
|
45009
|
+
return /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(
|
|
44761
45010
|
"div",
|
|
44762
45011
|
{
|
|
44763
45012
|
role: "group",
|
|
@@ -44769,7 +45018,7 @@ function Field({
|
|
|
44769
45018
|
);
|
|
44770
45019
|
}
|
|
44771
45020
|
function FieldContent({ className, ...props }) {
|
|
44772
|
-
return /* @__PURE__ */ (0,
|
|
45021
|
+
return /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(
|
|
44773
45022
|
"div",
|
|
44774
45023
|
{
|
|
44775
45024
|
"data-slot": "field-content",
|
|
@@ -44785,7 +45034,7 @@ function FieldLabel({
|
|
|
44785
45034
|
className,
|
|
44786
45035
|
...props
|
|
44787
45036
|
}) {
|
|
44788
|
-
return /* @__PURE__ */ (0,
|
|
45037
|
+
return /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(
|
|
44789
45038
|
Label,
|
|
44790
45039
|
{
|
|
44791
45040
|
"data-slot": "field-label",
|
|
@@ -44800,7 +45049,7 @@ function FieldLabel({
|
|
|
44800
45049
|
);
|
|
44801
45050
|
}
|
|
44802
45051
|
function FieldTitle({ className, ...props }) {
|
|
44803
|
-
return /* @__PURE__ */ (0,
|
|
45052
|
+
return /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(
|
|
44804
45053
|
"div",
|
|
44805
45054
|
{
|
|
44806
45055
|
"data-slot": "field-label",
|
|
@@ -44813,7 +45062,7 @@ function FieldTitle({ className, ...props }) {
|
|
|
44813
45062
|
);
|
|
44814
45063
|
}
|
|
44815
45064
|
function FieldDescription({ className, ...props }) {
|
|
44816
|
-
return /* @__PURE__ */ (0,
|
|
45065
|
+
return /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(
|
|
44817
45066
|
"p",
|
|
44818
45067
|
{
|
|
44819
45068
|
"data-slot": "field-description",
|
|
@@ -44832,7 +45081,7 @@ function FieldSeparator({
|
|
|
44832
45081
|
className,
|
|
44833
45082
|
...props
|
|
44834
45083
|
}) {
|
|
44835
|
-
return /* @__PURE__ */ (0,
|
|
45084
|
+
return /* @__PURE__ */ (0, import_jsx_runtime180.jsxs)(
|
|
44836
45085
|
"div",
|
|
44837
45086
|
{
|
|
44838
45087
|
"data-slot": "field-separator",
|
|
@@ -44843,8 +45092,8 @@ function FieldSeparator({
|
|
|
44843
45092
|
),
|
|
44844
45093
|
...props,
|
|
44845
45094
|
children: [
|
|
44846
|
-
/* @__PURE__ */ (0,
|
|
44847
|
-
children && /* @__PURE__ */ (0,
|
|
45095
|
+
/* @__PURE__ */ (0, import_jsx_runtime180.jsx)(Separator2, { className: "absolute inset-0 top-1/2" }),
|
|
45096
|
+
children && /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(
|
|
44848
45097
|
"span",
|
|
44849
45098
|
{
|
|
44850
45099
|
className: "bg-background text-muted-foreground relative mx-auto block w-fit px-2",
|
|
@@ -44862,7 +45111,7 @@ function FieldError({
|
|
|
44862
45111
|
errors,
|
|
44863
45112
|
...props
|
|
44864
45113
|
}) {
|
|
44865
|
-
const content = (0,
|
|
45114
|
+
const content = (0, import_react92.useMemo)(() => {
|
|
44866
45115
|
if (children) {
|
|
44867
45116
|
return children;
|
|
44868
45117
|
}
|
|
@@ -44872,14 +45121,14 @@ function FieldError({
|
|
|
44872
45121
|
if (errors?.length === 1 && errors[0]?.message) {
|
|
44873
45122
|
return errors[0].message;
|
|
44874
45123
|
}
|
|
44875
|
-
return /* @__PURE__ */ (0,
|
|
44876
|
-
(error, index) => error?.message && /* @__PURE__ */ (0,
|
|
45124
|
+
return /* @__PURE__ */ (0, import_jsx_runtime180.jsx)("ul", { className: "ml-4 flex list-disc flex-col gap-1", children: errors.map(
|
|
45125
|
+
(error, index) => error?.message && /* @__PURE__ */ (0, import_jsx_runtime180.jsx)("li", { children: error.message }, index)
|
|
44877
45126
|
) });
|
|
44878
45127
|
}, [children, errors]);
|
|
44879
45128
|
if (!content) {
|
|
44880
45129
|
return null;
|
|
44881
45130
|
}
|
|
44882
|
-
return /* @__PURE__ */ (0,
|
|
45131
|
+
return /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(
|
|
44883
45132
|
"div",
|
|
44884
45133
|
{
|
|
44885
45134
|
role: "alert",
|
|
@@ -44893,9 +45142,9 @@ function FieldError({
|
|
|
44893
45142
|
|
|
44894
45143
|
// src/components/ui/input-group.tsx
|
|
44895
45144
|
var import_class_variance_authority11 = require("class-variance-authority");
|
|
44896
|
-
var
|
|
45145
|
+
var import_jsx_runtime181 = require("react/jsx-runtime");
|
|
44897
45146
|
function InputGroup({ className, ...props }) {
|
|
44898
|
-
return /* @__PURE__ */ (0,
|
|
45147
|
+
return /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
|
|
44899
45148
|
"div",
|
|
44900
45149
|
{
|
|
44901
45150
|
"data-slot": "input-group",
|
|
@@ -44939,7 +45188,7 @@ function InputGroupAddon({
|
|
|
44939
45188
|
align = "inline-start",
|
|
44940
45189
|
...props
|
|
44941
45190
|
}) {
|
|
44942
|
-
return /* @__PURE__ */ (0,
|
|
45191
|
+
return /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
|
|
44943
45192
|
"div",
|
|
44944
45193
|
{
|
|
44945
45194
|
role: "group",
|
|
@@ -44979,7 +45228,7 @@ function InputGroupButton({
|
|
|
44979
45228
|
size = "xs",
|
|
44980
45229
|
...props
|
|
44981
45230
|
}) {
|
|
44982
|
-
return /* @__PURE__ */ (0,
|
|
45231
|
+
return /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
|
|
44983
45232
|
Button,
|
|
44984
45233
|
{
|
|
44985
45234
|
type,
|
|
@@ -44991,7 +45240,7 @@ function InputGroupButton({
|
|
|
44991
45240
|
);
|
|
44992
45241
|
}
|
|
44993
45242
|
function InputGroupText({ className, ...props }) {
|
|
44994
|
-
return /* @__PURE__ */ (0,
|
|
45243
|
+
return /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
|
|
44995
45244
|
"span",
|
|
44996
45245
|
{
|
|
44997
45246
|
className: cn(
|
|
@@ -45006,7 +45255,7 @@ function InputGroupInput({
|
|
|
45006
45255
|
className,
|
|
45007
45256
|
...props
|
|
45008
45257
|
}) {
|
|
45009
|
-
return /* @__PURE__ */ (0,
|
|
45258
|
+
return /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
|
|
45010
45259
|
Input,
|
|
45011
45260
|
{
|
|
45012
45261
|
"data-slot": "input-group-control",
|
|
@@ -45022,7 +45271,7 @@ function InputGroupTextarea({
|
|
|
45022
45271
|
className,
|
|
45023
45272
|
...props
|
|
45024
45273
|
}) {
|
|
45025
|
-
return /* @__PURE__ */ (0,
|
|
45274
|
+
return /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
|
|
45026
45275
|
Textarea,
|
|
45027
45276
|
{
|
|
45028
45277
|
"data-slot": "input-group-control",
|
|
@@ -45038,9 +45287,9 @@ function InputGroupTextarea({
|
|
|
45038
45287
|
// src/components/ui/item.tsx
|
|
45039
45288
|
var import_react_slot5 = require("@radix-ui/react-slot");
|
|
45040
45289
|
var import_class_variance_authority12 = require("class-variance-authority");
|
|
45041
|
-
var
|
|
45290
|
+
var import_jsx_runtime182 = require("react/jsx-runtime");
|
|
45042
45291
|
function ItemGroup({ className, ...props }) {
|
|
45043
|
-
return /* @__PURE__ */ (0,
|
|
45292
|
+
return /* @__PURE__ */ (0, import_jsx_runtime182.jsx)(
|
|
45044
45293
|
"div",
|
|
45045
45294
|
{
|
|
45046
45295
|
role: "list",
|
|
@@ -45054,7 +45303,7 @@ function ItemSeparator({
|
|
|
45054
45303
|
className,
|
|
45055
45304
|
...props
|
|
45056
45305
|
}) {
|
|
45057
|
-
return /* @__PURE__ */ (0,
|
|
45306
|
+
return /* @__PURE__ */ (0, import_jsx_runtime182.jsx)(
|
|
45058
45307
|
Separator2,
|
|
45059
45308
|
{
|
|
45060
45309
|
"data-slot": "item-separator",
|
|
@@ -45092,7 +45341,7 @@ function Item8({
|
|
|
45092
45341
|
...props
|
|
45093
45342
|
}) {
|
|
45094
45343
|
const Comp = asChild ? import_react_slot5.Slot : "div";
|
|
45095
|
-
return /* @__PURE__ */ (0,
|
|
45344
|
+
return /* @__PURE__ */ (0, import_jsx_runtime182.jsx)(
|
|
45096
45345
|
Comp,
|
|
45097
45346
|
{
|
|
45098
45347
|
"data-slot": "item",
|
|
@@ -45123,7 +45372,7 @@ function ItemMedia({
|
|
|
45123
45372
|
variant = "default",
|
|
45124
45373
|
...props
|
|
45125
45374
|
}) {
|
|
45126
|
-
return /* @__PURE__ */ (0,
|
|
45375
|
+
return /* @__PURE__ */ (0, import_jsx_runtime182.jsx)(
|
|
45127
45376
|
"div",
|
|
45128
45377
|
{
|
|
45129
45378
|
"data-slot": "item-media",
|
|
@@ -45134,7 +45383,7 @@ function ItemMedia({
|
|
|
45134
45383
|
);
|
|
45135
45384
|
}
|
|
45136
45385
|
function ItemContent({ className, ...props }) {
|
|
45137
|
-
return /* @__PURE__ */ (0,
|
|
45386
|
+
return /* @__PURE__ */ (0, import_jsx_runtime182.jsx)(
|
|
45138
45387
|
"div",
|
|
45139
45388
|
{
|
|
45140
45389
|
"data-slot": "item-content",
|
|
@@ -45147,7 +45396,7 @@ function ItemContent({ className, ...props }) {
|
|
|
45147
45396
|
);
|
|
45148
45397
|
}
|
|
45149
45398
|
function ItemTitle({ className, ...props }) {
|
|
45150
|
-
return /* @__PURE__ */ (0,
|
|
45399
|
+
return /* @__PURE__ */ (0, import_jsx_runtime182.jsx)(
|
|
45151
45400
|
"div",
|
|
45152
45401
|
{
|
|
45153
45402
|
"data-slot": "item-title",
|
|
@@ -45160,7 +45409,7 @@ function ItemTitle({ className, ...props }) {
|
|
|
45160
45409
|
);
|
|
45161
45410
|
}
|
|
45162
45411
|
function ItemDescription({ className, ...props }) {
|
|
45163
|
-
return /* @__PURE__ */ (0,
|
|
45412
|
+
return /* @__PURE__ */ (0, import_jsx_runtime182.jsx)(
|
|
45164
45413
|
"p",
|
|
45165
45414
|
{
|
|
45166
45415
|
"data-slot": "item-description",
|
|
@@ -45174,7 +45423,7 @@ function ItemDescription({ className, ...props }) {
|
|
|
45174
45423
|
);
|
|
45175
45424
|
}
|
|
45176
45425
|
function ItemActions({ className, ...props }) {
|
|
45177
|
-
return /* @__PURE__ */ (0,
|
|
45426
|
+
return /* @__PURE__ */ (0, import_jsx_runtime182.jsx)(
|
|
45178
45427
|
"div",
|
|
45179
45428
|
{
|
|
45180
45429
|
"data-slot": "item-actions",
|
|
@@ -45184,7 +45433,7 @@ function ItemActions({ className, ...props }) {
|
|
|
45184
45433
|
);
|
|
45185
45434
|
}
|
|
45186
45435
|
function ItemHeader({ className, ...props }) {
|
|
45187
|
-
return /* @__PURE__ */ (0,
|
|
45436
|
+
return /* @__PURE__ */ (0, import_jsx_runtime182.jsx)(
|
|
45188
45437
|
"div",
|
|
45189
45438
|
{
|
|
45190
45439
|
"data-slot": "item-header",
|
|
@@ -45197,7 +45446,7 @@ function ItemHeader({ className, ...props }) {
|
|
|
45197
45446
|
);
|
|
45198
45447
|
}
|
|
45199
45448
|
function ItemFooter({ className, ...props }) {
|
|
45200
|
-
return /* @__PURE__ */ (0,
|
|
45449
|
+
return /* @__PURE__ */ (0, import_jsx_runtime182.jsx)(
|
|
45201
45450
|
"div",
|
|
45202
45451
|
{
|
|
45203
45452
|
"data-slot": "item-footer",
|
|
@@ -45211,9 +45460,9 @@ function ItemFooter({ className, ...props }) {
|
|
|
45211
45460
|
}
|
|
45212
45461
|
|
|
45213
45462
|
// src/components/ui/kbd.tsx
|
|
45214
|
-
var
|
|
45463
|
+
var import_jsx_runtime183 = require("react/jsx-runtime");
|
|
45215
45464
|
function Kbd({ className, ...props }) {
|
|
45216
|
-
return /* @__PURE__ */ (0,
|
|
45465
|
+
return /* @__PURE__ */ (0, import_jsx_runtime183.jsx)(
|
|
45217
45466
|
"kbd",
|
|
45218
45467
|
{
|
|
45219
45468
|
"data-slot": "kbd",
|
|
@@ -45228,7 +45477,7 @@ function Kbd({ className, ...props }) {
|
|
|
45228
45477
|
);
|
|
45229
45478
|
}
|
|
45230
45479
|
function KbdGroup({ className, ...props }) {
|
|
45231
|
-
return /* @__PURE__ */ (0,
|
|
45480
|
+
return /* @__PURE__ */ (0, import_jsx_runtime183.jsx)(
|
|
45232
45481
|
"kbd",
|
|
45233
45482
|
{
|
|
45234
45483
|
"data-slot": "kbd-group",
|
|
@@ -45239,16 +45488,16 @@ function KbdGroup({ className, ...props }) {
|
|
|
45239
45488
|
}
|
|
45240
45489
|
|
|
45241
45490
|
// src/components/ui/sidebar.tsx
|
|
45242
|
-
var
|
|
45491
|
+
var React115 = __toESM(require("react"), 1);
|
|
45243
45492
|
var import_react_slot6 = require("@radix-ui/react-slot");
|
|
45244
45493
|
var import_class_variance_authority13 = require("class-variance-authority");
|
|
45245
45494
|
|
|
45246
45495
|
// src/hooks/use-mobile.tsx
|
|
45247
|
-
var
|
|
45496
|
+
var React114 = __toESM(require("react"), 1);
|
|
45248
45497
|
var MOBILE_BREAKPOINT = 768;
|
|
45249
45498
|
function useIsMobile() {
|
|
45250
|
-
const [isMobile, setIsMobile] =
|
|
45251
|
-
|
|
45499
|
+
const [isMobile, setIsMobile] = React114.useState(void 0);
|
|
45500
|
+
React114.useEffect(() => {
|
|
45252
45501
|
const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
|
|
45253
45502
|
const onChange = () => {
|
|
45254
45503
|
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
@@ -45261,22 +45510,22 @@ function useIsMobile() {
|
|
|
45261
45510
|
}
|
|
45262
45511
|
|
|
45263
45512
|
// src/components/ui/sidebar.tsx
|
|
45264
|
-
var
|
|
45513
|
+
var import_jsx_runtime184 = require("react/jsx-runtime");
|
|
45265
45514
|
var SIDEBAR_COOKIE_NAME = "sidebar_state";
|
|
45266
45515
|
var SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
|
|
45267
45516
|
var SIDEBAR_WIDTH = "16rem";
|
|
45268
45517
|
var SIDEBAR_WIDTH_MOBILE = "18rem";
|
|
45269
45518
|
var SIDEBAR_WIDTH_ICON = "3rem";
|
|
45270
45519
|
var SIDEBAR_KEYBOARD_SHORTCUT = "b";
|
|
45271
|
-
var SidebarContext =
|
|
45520
|
+
var SidebarContext = React115.createContext(null);
|
|
45272
45521
|
function useSidebar() {
|
|
45273
|
-
const context =
|
|
45522
|
+
const context = React115.useContext(SidebarContext);
|
|
45274
45523
|
if (!context) {
|
|
45275
45524
|
throw new Error("useSidebar must be used within a SidebarProvider.");
|
|
45276
45525
|
}
|
|
45277
45526
|
return context;
|
|
45278
45527
|
}
|
|
45279
|
-
var SidebarProvider =
|
|
45528
|
+
var SidebarProvider = React115.forwardRef(
|
|
45280
45529
|
({
|
|
45281
45530
|
defaultOpen = true,
|
|
45282
45531
|
open: openProp,
|
|
@@ -45287,10 +45536,10 @@ var SidebarProvider = React114.forwardRef(
|
|
|
45287
45536
|
...props
|
|
45288
45537
|
}, ref) => {
|
|
45289
45538
|
const isMobile = useIsMobile();
|
|
45290
|
-
const [openMobile, setOpenMobile] =
|
|
45291
|
-
const [_open, _setOpen] =
|
|
45539
|
+
const [openMobile, setOpenMobile] = React115.useState(false);
|
|
45540
|
+
const [_open, _setOpen] = React115.useState(defaultOpen);
|
|
45292
45541
|
const open = openProp ?? _open;
|
|
45293
|
-
const setOpen =
|
|
45542
|
+
const setOpen = React115.useCallback(
|
|
45294
45543
|
(value) => {
|
|
45295
45544
|
const openState = typeof value === "function" ? value(open) : value;
|
|
45296
45545
|
if (setOpenProp) {
|
|
@@ -45302,10 +45551,10 @@ var SidebarProvider = React114.forwardRef(
|
|
|
45302
45551
|
},
|
|
45303
45552
|
[setOpenProp, open]
|
|
45304
45553
|
);
|
|
45305
|
-
const toggleSidebar =
|
|
45554
|
+
const toggleSidebar = React115.useCallback(() => {
|
|
45306
45555
|
return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
|
|
45307
45556
|
}, [isMobile, setOpen, setOpenMobile]);
|
|
45308
|
-
|
|
45557
|
+
React115.useEffect(() => {
|
|
45309
45558
|
const handleKeyDown = (event) => {
|
|
45310
45559
|
if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
|
|
45311
45560
|
event.preventDefault();
|
|
@@ -45316,7 +45565,7 @@ var SidebarProvider = React114.forwardRef(
|
|
|
45316
45565
|
return () => window.removeEventListener("keydown", handleKeyDown);
|
|
45317
45566
|
}, [toggleSidebar]);
|
|
45318
45567
|
const state = open ? "expanded" : "collapsed";
|
|
45319
|
-
const contextValue =
|
|
45568
|
+
const contextValue = React115.useMemo(
|
|
45320
45569
|
() => ({
|
|
45321
45570
|
state,
|
|
45322
45571
|
open,
|
|
@@ -45328,7 +45577,7 @@ var SidebarProvider = React114.forwardRef(
|
|
|
45328
45577
|
}),
|
|
45329
45578
|
[state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]
|
|
45330
45579
|
);
|
|
45331
|
-
return /* @__PURE__ */ (0,
|
|
45580
|
+
return /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(
|
|
45332
45581
|
"div",
|
|
45333
45582
|
{
|
|
45334
45583
|
style: {
|
|
@@ -45348,7 +45597,7 @@ var SidebarProvider = React114.forwardRef(
|
|
|
45348
45597
|
}
|
|
45349
45598
|
);
|
|
45350
45599
|
SidebarProvider.displayName = "SidebarProvider";
|
|
45351
|
-
var Sidebar =
|
|
45600
|
+
var Sidebar = React115.forwardRef(
|
|
45352
45601
|
({
|
|
45353
45602
|
side = "left",
|
|
45354
45603
|
variant = "sidebar",
|
|
@@ -45359,7 +45608,7 @@ var Sidebar = React114.forwardRef(
|
|
|
45359
45608
|
}, ref) => {
|
|
45360
45609
|
const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
|
|
45361
45610
|
if (collapsible === "none") {
|
|
45362
|
-
return /* @__PURE__ */ (0,
|
|
45611
|
+
return /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(
|
|
45363
45612
|
"div",
|
|
45364
45613
|
{
|
|
45365
45614
|
className: cn(
|
|
@@ -45373,7 +45622,7 @@ var Sidebar = React114.forwardRef(
|
|
|
45373
45622
|
);
|
|
45374
45623
|
}
|
|
45375
45624
|
if (isMobile) {
|
|
45376
|
-
return /* @__PURE__ */ (0,
|
|
45625
|
+
return /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(Sheet2, { open: openMobile, onOpenChange: setOpenMobile, ...props, children: /* @__PURE__ */ (0, import_jsx_runtime184.jsxs)(
|
|
45377
45626
|
SheetContent,
|
|
45378
45627
|
{
|
|
45379
45628
|
"data-sidebar": "sidebar",
|
|
@@ -45384,16 +45633,16 @@ var Sidebar = React114.forwardRef(
|
|
|
45384
45633
|
},
|
|
45385
45634
|
side,
|
|
45386
45635
|
children: [
|
|
45387
|
-
/* @__PURE__ */ (0,
|
|
45388
|
-
/* @__PURE__ */ (0,
|
|
45389
|
-
/* @__PURE__ */ (0,
|
|
45636
|
+
/* @__PURE__ */ (0, import_jsx_runtime184.jsxs)(SheetHeader, { className: "sr-only", children: [
|
|
45637
|
+
/* @__PURE__ */ (0, import_jsx_runtime184.jsx)(SheetTitle, { children: "Sidebar" }),
|
|
45638
|
+
/* @__PURE__ */ (0, import_jsx_runtime184.jsx)(SheetDescription, { children: "Displays the mobile sidebar." })
|
|
45390
45639
|
] }),
|
|
45391
|
-
/* @__PURE__ */ (0,
|
|
45640
|
+
/* @__PURE__ */ (0, import_jsx_runtime184.jsx)("div", { className: "flex h-full w-full flex-col", children })
|
|
45392
45641
|
]
|
|
45393
45642
|
}
|
|
45394
45643
|
) });
|
|
45395
45644
|
}
|
|
45396
|
-
return /* @__PURE__ */ (0,
|
|
45645
|
+
return /* @__PURE__ */ (0, import_jsx_runtime184.jsxs)(
|
|
45397
45646
|
"div",
|
|
45398
45647
|
{
|
|
45399
45648
|
ref,
|
|
@@ -45403,7 +45652,7 @@ var Sidebar = React114.forwardRef(
|
|
|
45403
45652
|
"data-variant": variant,
|
|
45404
45653
|
"data-side": side,
|
|
45405
45654
|
children: [
|
|
45406
|
-
/* @__PURE__ */ (0,
|
|
45655
|
+
/* @__PURE__ */ (0, import_jsx_runtime184.jsx)(
|
|
45407
45656
|
"div",
|
|
45408
45657
|
{
|
|
45409
45658
|
className: cn(
|
|
@@ -45414,7 +45663,7 @@ var Sidebar = React114.forwardRef(
|
|
|
45414
45663
|
)
|
|
45415
45664
|
}
|
|
45416
45665
|
),
|
|
45417
|
-
/* @__PURE__ */ (0,
|
|
45666
|
+
/* @__PURE__ */ (0, import_jsx_runtime184.jsx)(
|
|
45418
45667
|
"div",
|
|
45419
45668
|
{
|
|
45420
45669
|
className: cn(
|
|
@@ -45425,7 +45674,7 @@ var Sidebar = React114.forwardRef(
|
|
|
45425
45674
|
className
|
|
45426
45675
|
),
|
|
45427
45676
|
...props,
|
|
45428
|
-
children: /* @__PURE__ */ (0,
|
|
45677
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(
|
|
45429
45678
|
"div",
|
|
45430
45679
|
{
|
|
45431
45680
|
"data-sidebar": "sidebar",
|
|
@@ -45441,9 +45690,9 @@ var Sidebar = React114.forwardRef(
|
|
|
45441
45690
|
}
|
|
45442
45691
|
);
|
|
45443
45692
|
Sidebar.displayName = "Sidebar";
|
|
45444
|
-
var SidebarTrigger =
|
|
45693
|
+
var SidebarTrigger = React115.forwardRef(({ className, onClick, ...props }, ref) => {
|
|
45445
45694
|
const { toggleSidebar } = useSidebar();
|
|
45446
|
-
return /* @__PURE__ */ (0,
|
|
45695
|
+
return /* @__PURE__ */ (0, import_jsx_runtime184.jsxs)(
|
|
45447
45696
|
Button,
|
|
45448
45697
|
{
|
|
45449
45698
|
ref,
|
|
@@ -45457,16 +45706,16 @@ var SidebarTrigger = React114.forwardRef(({ className, onClick, ...props }, ref)
|
|
|
45457
45706
|
},
|
|
45458
45707
|
...props,
|
|
45459
45708
|
children: [
|
|
45460
|
-
/* @__PURE__ */ (0,
|
|
45461
|
-
/* @__PURE__ */ (0,
|
|
45709
|
+
/* @__PURE__ */ (0, import_jsx_runtime184.jsx)(PanelLeft, {}),
|
|
45710
|
+
/* @__PURE__ */ (0, import_jsx_runtime184.jsx)("span", { className: "sr-only", children: "Toggle Sidebar" })
|
|
45462
45711
|
]
|
|
45463
45712
|
}
|
|
45464
45713
|
);
|
|
45465
45714
|
});
|
|
45466
45715
|
SidebarTrigger.displayName = "SidebarTrigger";
|
|
45467
|
-
var SidebarRail =
|
|
45716
|
+
var SidebarRail = React115.forwardRef(({ className, ...props }, ref) => {
|
|
45468
45717
|
const { toggleSidebar } = useSidebar();
|
|
45469
|
-
return /* @__PURE__ */ (0,
|
|
45718
|
+
return /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(
|
|
45470
45719
|
"button",
|
|
45471
45720
|
{
|
|
45472
45721
|
ref,
|
|
@@ -45489,8 +45738,8 @@ var SidebarRail = React114.forwardRef(({ className, ...props }, ref) => {
|
|
|
45489
45738
|
);
|
|
45490
45739
|
});
|
|
45491
45740
|
SidebarRail.displayName = "SidebarRail";
|
|
45492
|
-
var SidebarInset =
|
|
45493
|
-
return /* @__PURE__ */ (0,
|
|
45741
|
+
var SidebarInset = React115.forwardRef(({ className, ...props }, ref) => {
|
|
45742
|
+
return /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(
|
|
45494
45743
|
"main",
|
|
45495
45744
|
{
|
|
45496
45745
|
ref,
|
|
@@ -45504,8 +45753,8 @@ var SidebarInset = React114.forwardRef(({ className, ...props }, ref) => {
|
|
|
45504
45753
|
);
|
|
45505
45754
|
});
|
|
45506
45755
|
SidebarInset.displayName = "SidebarInset";
|
|
45507
|
-
var SidebarInput =
|
|
45508
|
-
return /* @__PURE__ */ (0,
|
|
45756
|
+
var SidebarInput = React115.forwardRef(({ className, ...props }, ref) => {
|
|
45757
|
+
return /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(
|
|
45509
45758
|
Input,
|
|
45510
45759
|
{
|
|
45511
45760
|
ref,
|
|
@@ -45519,8 +45768,8 @@ var SidebarInput = React114.forwardRef(({ className, ...props }, ref) => {
|
|
|
45519
45768
|
);
|
|
45520
45769
|
});
|
|
45521
45770
|
SidebarInput.displayName = "SidebarInput";
|
|
45522
|
-
var SidebarHeader =
|
|
45523
|
-
return /* @__PURE__ */ (0,
|
|
45771
|
+
var SidebarHeader = React115.forwardRef(({ className, ...props }, ref) => {
|
|
45772
|
+
return /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(
|
|
45524
45773
|
"div",
|
|
45525
45774
|
{
|
|
45526
45775
|
ref,
|
|
@@ -45531,8 +45780,8 @@ var SidebarHeader = React114.forwardRef(({ className, ...props }, ref) => {
|
|
|
45531
45780
|
);
|
|
45532
45781
|
});
|
|
45533
45782
|
SidebarHeader.displayName = "SidebarHeader";
|
|
45534
|
-
var SidebarFooter =
|
|
45535
|
-
return /* @__PURE__ */ (0,
|
|
45783
|
+
var SidebarFooter = React115.forwardRef(({ className, ...props }, ref) => {
|
|
45784
|
+
return /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(
|
|
45536
45785
|
"div",
|
|
45537
45786
|
{
|
|
45538
45787
|
ref,
|
|
@@ -45543,8 +45792,8 @@ var SidebarFooter = React114.forwardRef(({ className, ...props }, ref) => {
|
|
|
45543
45792
|
);
|
|
45544
45793
|
});
|
|
45545
45794
|
SidebarFooter.displayName = "SidebarFooter";
|
|
45546
|
-
var SidebarSeparator =
|
|
45547
|
-
return /* @__PURE__ */ (0,
|
|
45795
|
+
var SidebarSeparator = React115.forwardRef(({ className, ...props }, ref) => {
|
|
45796
|
+
return /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(
|
|
45548
45797
|
Separator2,
|
|
45549
45798
|
{
|
|
45550
45799
|
ref,
|
|
@@ -45555,8 +45804,8 @@ var SidebarSeparator = React114.forwardRef(({ className, ...props }, ref) => {
|
|
|
45555
45804
|
);
|
|
45556
45805
|
});
|
|
45557
45806
|
SidebarSeparator.displayName = "SidebarSeparator";
|
|
45558
|
-
var SidebarContent =
|
|
45559
|
-
return /* @__PURE__ */ (0,
|
|
45807
|
+
var SidebarContent = React115.forwardRef(({ className, ...props }, ref) => {
|
|
45808
|
+
return /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(
|
|
45560
45809
|
"div",
|
|
45561
45810
|
{
|
|
45562
45811
|
ref,
|
|
@@ -45570,8 +45819,8 @@ var SidebarContent = React114.forwardRef(({ className, ...props }, ref) => {
|
|
|
45570
45819
|
);
|
|
45571
45820
|
});
|
|
45572
45821
|
SidebarContent.displayName = "SidebarContent";
|
|
45573
|
-
var SidebarGroup =
|
|
45574
|
-
return /* @__PURE__ */ (0,
|
|
45822
|
+
var SidebarGroup = React115.forwardRef(({ className, ...props }, ref) => {
|
|
45823
|
+
return /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(
|
|
45575
45824
|
"div",
|
|
45576
45825
|
{
|
|
45577
45826
|
ref,
|
|
@@ -45582,9 +45831,9 @@ var SidebarGroup = React114.forwardRef(({ className, ...props }, ref) => {
|
|
|
45582
45831
|
);
|
|
45583
45832
|
});
|
|
45584
45833
|
SidebarGroup.displayName = "SidebarGroup";
|
|
45585
|
-
var SidebarGroupLabel =
|
|
45834
|
+
var SidebarGroupLabel = React115.forwardRef(({ className, asChild = false, ...props }, ref) => {
|
|
45586
45835
|
const Comp = asChild ? import_react_slot6.Slot : "div";
|
|
45587
|
-
return /* @__PURE__ */ (0,
|
|
45836
|
+
return /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(
|
|
45588
45837
|
Comp,
|
|
45589
45838
|
{
|
|
45590
45839
|
ref,
|
|
@@ -45599,9 +45848,9 @@ var SidebarGroupLabel = React114.forwardRef(({ className, asChild = false, ...pr
|
|
|
45599
45848
|
);
|
|
45600
45849
|
});
|
|
45601
45850
|
SidebarGroupLabel.displayName = "SidebarGroupLabel";
|
|
45602
|
-
var SidebarGroupAction =
|
|
45851
|
+
var SidebarGroupAction = React115.forwardRef(({ className, asChild = false, ...props }, ref) => {
|
|
45603
45852
|
const Comp = asChild ? import_react_slot6.Slot : "button";
|
|
45604
|
-
return /* @__PURE__ */ (0,
|
|
45853
|
+
return /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(
|
|
45605
45854
|
Comp,
|
|
45606
45855
|
{
|
|
45607
45856
|
ref,
|
|
@@ -45618,7 +45867,7 @@ var SidebarGroupAction = React114.forwardRef(({ className, asChild = false, ...p
|
|
|
45618
45867
|
);
|
|
45619
45868
|
});
|
|
45620
45869
|
SidebarGroupAction.displayName = "SidebarGroupAction";
|
|
45621
|
-
var SidebarGroupContent =
|
|
45870
|
+
var SidebarGroupContent = React115.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(
|
|
45622
45871
|
"div",
|
|
45623
45872
|
{
|
|
45624
45873
|
ref,
|
|
@@ -45628,7 +45877,7 @@ var SidebarGroupContent = React114.forwardRef(({ className, ...props }, ref) =>
|
|
|
45628
45877
|
}
|
|
45629
45878
|
));
|
|
45630
45879
|
SidebarGroupContent.displayName = "SidebarGroupContent";
|
|
45631
|
-
var SidebarMenu =
|
|
45880
|
+
var SidebarMenu = React115.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(
|
|
45632
45881
|
"ul",
|
|
45633
45882
|
{
|
|
45634
45883
|
ref,
|
|
@@ -45638,7 +45887,7 @@ var SidebarMenu = React114.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
45638
45887
|
}
|
|
45639
45888
|
));
|
|
45640
45889
|
SidebarMenu.displayName = "SidebarMenu";
|
|
45641
|
-
var SidebarMenuItem =
|
|
45890
|
+
var SidebarMenuItem = React115.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(
|
|
45642
45891
|
"li",
|
|
45643
45892
|
{
|
|
45644
45893
|
ref,
|
|
@@ -45668,7 +45917,7 @@ var sidebarMenuButtonVariants = (0, import_class_variance_authority13.cva)(
|
|
|
45668
45917
|
}
|
|
45669
45918
|
}
|
|
45670
45919
|
);
|
|
45671
|
-
var SidebarMenuButton =
|
|
45920
|
+
var SidebarMenuButton = React115.forwardRef(
|
|
45672
45921
|
({
|
|
45673
45922
|
asChild = false,
|
|
45674
45923
|
isActive = false,
|
|
@@ -45680,7 +45929,7 @@ var SidebarMenuButton = React114.forwardRef(
|
|
|
45680
45929
|
}, ref) => {
|
|
45681
45930
|
const Comp = asChild ? import_react_slot6.Slot : "button";
|
|
45682
45931
|
const { isMobile, state } = useSidebar();
|
|
45683
|
-
const button = /* @__PURE__ */ (0,
|
|
45932
|
+
const button = /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(
|
|
45684
45933
|
Comp,
|
|
45685
45934
|
{
|
|
45686
45935
|
ref,
|
|
@@ -45699,9 +45948,9 @@ var SidebarMenuButton = React114.forwardRef(
|
|
|
45699
45948
|
children: tooltip
|
|
45700
45949
|
};
|
|
45701
45950
|
}
|
|
45702
|
-
return /* @__PURE__ */ (0,
|
|
45703
|
-
/* @__PURE__ */ (0,
|
|
45704
|
-
/* @__PURE__ */ (0,
|
|
45951
|
+
return /* @__PURE__ */ (0, import_jsx_runtime184.jsxs)(Tooltip, { children: [
|
|
45952
|
+
/* @__PURE__ */ (0, import_jsx_runtime184.jsx)(TooltipTrigger, { asChild: true, children: button }),
|
|
45953
|
+
/* @__PURE__ */ (0, import_jsx_runtime184.jsx)(
|
|
45705
45954
|
TooltipContent,
|
|
45706
45955
|
{
|
|
45707
45956
|
side: "right",
|
|
@@ -45714,9 +45963,9 @@ var SidebarMenuButton = React114.forwardRef(
|
|
|
45714
45963
|
}
|
|
45715
45964
|
);
|
|
45716
45965
|
SidebarMenuButton.displayName = "SidebarMenuButton";
|
|
45717
|
-
var SidebarMenuAction =
|
|
45966
|
+
var SidebarMenuAction = React115.forwardRef(({ className, asChild = false, showOnHover = false, ...props }, ref) => {
|
|
45718
45967
|
const Comp = asChild ? import_react_slot6.Slot : "button";
|
|
45719
|
-
return /* @__PURE__ */ (0,
|
|
45968
|
+
return /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(
|
|
45720
45969
|
Comp,
|
|
45721
45970
|
{
|
|
45722
45971
|
ref,
|
|
@@ -45737,7 +45986,7 @@ var SidebarMenuAction = React114.forwardRef(({ className, asChild = false, showO
|
|
|
45737
45986
|
);
|
|
45738
45987
|
});
|
|
45739
45988
|
SidebarMenuAction.displayName = "SidebarMenuAction";
|
|
45740
|
-
var SidebarMenuBadge =
|
|
45989
|
+
var SidebarMenuBadge = React115.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(
|
|
45741
45990
|
"div",
|
|
45742
45991
|
{
|
|
45743
45992
|
ref,
|
|
@@ -45755,11 +46004,11 @@ var SidebarMenuBadge = React114.forwardRef(({ className, ...props }, ref) => /*
|
|
|
45755
46004
|
}
|
|
45756
46005
|
));
|
|
45757
46006
|
SidebarMenuBadge.displayName = "SidebarMenuBadge";
|
|
45758
|
-
var SidebarMenuSkeleton =
|
|
45759
|
-
const width =
|
|
46007
|
+
var SidebarMenuSkeleton = React115.forwardRef(({ className, showIcon = false, ...props }, ref) => {
|
|
46008
|
+
const width = React115.useMemo(() => {
|
|
45760
46009
|
return `${Math.floor(Math.random() * 40) + 50}%`;
|
|
45761
46010
|
}, []);
|
|
45762
|
-
return /* @__PURE__ */ (0,
|
|
46011
|
+
return /* @__PURE__ */ (0, import_jsx_runtime184.jsxs)(
|
|
45763
46012
|
"div",
|
|
45764
46013
|
{
|
|
45765
46014
|
ref,
|
|
@@ -45767,14 +46016,14 @@ var SidebarMenuSkeleton = React114.forwardRef(({ className, showIcon = false, ..
|
|
|
45767
46016
|
className: cn("flex h-8 items-center gap-2 rounded-md px-2", className),
|
|
45768
46017
|
...props,
|
|
45769
46018
|
children: [
|
|
45770
|
-
showIcon && /* @__PURE__ */ (0,
|
|
46019
|
+
showIcon && /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(
|
|
45771
46020
|
Skeleton,
|
|
45772
46021
|
{
|
|
45773
46022
|
className: "size-4 rounded-md",
|
|
45774
46023
|
"data-sidebar": "menu-skeleton-icon"
|
|
45775
46024
|
}
|
|
45776
46025
|
),
|
|
45777
|
-
/* @__PURE__ */ (0,
|
|
46026
|
+
/* @__PURE__ */ (0, import_jsx_runtime184.jsx)(
|
|
45778
46027
|
Skeleton,
|
|
45779
46028
|
{
|
|
45780
46029
|
className: "h-4 max-w-[--skeleton-width] flex-1",
|
|
@@ -45789,7 +46038,7 @@ var SidebarMenuSkeleton = React114.forwardRef(({ className, showIcon = false, ..
|
|
|
45789
46038
|
);
|
|
45790
46039
|
});
|
|
45791
46040
|
SidebarMenuSkeleton.displayName = "SidebarMenuSkeleton";
|
|
45792
|
-
var SidebarMenuSub =
|
|
46041
|
+
var SidebarMenuSub = React115.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(
|
|
45793
46042
|
"ul",
|
|
45794
46043
|
{
|
|
45795
46044
|
ref,
|
|
@@ -45803,11 +46052,11 @@ var SidebarMenuSub = React114.forwardRef(({ className, ...props }, ref) => /* @_
|
|
|
45803
46052
|
}
|
|
45804
46053
|
));
|
|
45805
46054
|
SidebarMenuSub.displayName = "SidebarMenuSub";
|
|
45806
|
-
var SidebarMenuSubItem =
|
|
46055
|
+
var SidebarMenuSubItem = React115.forwardRef(({ ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime184.jsx)("li", { ref, ...props }));
|
|
45807
46056
|
SidebarMenuSubItem.displayName = "SidebarMenuSubItem";
|
|
45808
|
-
var SidebarMenuSubButton =
|
|
46057
|
+
var SidebarMenuSubButton = React115.forwardRef(({ asChild = false, size = "md", isActive, className, ...props }, ref) => {
|
|
45809
46058
|
const Comp = asChild ? import_react_slot6.Slot : "a";
|
|
45810
|
-
return /* @__PURE__ */ (0,
|
|
46059
|
+
return /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(
|
|
45811
46060
|
Comp,
|
|
45812
46061
|
{
|
|
45813
46062
|
ref,
|
|
@@ -45831,20 +46080,20 @@ SidebarMenuSubButton.displayName = "SidebarMenuSubButton";
|
|
|
45831
46080
|
// src/components/ui/sonner.tsx
|
|
45832
46081
|
var import_next_themes = require("next-themes");
|
|
45833
46082
|
var import_sonner = require("sonner");
|
|
45834
|
-
var
|
|
46083
|
+
var import_jsx_runtime185 = require("react/jsx-runtime");
|
|
45835
46084
|
var Toaster = ({ ...props }) => {
|
|
45836
46085
|
const { theme = "system" } = (0, import_next_themes.useTheme)();
|
|
45837
|
-
return /* @__PURE__ */ (0,
|
|
46086
|
+
return /* @__PURE__ */ (0, import_jsx_runtime185.jsx)(
|
|
45838
46087
|
import_sonner.Toaster,
|
|
45839
46088
|
{
|
|
45840
46089
|
theme,
|
|
45841
46090
|
className: "toaster group",
|
|
45842
46091
|
icons: {
|
|
45843
|
-
success: /* @__PURE__ */ (0,
|
|
45844
|
-
info: /* @__PURE__ */ (0,
|
|
45845
|
-
warning: /* @__PURE__ */ (0,
|
|
45846
|
-
error: /* @__PURE__ */ (0,
|
|
45847
|
-
loading: /* @__PURE__ */ (0,
|
|
46092
|
+
success: /* @__PURE__ */ (0, import_jsx_runtime185.jsx)(CircleCheck, { className: "h-4 w-4" }),
|
|
46093
|
+
info: /* @__PURE__ */ (0, import_jsx_runtime185.jsx)(Info, { className: "h-4 w-4" }),
|
|
46094
|
+
warning: /* @__PURE__ */ (0, import_jsx_runtime185.jsx)(TriangleAlert, { className: "h-4 w-4" }),
|
|
46095
|
+
error: /* @__PURE__ */ (0, import_jsx_runtime185.jsx)(OctagonX, { className: "h-4 w-4" }),
|
|
46096
|
+
loading: /* @__PURE__ */ (0, import_jsx_runtime185.jsx)(LoaderCircle, { className: "h-4 w-4 animate-spin" })
|
|
45848
46097
|
},
|
|
45849
46098
|
toastOptions: {
|
|
45850
46099
|
classNames: {
|
|
@@ -45860,26 +46109,26 @@ var Toaster = ({ ...props }) => {
|
|
|
45860
46109
|
};
|
|
45861
46110
|
|
|
45862
46111
|
// src/components/ui/toggle-group.tsx
|
|
45863
|
-
var
|
|
46112
|
+
var React116 = __toESM(require("react"), 1);
|
|
45864
46113
|
var ToggleGroupPrimitive = __toESM(require("@radix-ui/react-toggle-group"), 1);
|
|
45865
|
-
var
|
|
45866
|
-
var ToggleGroupContext =
|
|
46114
|
+
var import_jsx_runtime186 = require("react/jsx-runtime");
|
|
46115
|
+
var ToggleGroupContext = React116.createContext({
|
|
45867
46116
|
size: "default",
|
|
45868
46117
|
variant: "default"
|
|
45869
46118
|
});
|
|
45870
|
-
var ToggleGroup =
|
|
46119
|
+
var ToggleGroup = React116.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime186.jsx)(
|
|
45871
46120
|
ToggleGroupPrimitive.Root,
|
|
45872
46121
|
{
|
|
45873
46122
|
ref,
|
|
45874
46123
|
className: cn("flex items-center justify-center gap-1", className),
|
|
45875
46124
|
...props,
|
|
45876
|
-
children: /* @__PURE__ */ (0,
|
|
46125
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime186.jsx)(ToggleGroupContext.Provider, { value: { variant, size }, children })
|
|
45877
46126
|
}
|
|
45878
46127
|
));
|
|
45879
46128
|
ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
|
|
45880
|
-
var ToggleGroupItem =
|
|
45881
|
-
const context =
|
|
45882
|
-
return /* @__PURE__ */ (0,
|
|
46129
|
+
var ToggleGroupItem = React116.forwardRef(({ className, children, variant, size, ...props }, ref) => {
|
|
46130
|
+
const context = React116.useContext(ToggleGroupContext);
|
|
46131
|
+
return /* @__PURE__ */ (0, import_jsx_runtime186.jsx)(
|
|
45883
46132
|
ToggleGroupPrimitive.Item,
|
|
45884
46133
|
{
|
|
45885
46134
|
ref,
|
|
@@ -45898,7 +46147,7 @@ var ToggleGroupItem = React115.forwardRef(({ className, children, variant, size,
|
|
|
45898
46147
|
ToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;
|
|
45899
46148
|
|
|
45900
46149
|
// src/render/PXEngineRenderer.tsx
|
|
45901
|
-
var
|
|
46150
|
+
var import_jsx_runtime187 = require("react/jsx-runtime");
|
|
45902
46151
|
var CONTEXT_DEPENDENT_COMPONENTS = /* @__PURE__ */ new Set([
|
|
45903
46152
|
// Form components - require FormField + FormItem context
|
|
45904
46153
|
"FormLabel",
|
|
@@ -46003,24 +46252,24 @@ var REGISTERED_COMPONENTS = /* @__PURE__ */ new Set([
|
|
|
46003
46252
|
]);
|
|
46004
46253
|
var renderContextDependentError = (componentName, normalizedName, key) => {
|
|
46005
46254
|
const suggestion = COMPONENT_SUGGESTIONS[normalizedName] || `${componentName}Atom (if available)`;
|
|
46006
|
-
return /* @__PURE__ */ (0,
|
|
46255
|
+
return /* @__PURE__ */ (0, import_jsx_runtime187.jsxs)(
|
|
46007
46256
|
"div",
|
|
46008
46257
|
{
|
|
46009
46258
|
className: "p-4 border-2 border-amber-500/50 rounded-lg bg-amber-50/80 space-y-2 my-2",
|
|
46010
46259
|
children: [
|
|
46011
|
-
/* @__PURE__ */ (0,
|
|
46012
|
-
/* @__PURE__ */ (0,
|
|
46013
|
-
/* @__PURE__ */ (0,
|
|
46014
|
-
/* @__PURE__ */ (0,
|
|
46260
|
+
/* @__PURE__ */ (0, import_jsx_runtime187.jsxs)("div", { className: "flex items-start gap-2", children: [
|
|
46261
|
+
/* @__PURE__ */ (0, import_jsx_runtime187.jsx)("span", { className: "text-amber-600 font-bold text-lg", children: "\u26A0\uFE0F" }),
|
|
46262
|
+
/* @__PURE__ */ (0, import_jsx_runtime187.jsxs)("div", { className: "flex-1", children: [
|
|
46263
|
+
/* @__PURE__ */ (0, import_jsx_runtime187.jsxs)("p", { className: "text-sm font-semibold text-amber-900", children: [
|
|
46015
46264
|
"Invalid Component: ",
|
|
46016
46265
|
componentName
|
|
46017
46266
|
] }),
|
|
46018
|
-
/* @__PURE__ */ (0,
|
|
46267
|
+
/* @__PURE__ */ (0, import_jsx_runtime187.jsx)("p", { className: "text-xs text-amber-700 mt-1", children: "This component requires React Context and cannot be rendered directly in schemas." })
|
|
46019
46268
|
] })
|
|
46020
46269
|
] }),
|
|
46021
|
-
/* @__PURE__ */ (0,
|
|
46022
|
-
/* @__PURE__ */ (0,
|
|
46023
|
-
/* @__PURE__ */ (0,
|
|
46270
|
+
/* @__PURE__ */ (0, import_jsx_runtime187.jsxs)("div", { className: "bg-white/60 p-3 rounded border border-amber-200", children: [
|
|
46271
|
+
/* @__PURE__ */ (0, import_jsx_runtime187.jsx)("p", { className: "text-xs font-semibold text-gray-700 mb-1.5", children: "\u2713 Use instead:" }),
|
|
46272
|
+
/* @__PURE__ */ (0, import_jsx_runtime187.jsx)("code", { className: "text-xs text-blue-700 bg-blue-50 px-2 py-1 rounded", children: suggestion })
|
|
46024
46273
|
] })
|
|
46025
46274
|
]
|
|
46026
46275
|
},
|
|
@@ -46098,12 +46347,12 @@ var PXEngineRenderer = ({
|
|
|
46098
46347
|
const root = schema.root || schema;
|
|
46099
46348
|
const renderRecursive = (component, index) => {
|
|
46100
46349
|
if (Array.isArray(component)) {
|
|
46101
|
-
return /* @__PURE__ */ (0,
|
|
46350
|
+
return /* @__PURE__ */ (0, import_jsx_runtime187.jsx)(import_react93.default.Fragment, { children: component.map((child, idx) => renderRecursive(child, idx)) }, index !== void 0 ? `array-${index}` : "array-root");
|
|
46102
46351
|
}
|
|
46103
46352
|
if (typeof component === "string" || typeof component === "number") {
|
|
46104
46353
|
return component;
|
|
46105
46354
|
}
|
|
46106
|
-
if (
|
|
46355
|
+
if (import_react93.default.isValidElement(component)) {
|
|
46107
46356
|
return component;
|
|
46108
46357
|
}
|
|
46109
46358
|
if (!component || typeof component !== "object") return null;
|
|
@@ -46185,7 +46434,7 @@ var PXEngineRenderer = ({
|
|
|
46185
46434
|
const isAtomWithRenderProp = ATOMS_WITH_RENDER.has(atomName);
|
|
46186
46435
|
const finalStyle = { ...dynamicStyle, ...finalProps.style || {} };
|
|
46187
46436
|
if (isAtomWithRenderProp) {
|
|
46188
|
-
return /* @__PURE__ */ (0,
|
|
46437
|
+
return /* @__PURE__ */ (0, import_jsx_runtime187.jsx)(
|
|
46189
46438
|
TargetComponent,
|
|
46190
46439
|
{
|
|
46191
46440
|
...finalProps,
|
|
@@ -46197,7 +46446,7 @@ var PXEngineRenderer = ({
|
|
|
46197
46446
|
uniqueKey
|
|
46198
46447
|
);
|
|
46199
46448
|
} else {
|
|
46200
|
-
return /* @__PURE__ */ (0,
|
|
46449
|
+
return /* @__PURE__ */ (0, import_jsx_runtime187.jsx)(
|
|
46201
46450
|
TargetComponent,
|
|
46202
46451
|
{
|
|
46203
46452
|
...finalProps,
|
|
@@ -46209,7 +46458,7 @@ var PXEngineRenderer = ({
|
|
|
46209
46458
|
);
|
|
46210
46459
|
}
|
|
46211
46460
|
};
|
|
46212
|
-
return /* @__PURE__ */ (0,
|
|
46461
|
+
return /* @__PURE__ */ (0, import_jsx_runtime187.jsx)("div", { className: "px-engine-root relative w-full h-full", children: renderRecursive(root) });
|
|
46213
46462
|
};
|
|
46214
46463
|
// Annotate the CommonJS export names for ESM import in node:
|
|
46215
46464
|
0 && (module.exports = {
|
|
@@ -46518,6 +46767,7 @@ var PXEngineRenderer = ({
|
|
|
46518
46767
|
TooltipTrigger,
|
|
46519
46768
|
TopPostsGrid,
|
|
46520
46769
|
VideoAtom,
|
|
46770
|
+
WebSearchJobCard,
|
|
46521
46771
|
cn,
|
|
46522
46772
|
defaultFetchSelections,
|
|
46523
46773
|
defaultPersistSelection,
|