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