pxengine 0.1.72 → 0.1.73
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 +1169 -840
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +27 -1
- package/dist/index.d.ts +27 -1
- package/dist/index.mjs +1153 -825
- package/dist/index.mjs.map +1 -1
- package/dist/registry.json +68 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -253,6 +253,7 @@ __export(index_exports, {
|
|
|
253
253
|
PopoverAtom: () => PopoverAtom,
|
|
254
254
|
PopoverContent: () => PopoverContent,
|
|
255
255
|
PopoverTrigger: () => PopoverTrigger,
|
|
256
|
+
PresentationJobCard: () => PresentationJobCard,
|
|
256
257
|
PriorityActionsCard: () => PriorityActionsCard,
|
|
257
258
|
Progress: () => Progress,
|
|
258
259
|
ProgressAtom: () => ProgressAtom,
|
|
@@ -348,7 +349,7 @@ __export(index_exports, {
|
|
|
348
349
|
module.exports = __toCommonJS(index_exports);
|
|
349
350
|
|
|
350
351
|
// src/render/PXEngineRenderer.tsx
|
|
351
|
-
var
|
|
352
|
+
var import_react90 = __toESM(require("react"), 1);
|
|
352
353
|
|
|
353
354
|
// src/atoms/index.ts
|
|
354
355
|
var atoms_exports = {};
|
|
@@ -33944,6 +33945,7 @@ __export(molecules_exports, {
|
|
|
33944
33945
|
PlatformSelectDisplay: () => PlatformSelectDisplay,
|
|
33945
33946
|
PlatformSelectEdit: () => PlatformSelectEdit,
|
|
33946
33947
|
PollCard: () => PollCard,
|
|
33948
|
+
PresentationJobCard: () => PresentationJobCard,
|
|
33947
33949
|
PriorityActionsCard: () => PriorityActionsCard,
|
|
33948
33950
|
RecommendationCard: () => RecommendationCard,
|
|
33949
33951
|
ResearchBriefCard: () => ResearchBriefCard,
|
|
@@ -38844,8 +38846,334 @@ var NextStepCard = ({
|
|
|
38844
38846
|
)
|
|
38845
38847
|
] });
|
|
38846
38848
|
|
|
38849
|
+
// src/molecules/generic/PresentationJobCard/PresentationJobCard.tsx
|
|
38850
|
+
var import_react74 = require("react");
|
|
38851
|
+
var import_jsx_runtime146 = require("react/jsx-runtime");
|
|
38852
|
+
var DownloadIcon = () => /* @__PURE__ */ (0, import_jsx_runtime146.jsxs)("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.2", strokeLinecap: "round", strokeLinejoin: "round", children: [
|
|
38853
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)("path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }),
|
|
38854
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)("polyline", { points: "7 10 12 15 17 10" }),
|
|
38855
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)("line", { x1: "12", y1: "15", x2: "12", y2: "3" })
|
|
38856
|
+
] });
|
|
38857
|
+
var SlidesIcon = () => /* @__PURE__ */ (0, import_jsx_runtime146.jsxs)("svg", { width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
|
|
38858
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)("rect", { x: "2", y: "3", width: "20", height: "14", rx: "2" }),
|
|
38859
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)("path", { d: "M8 21h8M12 17v4" })
|
|
38860
|
+
] });
|
|
38861
|
+
var CloseIcon = () => /* @__PURE__ */ (0, import_jsx_runtime146.jsxs)("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.2", strokeLinecap: "round", strokeLinejoin: "round", children: [
|
|
38862
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)("line", { x1: "18", y1: "6", x2: "6", y2: "18" }),
|
|
38863
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)("line", { x1: "6", y1: "6", x2: "18", y2: "18" })
|
|
38864
|
+
] });
|
|
38865
|
+
var ChevronLeft2 = () => /* @__PURE__ */ (0, import_jsx_runtime146.jsx)("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ (0, import_jsx_runtime146.jsx)("polyline", { points: "15 18 9 12 15 6" }) });
|
|
38866
|
+
var ChevronRight2 = () => /* @__PURE__ */ (0, import_jsx_runtime146.jsx)("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ (0, import_jsx_runtime146.jsx)("polyline", { points: "9 18 15 12 9 6" }) });
|
|
38867
|
+
var Skel = ({ className, style }) => /* @__PURE__ */ (0, import_jsx_runtime146.jsx)("div", { className: cn("animate-pulse rounded-md bg-zinc-800/60", className), style });
|
|
38868
|
+
var FORMATS = [
|
|
38869
|
+
{
|
|
38870
|
+
key: "pptx_url",
|
|
38871
|
+
label: "PowerPoint",
|
|
38872
|
+
ext: ".pptx",
|
|
38873
|
+
emoji: "\u{1F4CA}",
|
|
38874
|
+
desc: "Editable slides \u2014 open in Microsoft PowerPoint or Google Slides",
|
|
38875
|
+
accent: { text: "text-orange-400", bg: "bg-orange-500/10 border-orange-500/20", pill: "bg-orange-500/15 text-orange-400 border-orange-500/25" }
|
|
38876
|
+
},
|
|
38877
|
+
{
|
|
38878
|
+
key: "pdf_url",
|
|
38879
|
+
label: "PDF",
|
|
38880
|
+
ext: ".pdf",
|
|
38881
|
+
emoji: "\u{1F4C4}",
|
|
38882
|
+
desc: "Print-ready, fixed layout \u2014 open in any PDF viewer",
|
|
38883
|
+
accent: { text: "text-red-400", bg: "bg-red-500/10 border-red-500/20", pill: "bg-red-500/15 text-red-400 border-red-500/25" }
|
|
38884
|
+
},
|
|
38885
|
+
{
|
|
38886
|
+
key: "html_url",
|
|
38887
|
+
label: "HTML",
|
|
38888
|
+
ext: ".html",
|
|
38889
|
+
emoji: "\u{1F310}",
|
|
38890
|
+
desc: "Interactive web presentation \u2014 download and open in browser",
|
|
38891
|
+
accent: { text: "text-indigo-400", bg: "bg-indigo-500/10 border-indigo-500/20", pill: "bg-indigo-500/15 text-indigo-400 border-indigo-500/25" }
|
|
38892
|
+
}
|
|
38893
|
+
];
|
|
38894
|
+
var ExportModal = ({ formats, title, onClose }) => {
|
|
38895
|
+
const available = FORMATS.filter((f) => formats[f.key]);
|
|
38896
|
+
const filename = title.replace(/[^a-z0-9]/gi, "-").toLowerCase();
|
|
38897
|
+
return /* @__PURE__ */ (0, import_jsx_runtime146.jsxs)("div", { className: "fixed inset-0 z-50 flex items-center justify-center p-4", children: [
|
|
38898
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)("div", { className: "absolute inset-0 bg-black/70 backdrop-blur-sm", onClick: onClose }),
|
|
38899
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsxs)("div", { className: "relative z-10 bg-zinc-900 border border-zinc-800 rounded-2xl w-full max-w-sm p-6 shadow-2xl", children: [
|
|
38900
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsxs)("div", { className: "flex items-start justify-between mb-5", children: [
|
|
38901
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsxs)("div", { className: "min-w-0 pr-3", children: [
|
|
38902
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)("h3", { className: "text-sm font-semibold text-zinc-100", children: "Export Presentation" }),
|
|
38903
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)("p", { className: "text-xs text-zinc-500 mt-0.5 truncate", children: title })
|
|
38904
|
+
] }),
|
|
38905
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)(
|
|
38906
|
+
"button",
|
|
38907
|
+
{
|
|
38908
|
+
onClick: onClose,
|
|
38909
|
+
className: "text-zinc-500 hover:text-zinc-200 transition-colors flex-shrink-0 mt-0.5",
|
|
38910
|
+
"aria-label": "Close",
|
|
38911
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(CloseIcon, {})
|
|
38912
|
+
}
|
|
38913
|
+
)
|
|
38914
|
+
] }),
|
|
38915
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsxs)("div", { className: "space-y-2.5", children: [
|
|
38916
|
+
available.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime146.jsx)("p", { className: "text-sm text-zinc-500 text-center py-6", children: "No formats available yet" }),
|
|
38917
|
+
available.map((fmt) => {
|
|
38918
|
+
const url = formats[fmt.key];
|
|
38919
|
+
const dlName = `${filename}${fmt.ext}`;
|
|
38920
|
+
return /* @__PURE__ */ (0, import_jsx_runtime146.jsxs)(
|
|
38921
|
+
"a",
|
|
38922
|
+
{
|
|
38923
|
+
href: url,
|
|
38924
|
+
download: dlName,
|
|
38925
|
+
className: cn(
|
|
38926
|
+
"flex items-center gap-3.5 p-3.5 rounded-xl border transition-all",
|
|
38927
|
+
"hover:brightness-110 cursor-pointer no-underline group",
|
|
38928
|
+
fmt.accent.bg
|
|
38929
|
+
),
|
|
38930
|
+
children: [
|
|
38931
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)("span", { className: "text-xl flex-shrink-0", children: fmt.emoji }),
|
|
38932
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsxs)("div", { className: "flex-1 min-w-0", children: [
|
|
38933
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)("p", { className: cn("text-sm font-semibold", fmt.accent.text), children: fmt.label }),
|
|
38934
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)("p", { className: "text-xs text-zinc-500 mt-0.5 leading-relaxed", children: fmt.desc })
|
|
38935
|
+
] }),
|
|
38936
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)("span", { className: cn("flex-shrink-0 transition-colors", fmt.accent.text), children: /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(DownloadIcon, {}) })
|
|
38937
|
+
]
|
|
38938
|
+
},
|
|
38939
|
+
fmt.key
|
|
38940
|
+
);
|
|
38941
|
+
})
|
|
38942
|
+
] }),
|
|
38943
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)("p", { className: "text-xs text-zinc-600 mt-4 text-center", children: "Download links expire in 7 days" })
|
|
38944
|
+
] })
|
|
38945
|
+
] });
|
|
38946
|
+
};
|
|
38947
|
+
var PresentationJobCard = ({
|
|
38948
|
+
job_id: _job_id,
|
|
38949
|
+
title: initialTitle,
|
|
38950
|
+
status: initialStatus,
|
|
38951
|
+
slide_count: initialSlideCount,
|
|
38952
|
+
formats: initialFormats = {},
|
|
38953
|
+
error: initialError,
|
|
38954
|
+
pollUrl,
|
|
38955
|
+
className
|
|
38956
|
+
}) => {
|
|
38957
|
+
const [status, setStatus] = (0, import_react74.useState)(initialStatus);
|
|
38958
|
+
const [title, setTitle] = (0, import_react74.useState)(initialTitle);
|
|
38959
|
+
const [slideCount, setSlideCount] = (0, import_react74.useState)(initialSlideCount ?? 0);
|
|
38960
|
+
const [formats, setFormats] = (0, import_react74.useState)(initialFormats);
|
|
38961
|
+
const [error, setError] = (0, import_react74.useState)(initialError);
|
|
38962
|
+
const [showModal, setShowModal] = (0, import_react74.useState)(false);
|
|
38963
|
+
const [currentSlide, setCurrentSlide] = (0, import_react74.useState)(1);
|
|
38964
|
+
const [previewScale, setPreviewScale] = (0, import_react74.useState)(1);
|
|
38965
|
+
const intervalRef = (0, import_react74.useRef)(null);
|
|
38966
|
+
const previewRef = (0, import_react74.useRef)(null);
|
|
38967
|
+
const iframeRef = (0, import_react74.useRef)(null);
|
|
38968
|
+
const updateScale = (0, import_react74.useCallback)(() => {
|
|
38969
|
+
if (previewRef.current) {
|
|
38970
|
+
setPreviewScale(previewRef.current.offsetWidth / 1280);
|
|
38971
|
+
}
|
|
38972
|
+
}, []);
|
|
38973
|
+
(0, import_react74.useEffect)(() => {
|
|
38974
|
+
updateScale();
|
|
38975
|
+
if (typeof ResizeObserver === "undefined") return;
|
|
38976
|
+
const ro = new ResizeObserver(updateScale);
|
|
38977
|
+
if (previewRef.current) ro.observe(previewRef.current);
|
|
38978
|
+
return () => ro.disconnect();
|
|
38979
|
+
}, [updateScale, formats.html_url]);
|
|
38980
|
+
(0, import_react74.useEffect)(() => {
|
|
38981
|
+
const handler = (e) => {
|
|
38982
|
+
if (e.data?.type === "slideChanged") {
|
|
38983
|
+
setCurrentSlide(e.data.slide);
|
|
38984
|
+
if (e.data.total && !slideCount) {
|
|
38985
|
+
setSlideCount(e.data.total);
|
|
38986
|
+
}
|
|
38987
|
+
}
|
|
38988
|
+
};
|
|
38989
|
+
window.addEventListener("message", handler);
|
|
38990
|
+
return () => window.removeEventListener("message", handler);
|
|
38991
|
+
}, [slideCount]);
|
|
38992
|
+
const goToSlide = (n) => {
|
|
38993
|
+
const total2 = slideCount || 1;
|
|
38994
|
+
const target = (n - 1 + total2) % total2 + 1;
|
|
38995
|
+
setCurrentSlide(target);
|
|
38996
|
+
iframeRef.current?.contentWindow?.postMessage({ type: "goToSlide", slide: target }, "*");
|
|
38997
|
+
};
|
|
38998
|
+
const isTerminal = status === "complete" || status === "failed";
|
|
38999
|
+
(0, import_react74.useEffect)(() => {
|
|
39000
|
+
if (isTerminal || !pollUrl) return;
|
|
39001
|
+
const poll = async () => {
|
|
39002
|
+
try {
|
|
39003
|
+
const res = await fetch(pollUrl);
|
|
39004
|
+
if (!res.ok) return;
|
|
39005
|
+
const data = await res.json();
|
|
39006
|
+
const newStatus = data.status;
|
|
39007
|
+
setStatus(newStatus);
|
|
39008
|
+
if (newStatus === "complete" && data.output) {
|
|
39009
|
+
if (data.output.title) setTitle(data.output.title);
|
|
39010
|
+
if (data.output.slide_count) setSlideCount(data.output.slide_count);
|
|
39011
|
+
if (data.output.formats) setFormats(data.output.formats);
|
|
39012
|
+
}
|
|
39013
|
+
if (newStatus === "failed" && data.error) {
|
|
39014
|
+
setError(data.error);
|
|
39015
|
+
}
|
|
39016
|
+
} catch {
|
|
39017
|
+
}
|
|
39018
|
+
};
|
|
39019
|
+
poll();
|
|
39020
|
+
intervalRef.current = setInterval(poll, 3e3);
|
|
39021
|
+
return () => {
|
|
39022
|
+
if (intervalRef.current) clearInterval(intervalRef.current);
|
|
39023
|
+
};
|
|
39024
|
+
}, [isTerminal, pollUrl]);
|
|
39025
|
+
(0, import_react74.useEffect)(() => {
|
|
39026
|
+
if (isTerminal && intervalRef.current) {
|
|
39027
|
+
clearInterval(intervalRef.current);
|
|
39028
|
+
intervalRef.current = null;
|
|
39029
|
+
}
|
|
39030
|
+
}, [isTerminal]);
|
|
39031
|
+
if (status === "pending" || status === "running") {
|
|
39032
|
+
return /* @__PURE__ */ (0, import_jsx_runtime146.jsx)("div", { className: cn("w-full", className), children: /* @__PURE__ */ (0, import_jsx_runtime146.jsxs)("div", { className: "bg-zinc-900 border border-zinc-800 rounded-2xl p-5", children: [
|
|
39033
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsxs)("div", { className: "flex items-center gap-3 mb-5", children: [
|
|
39034
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)(Skel, { className: "w-10 h-10 rounded-xl flex-shrink-0" }),
|
|
39035
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsxs)("div", { className: "flex-1 space-y-2", children: [
|
|
39036
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)(Skel, { className: "h-3.5 w-44" }),
|
|
39037
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)(Skel, { className: "h-3 w-28" })
|
|
39038
|
+
] })
|
|
39039
|
+
] }),
|
|
39040
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)("div", { className: "grid grid-cols-3 gap-3", children: [0, 1, 2].map((i) => /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(Skel, { className: "aspect-video rounded-lg", style: { animationDelay: `${i * 150}ms` } }, i)) }),
|
|
39041
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsxs)("div", { className: "flex items-center gap-2.5 mt-4 pt-4 border-t border-zinc-800/60", children: [
|
|
39042
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)("span", { className: "w-2 h-2 rounded-full bg-indigo-500 animate-pulse flex-shrink-0" }),
|
|
39043
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)(Skel, { className: "h-3 w-36" })
|
|
39044
|
+
] })
|
|
39045
|
+
] }) });
|
|
39046
|
+
}
|
|
39047
|
+
if (status === "failed") {
|
|
39048
|
+
return /* @__PURE__ */ (0, import_jsx_runtime146.jsx)("div", { className: cn("w-full", className), children: /* @__PURE__ */ (0, import_jsx_runtime146.jsx)("div", { className: "bg-red-950/20 border border-red-800/25 rounded-2xl p-5", children: /* @__PURE__ */ (0, import_jsx_runtime146.jsxs)("div", { className: "flex items-start gap-3", children: [
|
|
39049
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)("span", { className: "text-red-400 text-base mt-0.5 flex-shrink-0", children: "\u26A0" }),
|
|
39050
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsxs)("div", { children: [
|
|
39051
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)("p", { className: "text-sm font-semibold text-red-300", children: "Presentation generation failed" }),
|
|
39052
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)("p", { className: "text-xs text-red-400/60 mt-1 leading-relaxed", children: error || "An unexpected error occurred. Please try again." })
|
|
39053
|
+
] })
|
|
39054
|
+
] }) }) });
|
|
39055
|
+
}
|
|
39056
|
+
const availablePills = FORMATS.filter((f) => formats[f.key]);
|
|
39057
|
+
const total = slideCount || 1;
|
|
39058
|
+
return /* @__PURE__ */ (0, import_jsx_runtime146.jsxs)(import_jsx_runtime146.Fragment, { children: [
|
|
39059
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)("div", { className: cn("w-full", className), children: /* @__PURE__ */ (0, import_jsx_runtime146.jsxs)("div", { className: "bg-zinc-900 border border-zinc-800 rounded-2xl overflow-hidden", children: [
|
|
39060
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)("div", { className: "h-[3px] bg-gradient-to-r from-indigo-600 via-violet-500 to-purple-600" }),
|
|
39061
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsxs)("div", { className: "p-5", children: [
|
|
39062
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsxs)("div", { className: "flex items-start gap-3", children: [
|
|
39063
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.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_runtime146.jsx)(SlidesIcon, {}) }),
|
|
39064
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsxs)("div", { className: "flex-1 min-w-0", children: [
|
|
39065
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)("h3", { className: "text-sm font-semibold text-zinc-100 truncate leading-tight", children: title }),
|
|
39066
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsxs)("p", { className: "text-xs text-zinc-500 mt-0.5", children: [
|
|
39067
|
+
slideCount ? `${slideCount} slides` : "Presentation",
|
|
39068
|
+
" \xB7 Ready to export"
|
|
39069
|
+
] })
|
|
39070
|
+
] }),
|
|
39071
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsxs)(
|
|
39072
|
+
"button",
|
|
39073
|
+
{
|
|
39074
|
+
onClick: () => setShowModal(true),
|
|
39075
|
+
className: "flex items-center gap-1.5 px-3 py-1.5 bg-indigo-600 hover:bg-indigo-500 active:bg-indigo-700 text-white text-xs font-medium rounded-lg transition-colors flex-shrink-0",
|
|
39076
|
+
children: [
|
|
39077
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)(DownloadIcon, {}),
|
|
39078
|
+
"Export"
|
|
39079
|
+
]
|
|
39080
|
+
}
|
|
39081
|
+
)
|
|
39082
|
+
] }),
|
|
39083
|
+
formats.html_url && /* @__PURE__ */ (0, import_jsx_runtime146.jsxs)("div", { className: "mt-4", children: [
|
|
39084
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)(
|
|
39085
|
+
"div",
|
|
39086
|
+
{
|
|
39087
|
+
ref: previewRef,
|
|
39088
|
+
className: "relative overflow-hidden rounded-xl bg-zinc-950 border border-zinc-800/50",
|
|
39089
|
+
style: { height: Math.round(previewScale * 720) },
|
|
39090
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(
|
|
39091
|
+
"iframe",
|
|
39092
|
+
{
|
|
39093
|
+
ref: iframeRef,
|
|
39094
|
+
src: formats.html_url,
|
|
39095
|
+
title,
|
|
39096
|
+
sandbox: "allow-same-origin allow-scripts",
|
|
39097
|
+
style: {
|
|
39098
|
+
width: 1280,
|
|
39099
|
+
height: 720,
|
|
39100
|
+
transform: `scale(${previewScale})`,
|
|
39101
|
+
transformOrigin: "top left",
|
|
39102
|
+
border: "none",
|
|
39103
|
+
pointerEvents: "none",
|
|
39104
|
+
display: "block"
|
|
39105
|
+
}
|
|
39106
|
+
}
|
|
39107
|
+
)
|
|
39108
|
+
}
|
|
39109
|
+
),
|
|
39110
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsxs)("div", { className: "flex items-center justify-between mt-3", children: [
|
|
39111
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)("div", { className: "flex items-center gap-2", children: availablePills.map((fmt) => /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(
|
|
39112
|
+
"span",
|
|
39113
|
+
{
|
|
39114
|
+
className: cn(
|
|
39115
|
+
"text-xs px-2.5 py-0.5 rounded-md border font-medium",
|
|
39116
|
+
fmt.accent.pill
|
|
39117
|
+
),
|
|
39118
|
+
children: fmt.label
|
|
39119
|
+
},
|
|
39120
|
+
fmt.key
|
|
39121
|
+
)) }),
|
|
39122
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
39123
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)(
|
|
39124
|
+
"button",
|
|
39125
|
+
{
|
|
39126
|
+
onClick: () => goToSlide(currentSlide - 1),
|
|
39127
|
+
disabled: total <= 1,
|
|
39128
|
+
className: "w-7 h-7 rounded-full border border-zinc-700 bg-zinc-800 hover:border-indigo-500 hover:text-indigo-400 text-zinc-400 flex items-center justify-center transition-colors disabled:opacity-30 disabled:cursor-not-allowed",
|
|
39129
|
+
"aria-label": "Previous slide",
|
|
39130
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(ChevronLeft2, {})
|
|
39131
|
+
}
|
|
39132
|
+
),
|
|
39133
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsxs)("span", { className: "text-xs text-zinc-500 font-medium tabular-nums min-w-[3rem] text-center", children: [
|
|
39134
|
+
currentSlide,
|
|
39135
|
+
" / ",
|
|
39136
|
+
total
|
|
39137
|
+
] }),
|
|
39138
|
+
/* @__PURE__ */ (0, import_jsx_runtime146.jsx)(
|
|
39139
|
+
"button",
|
|
39140
|
+
{
|
|
39141
|
+
onClick: () => goToSlide(currentSlide + 1),
|
|
39142
|
+
disabled: total <= 1,
|
|
39143
|
+
className: "w-7 h-7 rounded-full border border-zinc-700 bg-zinc-800 hover:border-indigo-500 hover:text-indigo-400 text-zinc-400 flex items-center justify-center transition-colors disabled:opacity-30 disabled:cursor-not-allowed",
|
|
39144
|
+
"aria-label": "Next slide",
|
|
39145
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(ChevronRight2, {})
|
|
39146
|
+
}
|
|
39147
|
+
)
|
|
39148
|
+
] })
|
|
39149
|
+
] })
|
|
39150
|
+
] }),
|
|
39151
|
+
!formats.html_url && availablePills.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime146.jsx)("div", { className: "flex items-center gap-2 mt-4", children: availablePills.map((fmt) => /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(
|
|
39152
|
+
"span",
|
|
39153
|
+
{
|
|
39154
|
+
className: cn(
|
|
39155
|
+
"text-xs px-2.5 py-0.5 rounded-md border font-medium",
|
|
39156
|
+
fmt.accent.pill
|
|
39157
|
+
),
|
|
39158
|
+
children: fmt.label
|
|
39159
|
+
},
|
|
39160
|
+
fmt.key
|
|
39161
|
+
)) })
|
|
39162
|
+
] })
|
|
39163
|
+
] }) }),
|
|
39164
|
+
showModal && /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(
|
|
39165
|
+
ExportModal,
|
|
39166
|
+
{
|
|
39167
|
+
formats,
|
|
39168
|
+
title,
|
|
39169
|
+
onClose: () => setShowModal(false)
|
|
39170
|
+
}
|
|
39171
|
+
)
|
|
39172
|
+
] });
|
|
39173
|
+
};
|
|
39174
|
+
|
|
38847
39175
|
// src/molecules/creator-discovery/CampaignSeedCard/CampaignSeedCard.tsx
|
|
38848
|
-
var
|
|
39176
|
+
var import_react76 = __toESM(require("react"), 1);
|
|
38849
39177
|
|
|
38850
39178
|
// src/lib/field-utils.ts
|
|
38851
39179
|
function normalizeLabel(key) {
|
|
@@ -38920,7 +39248,7 @@ function generateFieldsFromPropDefinitions(propDefs, data) {
|
|
|
38920
39248
|
}
|
|
38921
39249
|
|
|
38922
39250
|
// src/molecules/creator-discovery/SearchSpecCard/CustomFieldRenderers.tsx
|
|
38923
|
-
var
|
|
39251
|
+
var import_react75 = require("react");
|
|
38924
39252
|
|
|
38925
39253
|
// src/lib/countries.ts
|
|
38926
39254
|
var countries = [
|
|
@@ -39127,15 +39455,15 @@ var countriesWithFlags = Object.fromEntries(
|
|
|
39127
39455
|
);
|
|
39128
39456
|
|
|
39129
39457
|
// src/molecules/creator-discovery/SearchSpecCard/CustomFieldRenderers.tsx
|
|
39130
|
-
var
|
|
39458
|
+
var import_jsx_runtime147 = require("react/jsx-runtime");
|
|
39131
39459
|
var CountrySelectEdit = ({
|
|
39132
39460
|
value,
|
|
39133
39461
|
onChange
|
|
39134
39462
|
}) => {
|
|
39135
|
-
const [isDropdownOpen, setIsDropdownOpen] = (0,
|
|
39136
|
-
const [searchTerm, setSearchTerm] = (0,
|
|
39137
|
-
const dropdownRef = (0,
|
|
39138
|
-
(0,
|
|
39463
|
+
const [isDropdownOpen, setIsDropdownOpen] = (0, import_react75.useState)(false);
|
|
39464
|
+
const [searchTerm, setSearchTerm] = (0, import_react75.useState)("");
|
|
39465
|
+
const dropdownRef = (0, import_react75.useRef)(null);
|
|
39466
|
+
(0, import_react75.useEffect)(() => {
|
|
39139
39467
|
const handleClickOutside = (event) => {
|
|
39140
39468
|
if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {
|
|
39141
39469
|
setIsDropdownOpen(false);
|
|
@@ -39144,7 +39472,7 @@ var CountrySelectEdit = ({
|
|
|
39144
39472
|
document.addEventListener("mousedown", handleClickOutside);
|
|
39145
39473
|
return () => document.removeEventListener("mousedown", handleClickOutside);
|
|
39146
39474
|
}, []);
|
|
39147
|
-
const inputValue = (0,
|
|
39475
|
+
const inputValue = (0, import_react75.useMemo)(() => {
|
|
39148
39476
|
if (Array.isArray(value)) return value;
|
|
39149
39477
|
if (typeof value === "string" && value.trim() !== "") {
|
|
39150
39478
|
const foundCountry = countries.find(
|
|
@@ -39154,16 +39482,16 @@ var CountrySelectEdit = ({
|
|
|
39154
39482
|
}
|
|
39155
39483
|
return [];
|
|
39156
39484
|
}, [value]);
|
|
39157
|
-
return /* @__PURE__ */ (0,
|
|
39158
|
-
/* @__PURE__ */ (0,
|
|
39159
|
-
/* @__PURE__ */ (0,
|
|
39485
|
+
return /* @__PURE__ */ (0, import_jsx_runtime147.jsxs)("div", { className: "space-y-3", children: [
|
|
39486
|
+
/* @__PURE__ */ (0, import_jsx_runtime147.jsxs)("div", { className: "relative", ref: dropdownRef, children: [
|
|
39487
|
+
/* @__PURE__ */ (0, import_jsx_runtime147.jsxs)(
|
|
39160
39488
|
"div",
|
|
39161
39489
|
{
|
|
39162
39490
|
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",
|
|
39163
39491
|
onClick: () => setIsDropdownOpen(!isDropdownOpen),
|
|
39164
39492
|
children: [
|
|
39165
|
-
/* @__PURE__ */ (0,
|
|
39166
|
-
/* @__PURE__ */ (0,
|
|
39493
|
+
/* @__PURE__ */ (0, import_jsx_runtime147.jsx)("span", { className: "text-foreground", children: inputValue.length > 0 ? `${inputValue.length} ${inputValue.length === 1 ? "country" : "countries"} selected` : "Select countries..." }),
|
|
39494
|
+
/* @__PURE__ */ (0, import_jsx_runtime147.jsx)(
|
|
39167
39495
|
ChevronDown,
|
|
39168
39496
|
{
|
|
39169
39497
|
className: cn(
|
|
@@ -39175,8 +39503,8 @@ var CountrySelectEdit = ({
|
|
|
39175
39503
|
]
|
|
39176
39504
|
}
|
|
39177
39505
|
),
|
|
39178
|
-
isDropdownOpen && /* @__PURE__ */ (0,
|
|
39179
|
-
/* @__PURE__ */ (0,
|
|
39506
|
+
isDropdownOpen && /* @__PURE__ */ (0, import_jsx_runtime147.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: [
|
|
39507
|
+
/* @__PURE__ */ (0, import_jsx_runtime147.jsx)("div", { className: "p-2 border-b border-border", children: /* @__PURE__ */ (0, import_jsx_runtime147.jsx)(
|
|
39180
39508
|
"input",
|
|
39181
39509
|
{
|
|
39182
39510
|
type: "text",
|
|
@@ -39187,9 +39515,9 @@ var CountrySelectEdit = ({
|
|
|
39187
39515
|
onClick: (e) => e.stopPropagation()
|
|
39188
39516
|
}
|
|
39189
39517
|
) }),
|
|
39190
|
-
/* @__PURE__ */ (0,
|
|
39518
|
+
/* @__PURE__ */ (0, import_jsx_runtime147.jsx)("div", { className: "max-h-40 overflow-y-auto p-1", children: countries.filter(
|
|
39191
39519
|
(country) => country.name.toLowerCase().includes(searchTerm.toLowerCase()) || country.code.toLowerCase().includes(searchTerm.toLowerCase())
|
|
39192
|
-
).map((country) => /* @__PURE__ */ (0,
|
|
39520
|
+
).map((country) => /* @__PURE__ */ (0, import_jsx_runtime147.jsxs)(
|
|
39193
39521
|
"div",
|
|
39194
39522
|
{
|
|
39195
39523
|
className: cn(
|
|
@@ -39210,30 +39538,30 @@ var CountrySelectEdit = ({
|
|
|
39210
39538
|
}
|
|
39211
39539
|
},
|
|
39212
39540
|
children: [
|
|
39213
|
-
/* @__PURE__ */ (0,
|
|
39214
|
-
/* @__PURE__ */ (0,
|
|
39215
|
-
/* @__PURE__ */ (0,
|
|
39541
|
+
/* @__PURE__ */ (0, import_jsx_runtime147.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
39542
|
+
/* @__PURE__ */ (0, import_jsx_runtime147.jsx)("span", { className: "text-sm text-foreground", children: country.name }),
|
|
39543
|
+
/* @__PURE__ */ (0, import_jsx_runtime147.jsx)("span", { className: "text-xs text-muted-foreground font-mono", children: country.code })
|
|
39216
39544
|
] }),
|
|
39217
|
-
inputValue.includes(country.code) && /* @__PURE__ */ (0,
|
|
39545
|
+
inputValue.includes(country.code) && /* @__PURE__ */ (0, import_jsx_runtime147.jsx)(Check, { className: "h-4 w-4 text-purple500" })
|
|
39218
39546
|
]
|
|
39219
39547
|
},
|
|
39220
39548
|
country.code
|
|
39221
39549
|
)) })
|
|
39222
39550
|
] })
|
|
39223
39551
|
] }),
|
|
39224
|
-
inputValue.length > 0 && /* @__PURE__ */ (0,
|
|
39552
|
+
inputValue.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime147.jsx)("div", { className: "flex flex-wrap gap-1.5", children: inputValue.map((countryCode) => /* @__PURE__ */ (0, import_jsx_runtime147.jsxs)(
|
|
39225
39553
|
Badge2,
|
|
39226
39554
|
{
|
|
39227
39555
|
className: "flex items-center gap-1 px-2 py-0.5 bg-grayPill border border-gray400 rounded-md text-white text-xs font-medium",
|
|
39228
39556
|
children: [
|
|
39229
39557
|
countryCode,
|
|
39230
|
-
/* @__PURE__ */ (0,
|
|
39558
|
+
/* @__PURE__ */ (0, import_jsx_runtime147.jsxs)(
|
|
39231
39559
|
"button",
|
|
39232
39560
|
{
|
|
39233
39561
|
onClick: () => onChange(inputValue.filter((c) => c !== countryCode)),
|
|
39234
39562
|
className: "hover:bg-purple200 rounded-full p-0.5 transition-colors",
|
|
39235
39563
|
children: [
|
|
39236
|
-
/* @__PURE__ */ (0,
|
|
39564
|
+
/* @__PURE__ */ (0, import_jsx_runtime147.jsx)(X, { className: "h-3 w-3" }),
|
|
39237
39565
|
" "
|
|
39238
39566
|
]
|
|
39239
39567
|
}
|
|
@@ -39245,19 +39573,19 @@ var CountrySelectEdit = ({
|
|
|
39245
39573
|
] });
|
|
39246
39574
|
};
|
|
39247
39575
|
var CountrySelectDisplay = ({ value }) => {
|
|
39248
|
-
const displayValues = (0,
|
|
39576
|
+
const displayValues = (0, import_react75.useMemo)(() => {
|
|
39249
39577
|
if (Array.isArray(value)) return value;
|
|
39250
39578
|
if (typeof value === "string" && value.trim() !== "") return [value];
|
|
39251
39579
|
return [];
|
|
39252
39580
|
}, [value]);
|
|
39253
39581
|
if (displayValues.length === 0) {
|
|
39254
|
-
return /* @__PURE__ */ (0,
|
|
39582
|
+
return /* @__PURE__ */ (0, import_jsx_runtime147.jsx)("span", { className: "text-muted-foreground italic text-sm", children: "Not specified" });
|
|
39255
39583
|
}
|
|
39256
|
-
return /* @__PURE__ */ (0,
|
|
39584
|
+
return /* @__PURE__ */ (0, import_jsx_runtime147.jsx)("div", { className: "flex flex-wrap gap-2 pt-1", children: displayValues.map((item) => {
|
|
39257
39585
|
const country = countries.find(
|
|
39258
39586
|
(c) => c.code.toLowerCase() === item.toLowerCase() || c.name.toLowerCase() === item.toLowerCase()
|
|
39259
39587
|
);
|
|
39260
|
-
return /* @__PURE__ */ (0,
|
|
39588
|
+
return /* @__PURE__ */ (0, import_jsx_runtime147.jsx)(
|
|
39261
39589
|
"div",
|
|
39262
39590
|
{
|
|
39263
39591
|
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",
|
|
@@ -39291,22 +39619,22 @@ var KeywordBundlesEdit = ({
|
|
|
39291
39619
|
});
|
|
39292
39620
|
});
|
|
39293
39621
|
const sortedPriorities = Object.keys(groups).map((n) => parseInt(n)).sort((a, b) => a - b);
|
|
39294
|
-
return /* @__PURE__ */ (0,
|
|
39295
|
-
/* @__PURE__ */ (0,
|
|
39296
|
-
/* @__PURE__ */ (0,
|
|
39622
|
+
return /* @__PURE__ */ (0, import_jsx_runtime147.jsx)("div", { className: "space-y-6 pt-2", children: sortedPriorities.map((priority) => /* @__PURE__ */ (0, import_jsx_runtime147.jsxs)("div", { className: "space-y-3", children: [
|
|
39623
|
+
/* @__PURE__ */ (0, import_jsx_runtime147.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
39624
|
+
/* @__PURE__ */ (0, import_jsx_runtime147.jsxs)("div", { className: "inline-block px-3 py-1 bg-purple200 hover:bg-purple200 text-purpleText text-sm font-medium rounded-md uppercase", children: [
|
|
39297
39625
|
"Priority ",
|
|
39298
39626
|
priority
|
|
39299
39627
|
] }),
|
|
39300
|
-
/* @__PURE__ */ (0,
|
|
39628
|
+
/* @__PURE__ */ (0, import_jsx_runtime147.jsx)("div", { className: "h-px flex-1 bg-white/10" })
|
|
39301
39629
|
] }),
|
|
39302
|
-
groups[priority].map(({ bundle, index: bundleIndex }) => /* @__PURE__ */ (0,
|
|
39630
|
+
groups[priority].map(({ bundle, index: bundleIndex }) => /* @__PURE__ */ (0, import_jsx_runtime147.jsx)(
|
|
39303
39631
|
"div",
|
|
39304
39632
|
{
|
|
39305
39633
|
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",
|
|
39306
|
-
children: /* @__PURE__ */ (0,
|
|
39307
|
-
/* @__PURE__ */ (0,
|
|
39308
|
-
/* @__PURE__ */ (0,
|
|
39309
|
-
/* @__PURE__ */ (0,
|
|
39634
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime147.jsxs)("div", { className: "flex flex-col gap-3", children: [
|
|
39635
|
+
/* @__PURE__ */ (0, import_jsx_runtime147.jsx)("label", { className: "text-[10px] font-bold text-gray-400 uppercase tracking-widest pl-1", children: "Keywords" }),
|
|
39636
|
+
/* @__PURE__ */ (0, import_jsx_runtime147.jsxs)("div", { className: "space-y-3", children: [
|
|
39637
|
+
/* @__PURE__ */ (0, import_jsx_runtime147.jsx)("div", { className: "flex flex-wrap gap-1.5", children: Array.isArray(bundle.keywords) && bundle.keywords.map((keyword, kIndex) => /* @__PURE__ */ (0, import_jsx_runtime147.jsxs)(
|
|
39310
39638
|
"div",
|
|
39311
39639
|
{
|
|
39312
39640
|
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",
|
|
@@ -39323,12 +39651,12 @@ var KeywordBundlesEdit = ({
|
|
|
39323
39651
|
},
|
|
39324
39652
|
children: [
|
|
39325
39653
|
keyword,
|
|
39326
|
-
/* @__PURE__ */ (0,
|
|
39654
|
+
/* @__PURE__ */ (0, import_jsx_runtime147.jsx)("span", { className: "ml-1 opacity-60 group-hover:opacity-100 transition-opacity", children: "\xD7" })
|
|
39327
39655
|
]
|
|
39328
39656
|
},
|
|
39329
39657
|
kIndex
|
|
39330
39658
|
)) }),
|
|
39331
|
-
/* @__PURE__ */ (0,
|
|
39659
|
+
/* @__PURE__ */ (0, import_jsx_runtime147.jsx)("div", { className: "flex gap-2", children: /* @__PURE__ */ (0, import_jsx_runtime147.jsx)(
|
|
39332
39660
|
"input",
|
|
39333
39661
|
{
|
|
39334
39662
|
type: "text",
|
|
@@ -39352,9 +39680,9 @@ var KeywordBundlesEdit = ({
|
|
|
39352
39680
|
}
|
|
39353
39681
|
) })
|
|
39354
39682
|
] }),
|
|
39355
|
-
/* @__PURE__ */ (0,
|
|
39356
|
-
/* @__PURE__ */ (0,
|
|
39357
|
-
/* @__PURE__ */ (0,
|
|
39683
|
+
/* @__PURE__ */ (0, import_jsx_runtime147.jsxs)("div", { className: "flex flex-col gap-1.5 mt-1", children: [
|
|
39684
|
+
/* @__PURE__ */ (0, import_jsx_runtime147.jsx)("label", { className: "text-[10px] font-bold text-gray-400 uppercase tracking-widest pl-1", children: "Priority Level (1-5)" }),
|
|
39685
|
+
/* @__PURE__ */ (0, import_jsx_runtime147.jsx)(
|
|
39358
39686
|
"input",
|
|
39359
39687
|
{
|
|
39360
39688
|
type: "number",
|
|
@@ -39382,7 +39710,7 @@ var KeywordBundlesEdit = ({
|
|
|
39382
39710
|
var KeywordBundlesDisplay = ({ value }) => {
|
|
39383
39711
|
const bundles = Array.isArray(value) ? value : [];
|
|
39384
39712
|
if (bundles.length === 0)
|
|
39385
|
-
return /* @__PURE__ */ (0,
|
|
39713
|
+
return /* @__PURE__ */ (0, import_jsx_runtime147.jsx)("span", { className: "text-gray-500 italic text-sm", children: "Not specified" });
|
|
39386
39714
|
const groups = {};
|
|
39387
39715
|
bundles.forEach((b, idx) => {
|
|
39388
39716
|
const p = Number(b?.priority) || idx + 1;
|
|
@@ -39395,17 +39723,17 @@ var KeywordBundlesDisplay = ({ value }) => {
|
|
|
39395
39723
|
groups[p].push(...keywords);
|
|
39396
39724
|
});
|
|
39397
39725
|
const sortedPriorities = Object.keys(groups).map((n) => parseInt(n)).sort((a, b) => a - b);
|
|
39398
|
-
return /* @__PURE__ */ (0,
|
|
39726
|
+
return /* @__PURE__ */ (0, import_jsx_runtime147.jsx)("div", { className: "space-y-4 pt-2", children: sortedPriorities.map((priority) => {
|
|
39399
39727
|
const deduped = Array.from(new Set(groups[priority]));
|
|
39400
|
-
return /* @__PURE__ */ (0,
|
|
39401
|
-
/* @__PURE__ */ (0,
|
|
39402
|
-
/* @__PURE__ */ (0,
|
|
39728
|
+
return /* @__PURE__ */ (0, import_jsx_runtime147.jsxs)("div", { className: "space-y-3", children: [
|
|
39729
|
+
/* @__PURE__ */ (0, import_jsx_runtime147.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
39730
|
+
/* @__PURE__ */ (0, import_jsx_runtime147.jsxs)("div", { className: "inline-block px-3 py-1 bg-purple200 hover:bg-purple200 text-purpleText text-sm font-medium rounded-md uppercase", children: [
|
|
39403
39731
|
"Priority ",
|
|
39404
39732
|
priority
|
|
39405
39733
|
] }),
|
|
39406
|
-
/* @__PURE__ */ (0,
|
|
39734
|
+
/* @__PURE__ */ (0, import_jsx_runtime147.jsx)("div", { className: "h-px flex-1 bg-white/10" })
|
|
39407
39735
|
] }),
|
|
39408
|
-
/* @__PURE__ */ (0,
|
|
39736
|
+
/* @__PURE__ */ (0, import_jsx_runtime147.jsx)("div", { className: "flex flex-wrap gap-2 pt-1", children: deduped.map((keyword) => /* @__PURE__ */ (0, import_jsx_runtime147.jsx)(
|
|
39409
39737
|
"div",
|
|
39410
39738
|
{
|
|
39411
39739
|
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",
|
|
@@ -39421,7 +39749,7 @@ var PlatformSelectEdit = ({
|
|
|
39421
39749
|
value,
|
|
39422
39750
|
onChange
|
|
39423
39751
|
}) => {
|
|
39424
|
-
const selectedPlatforms = (0,
|
|
39752
|
+
const selectedPlatforms = (0, import_react75.useMemo)(() => {
|
|
39425
39753
|
if (Array.isArray(value)) return value;
|
|
39426
39754
|
if (typeof value === "string" && value.trim() !== "") {
|
|
39427
39755
|
return value.split(",").map((s) => s.trim()).filter(Boolean);
|
|
@@ -39440,15 +39768,15 @@ var PlatformSelectEdit = ({
|
|
|
39440
39768
|
onChange([...selectedPlatforms, platform]);
|
|
39441
39769
|
}
|
|
39442
39770
|
};
|
|
39443
|
-
const options = (0,
|
|
39771
|
+
const options = (0, import_react75.useMemo)(() => {
|
|
39444
39772
|
return DEFAULT_PLATFORMS;
|
|
39445
39773
|
}, []);
|
|
39446
|
-
return /* @__PURE__ */ (0,
|
|
39774
|
+
return /* @__PURE__ */ (0, import_jsx_runtime147.jsx)("div", { className: "flex flex-wrap gap-4 py-2", children: options.map((platform) => /* @__PURE__ */ (0, import_jsx_runtime147.jsxs)(
|
|
39447
39775
|
"label",
|
|
39448
39776
|
{
|
|
39449
39777
|
className: "flex items-center gap-2 cursor-pointer group",
|
|
39450
39778
|
children: [
|
|
39451
|
-
/* @__PURE__ */ (0,
|
|
39779
|
+
/* @__PURE__ */ (0, import_jsx_runtime147.jsx)(
|
|
39452
39780
|
"div",
|
|
39453
39781
|
{
|
|
39454
39782
|
className: cn(
|
|
@@ -39456,17 +39784,17 @@ var PlatformSelectEdit = ({
|
|
|
39456
39784
|
isSelected(platform) ? "bg-purple-600 border-purple-600" : "border-gray-300 group-hover:border-purple-400"
|
|
39457
39785
|
),
|
|
39458
39786
|
onClick: () => togglePlatform(platform),
|
|
39459
|
-
children: isSelected(platform) && /* @__PURE__ */ (0,
|
|
39787
|
+
children: isSelected(platform) && /* @__PURE__ */ (0, import_jsx_runtime147.jsx)(Check, { className: "h-3.5 w-3.5 text-white stroke-[3]" })
|
|
39460
39788
|
}
|
|
39461
39789
|
),
|
|
39462
|
-
/* @__PURE__ */ (0,
|
|
39790
|
+
/* @__PURE__ */ (0, import_jsx_runtime147.jsx)("span", { className: "text-sm font-medium text-foreground select-none", children: platform })
|
|
39463
39791
|
]
|
|
39464
39792
|
},
|
|
39465
39793
|
platform
|
|
39466
39794
|
)) });
|
|
39467
39795
|
};
|
|
39468
39796
|
var PlatformSelectDisplay = ({ value }) => {
|
|
39469
|
-
const displayValues = (0,
|
|
39797
|
+
const displayValues = (0, import_react75.useMemo)(() => {
|
|
39470
39798
|
if (Array.isArray(value)) return value;
|
|
39471
39799
|
if (typeof value === "string" && value.trim() !== "") {
|
|
39472
39800
|
return value.split(",").map((s) => s.trim()).filter(Boolean);
|
|
@@ -39474,9 +39802,9 @@ var PlatformSelectDisplay = ({ value }) => {
|
|
|
39474
39802
|
return [];
|
|
39475
39803
|
}, [value]);
|
|
39476
39804
|
if (displayValues.length === 0) {
|
|
39477
|
-
return /* @__PURE__ */ (0,
|
|
39805
|
+
return /* @__PURE__ */ (0, import_jsx_runtime147.jsx)("span", { className: "text-muted-foreground italic text-sm", children: "Not specified" });
|
|
39478
39806
|
}
|
|
39479
|
-
return /* @__PURE__ */ (0,
|
|
39807
|
+
return /* @__PURE__ */ (0, import_jsx_runtime147.jsx)("div", { className: "flex flex-wrap gap-2 pt-1", children: displayValues.map((platform) => /* @__PURE__ */ (0, import_jsx_runtime147.jsx)(
|
|
39480
39808
|
"div",
|
|
39481
39809
|
{
|
|
39482
39810
|
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",
|
|
@@ -39487,21 +39815,21 @@ var PlatformSelectDisplay = ({ value }) => {
|
|
|
39487
39815
|
};
|
|
39488
39816
|
|
|
39489
39817
|
// src/molecules/creator-discovery/CampaignSeedCard/CampaignSeedCard.tsx
|
|
39490
|
-
var
|
|
39818
|
+
var import_jsx_runtime148 = require("react/jsx-runtime");
|
|
39491
39819
|
var ObjectDisplay = ({ value }) => {
|
|
39492
39820
|
if (!value || typeof value !== "object") return null;
|
|
39493
|
-
return /* @__PURE__ */ (0,
|
|
39494
|
-
/* @__PURE__ */ (0,
|
|
39821
|
+
return /* @__PURE__ */ (0, import_jsx_runtime148.jsx)("div", { className: "space-y-1 pt-1", children: Object.entries(value).map(([k, v]) => /* @__PURE__ */ (0, import_jsx_runtime148.jsxs)("div", { className: "flex gap-2 text-sm", children: [
|
|
39822
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsxs)("span", { className: "text-muted-foreground capitalize min-w-[120px]", children: [
|
|
39495
39823
|
k.replace(/_/g, " "),
|
|
39496
39824
|
":"
|
|
39497
39825
|
] }),
|
|
39498
|
-
/* @__PURE__ */ (0,
|
|
39826
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)("span", { className: "text-foreground font-medium", children: Array.isArray(v) ? v.join(", ") : String(v) })
|
|
39499
39827
|
] }, k)) });
|
|
39500
39828
|
};
|
|
39501
39829
|
var StringArrayDisplay = ({ value }) => {
|
|
39502
39830
|
if (!Array.isArray(value) || value.length === 0)
|
|
39503
|
-
return /* @__PURE__ */ (0,
|
|
39504
|
-
return /* @__PURE__ */ (0,
|
|
39831
|
+
return /* @__PURE__ */ (0, import_jsx_runtime148.jsx)("span", { className: "text-muted-foreground italic text-sm", children: "Not specified" });
|
|
39832
|
+
return /* @__PURE__ */ (0, import_jsx_runtime148.jsx)("div", { className: "flex flex-wrap gap-2 pt-1", children: value.map((item) => /* @__PURE__ */ (0, import_jsx_runtime148.jsx)(
|
|
39505
39833
|
"div",
|
|
39506
39834
|
{
|
|
39507
39835
|
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",
|
|
@@ -39519,8 +39847,8 @@ function buildCampaignSeedFields(data) {
|
|
|
39519
39847
|
key,
|
|
39520
39848
|
label: "Keyword Bundles",
|
|
39521
39849
|
type: "custom",
|
|
39522
|
-
renderDisplay: (v) => /* @__PURE__ */ (0,
|
|
39523
|
-
renderEdit: (v, onChange) => /* @__PURE__ */ (0,
|
|
39850
|
+
renderDisplay: (v) => /* @__PURE__ */ (0, import_jsx_runtime148.jsx)(KeywordBundlesDisplay, { value: v }),
|
|
39851
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ (0, import_jsx_runtime148.jsx)(
|
|
39524
39852
|
Textarea,
|
|
39525
39853
|
{
|
|
39526
39854
|
value: Array.isArray(v) ? v.map((b) => `${(b.keywords || []).join(", ")} (Priority: ${b.priority || 1})`).join("\n") : String(v || ""),
|
|
@@ -39552,8 +39880,8 @@ function buildCampaignSeedFields(data) {
|
|
|
39552
39880
|
key,
|
|
39553
39881
|
label: "Geography",
|
|
39554
39882
|
type: "custom",
|
|
39555
|
-
renderDisplay: (v) => /* @__PURE__ */ (0,
|
|
39556
|
-
renderEdit: (v, onChange) => /* @__PURE__ */ (0,
|
|
39883
|
+
renderDisplay: (v) => /* @__PURE__ */ (0, import_jsx_runtime148.jsx)(CountrySelectDisplay, { value: v }),
|
|
39884
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ (0, import_jsx_runtime148.jsx)(CountrySelectEdit, { value: v, onChange })
|
|
39557
39885
|
};
|
|
39558
39886
|
}
|
|
39559
39887
|
if (key === "platforms" || key === "target_platforms" || key === "targetPlatforms") {
|
|
@@ -39561,8 +39889,8 @@ function buildCampaignSeedFields(data) {
|
|
|
39561
39889
|
key,
|
|
39562
39890
|
label: "Platforms",
|
|
39563
39891
|
type: "custom",
|
|
39564
|
-
renderDisplay: (v) => /* @__PURE__ */ (0,
|
|
39565
|
-
renderEdit: (v, onChange) => /* @__PURE__ */ (0,
|
|
39892
|
+
renderDisplay: (v) => /* @__PURE__ */ (0, import_jsx_runtime148.jsx)(PlatformSelectDisplay, { value: v }),
|
|
39893
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ (0, import_jsx_runtime148.jsx)(
|
|
39566
39894
|
PlatformSelectEdit,
|
|
39567
39895
|
{
|
|
39568
39896
|
value: v,
|
|
@@ -39577,7 +39905,7 @@ function buildCampaignSeedFields(data) {
|
|
|
39577
39905
|
key,
|
|
39578
39906
|
label,
|
|
39579
39907
|
type: "custom",
|
|
39580
|
-
renderDisplay: (v) => /* @__PURE__ */ (0,
|
|
39908
|
+
renderDisplay: (v) => /* @__PURE__ */ (0, import_jsx_runtime148.jsx)(StringArrayDisplay, { value: v })
|
|
39581
39909
|
};
|
|
39582
39910
|
}
|
|
39583
39911
|
if (typeof value === "object" && value !== null && !Array.isArray(value) && "min" in value && "max" in value) {
|
|
@@ -39588,9 +39916,9 @@ function buildCampaignSeedFields(data) {
|
|
|
39588
39916
|
type: "custom",
|
|
39589
39917
|
renderDisplay: (v) => {
|
|
39590
39918
|
if (typeof v === "object" && v !== null) {
|
|
39591
|
-
return /* @__PURE__ */ (0,
|
|
39919
|
+
return /* @__PURE__ */ (0, import_jsx_runtime148.jsx)("span", { className: "text-foreground font-medium", children: `${v.min?.toLocaleString()} - ${v.max?.toLocaleString()}` });
|
|
39592
39920
|
}
|
|
39593
|
-
return /* @__PURE__ */ (0,
|
|
39921
|
+
return /* @__PURE__ */ (0, import_jsx_runtime148.jsx)("span", { className: "text-foreground font-medium", children: v });
|
|
39594
39922
|
}
|
|
39595
39923
|
};
|
|
39596
39924
|
}
|
|
@@ -39600,8 +39928,8 @@ function buildCampaignSeedFields(data) {
|
|
|
39600
39928
|
key,
|
|
39601
39929
|
label,
|
|
39602
39930
|
type: "custom",
|
|
39603
|
-
renderDisplay: (v) => /* @__PURE__ */ (0,
|
|
39604
|
-
renderEdit: (v, onChange) => /* @__PURE__ */ (0,
|
|
39931
|
+
renderDisplay: (v) => /* @__PURE__ */ (0, import_jsx_runtime148.jsx)(ObjectDisplay, { value: v }),
|
|
39932
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ (0, import_jsx_runtime148.jsx)(
|
|
39605
39933
|
Textarea,
|
|
39606
39934
|
{
|
|
39607
39935
|
value: Object.entries(v || {}).map(([k, val]) => `${k.replace(/_/g, " ")}: ${val}`).join("\n"),
|
|
@@ -39626,7 +39954,7 @@ function buildCampaignSeedFields(data) {
|
|
|
39626
39954
|
return generated;
|
|
39627
39955
|
});
|
|
39628
39956
|
}
|
|
39629
|
-
var CampaignSeedCard =
|
|
39957
|
+
var CampaignSeedCard = import_react76.default.memo(
|
|
39630
39958
|
({
|
|
39631
39959
|
selectionStatus,
|
|
39632
39960
|
isLatestMessage = true,
|
|
@@ -39638,7 +39966,7 @@ var CampaignSeedCard = import_react75.default.memo(
|
|
|
39638
39966
|
sendMessage,
|
|
39639
39967
|
...formCardProps
|
|
39640
39968
|
}) => {
|
|
39641
|
-
const fields = (0,
|
|
39969
|
+
const fields = (0, import_react76.useMemo)(() => {
|
|
39642
39970
|
return providedFields || buildCampaignSeedFields(data);
|
|
39643
39971
|
}, [providedFields, data]);
|
|
39644
39972
|
const handleProceed = () => {
|
|
@@ -39649,7 +39977,7 @@ var CampaignSeedCard = import_react75.default.memo(
|
|
|
39649
39977
|
});
|
|
39650
39978
|
};
|
|
39651
39979
|
const effectiveIsLatest = isLatestMessage && !hasUserResponded;
|
|
39652
|
-
return /* @__PURE__ */ (0,
|
|
39980
|
+
return /* @__PURE__ */ (0, import_jsx_runtime148.jsx)("div", { className: "flex flex-col gap-2", children: /* @__PURE__ */ (0, import_jsx_runtime148.jsx)(
|
|
39653
39981
|
FormCard,
|
|
39654
39982
|
{
|
|
39655
39983
|
...formCardProps,
|
|
@@ -39661,9 +39989,9 @@ var CampaignSeedCard = import_react75.default.memo(
|
|
|
39661
39989
|
showTimeline: true,
|
|
39662
39990
|
isLatestMessage: effectiveIsLatest,
|
|
39663
39991
|
className,
|
|
39664
|
-
footer: !effectiveIsLatest && selectionStatus ? /* @__PURE__ */ (0,
|
|
39665
|
-
/* @__PURE__ */ (0,
|
|
39666
|
-
/* @__PURE__ */ (0,
|
|
39992
|
+
footer: !effectiveIsLatest && selectionStatus ? /* @__PURE__ */ (0, import_jsx_runtime148.jsxs)("div", { className: "flex justify-end items-center gap-1 text-green-600 text-[10px] font-semibold py-2 pr-4", children: [
|
|
39993
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)(CircleCheck, { className: "h-3 w-3" }),
|
|
39994
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)("span", { children: selectionStatus === "agent" ? "Suggested by Agent" : "Selected by you" })
|
|
39667
39995
|
] }) : formCardProps.footer
|
|
39668
39996
|
}
|
|
39669
39997
|
) });
|
|
@@ -39672,22 +40000,22 @@ var CampaignSeedCard = import_react75.default.memo(
|
|
|
39672
40000
|
CampaignSeedCard.displayName = "CampaignSeedCard";
|
|
39673
40001
|
|
|
39674
40002
|
// src/molecules/creator-discovery/SearchSpecCard/SearchSpecCard.tsx
|
|
39675
|
-
var
|
|
39676
|
-
var
|
|
40003
|
+
var import_react77 = __toESM(require("react"), 1);
|
|
40004
|
+
var import_jsx_runtime149 = require("react/jsx-runtime");
|
|
39677
40005
|
var ObjectDisplay2 = ({ value }) => {
|
|
39678
40006
|
if (!value || typeof value !== "object") return null;
|
|
39679
|
-
return /* @__PURE__ */ (0,
|
|
39680
|
-
/* @__PURE__ */ (0,
|
|
40007
|
+
return /* @__PURE__ */ (0, import_jsx_runtime149.jsx)("div", { className: "space-y-1 pt-1", children: Object.entries(value).map(([k, v]) => /* @__PURE__ */ (0, import_jsx_runtime149.jsxs)("div", { className: "flex gap-2 text-sm", children: [
|
|
40008
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsxs)("span", { className: "text-muted-foreground capitalize min-w-[120px]", children: [
|
|
39681
40009
|
k.replace(/_/g, " "),
|
|
39682
40010
|
":"
|
|
39683
40011
|
] }),
|
|
39684
|
-
/* @__PURE__ */ (0,
|
|
40012
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)("span", { className: "text-foreground font-medium", children: Array.isArray(v) ? v.join(", ") : String(v) })
|
|
39685
40013
|
] }, k)) });
|
|
39686
40014
|
};
|
|
39687
40015
|
var StringArrayDisplay2 = ({ value }) => {
|
|
39688
40016
|
if (!Array.isArray(value) || value.length === 0)
|
|
39689
|
-
return /* @__PURE__ */ (0,
|
|
39690
|
-
return /* @__PURE__ */ (0,
|
|
40017
|
+
return /* @__PURE__ */ (0, import_jsx_runtime149.jsx)("span", { className: "text-muted-foreground italic text-sm", children: "Not specified" });
|
|
40018
|
+
return /* @__PURE__ */ (0, import_jsx_runtime149.jsx)("div", { className: "flex flex-wrap gap-2 pt-1", children: value.map((item) => /* @__PURE__ */ (0, import_jsx_runtime149.jsx)(
|
|
39691
40019
|
"div",
|
|
39692
40020
|
{
|
|
39693
40021
|
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",
|
|
@@ -39705,8 +40033,8 @@ function buildSearchSpecFields(data) {
|
|
|
39705
40033
|
key,
|
|
39706
40034
|
label: "Keyword Bundles",
|
|
39707
40035
|
type: "custom",
|
|
39708
|
-
renderDisplay: (v) => /* @__PURE__ */ (0,
|
|
39709
|
-
renderEdit: (v, onChange) => /* @__PURE__ */ (0,
|
|
40036
|
+
renderDisplay: (v) => /* @__PURE__ */ (0, import_jsx_runtime149.jsx)(KeywordBundlesDisplay, { value: v }),
|
|
40037
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ (0, import_jsx_runtime149.jsx)(KeywordBundlesEdit, { value: v, onChange })
|
|
39710
40038
|
};
|
|
39711
40039
|
}
|
|
39712
40040
|
if (key === "geography") {
|
|
@@ -39714,8 +40042,8 @@ function buildSearchSpecFields(data) {
|
|
|
39714
40042
|
key,
|
|
39715
40043
|
label: "Geography",
|
|
39716
40044
|
type: "custom",
|
|
39717
|
-
renderDisplay: (v) => /* @__PURE__ */ (0,
|
|
39718
|
-
renderEdit: (v, onChange) => /* @__PURE__ */ (0,
|
|
40045
|
+
renderDisplay: (v) => /* @__PURE__ */ (0, import_jsx_runtime149.jsx)(CountrySelectDisplay, { value: v }),
|
|
40046
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ (0, import_jsx_runtime149.jsx)(CountrySelectEdit, { value: v, onChange })
|
|
39719
40047
|
};
|
|
39720
40048
|
}
|
|
39721
40049
|
if (key === "platforms" && Array.isArray(value)) {
|
|
@@ -39726,8 +40054,8 @@ function buildSearchSpecFields(data) {
|
|
|
39726
40054
|
config: {
|
|
39727
40055
|
options: data.platform_options || data.available_platforms || data.platforms_list || []
|
|
39728
40056
|
},
|
|
39729
|
-
renderDisplay: (v) => /* @__PURE__ */ (0,
|
|
39730
|
-
renderEdit: (v, onChange) => /* @__PURE__ */ (0,
|
|
40057
|
+
renderDisplay: (v) => /* @__PURE__ */ (0, import_jsx_runtime149.jsx)(PlatformSelectDisplay, { value: v }),
|
|
40058
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ (0, import_jsx_runtime149.jsx)(
|
|
39731
40059
|
PlatformSelectEdit,
|
|
39732
40060
|
{
|
|
39733
40061
|
value: v,
|
|
@@ -39741,8 +40069,8 @@ function buildSearchSpecFields(data) {
|
|
|
39741
40069
|
key,
|
|
39742
40070
|
label: "Exclude Keywords",
|
|
39743
40071
|
type: "custom",
|
|
39744
|
-
renderDisplay: (v) => /* @__PURE__ */ (0,
|
|
39745
|
-
renderEdit: (v, onChange) => /* @__PURE__ */ (0,
|
|
40072
|
+
renderDisplay: (v) => /* @__PURE__ */ (0, import_jsx_runtime149.jsx)(StringArrayDisplay2, { value: v }),
|
|
40073
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ (0, import_jsx_runtime149.jsx)(
|
|
39746
40074
|
Textarea,
|
|
39747
40075
|
{
|
|
39748
40076
|
value: Array.isArray(v) ? v.join(", ") : String(v || ""),
|
|
@@ -39762,8 +40090,8 @@ function buildSearchSpecFields(data) {
|
|
|
39762
40090
|
key,
|
|
39763
40091
|
label,
|
|
39764
40092
|
type: "custom",
|
|
39765
|
-
renderDisplay: (v) => /* @__PURE__ */ (0,
|
|
39766
|
-
renderEdit: (v, onChange) => /* @__PURE__ */ (0,
|
|
40093
|
+
renderDisplay: (v) => /* @__PURE__ */ (0, import_jsx_runtime149.jsx)(ObjectDisplay2, { value: v }),
|
|
40094
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ (0, import_jsx_runtime149.jsx)(
|
|
39767
40095
|
Textarea,
|
|
39768
40096
|
{
|
|
39769
40097
|
value: Object.entries(v || {}).map(([k, val]) => `${k.replace(/_/g, " ")}: ${val}`).join("\n"),
|
|
@@ -39788,7 +40116,7 @@ function buildSearchSpecFields(data) {
|
|
|
39788
40116
|
return generated;
|
|
39789
40117
|
});
|
|
39790
40118
|
}
|
|
39791
|
-
var SearchSpecCard =
|
|
40119
|
+
var SearchSpecCard = import_react77.default.memo(
|
|
39792
40120
|
({
|
|
39793
40121
|
selectionStatus,
|
|
39794
40122
|
isLatestMessage = true,
|
|
@@ -39802,7 +40130,7 @@ var SearchSpecCard = import_react76.default.memo(
|
|
|
39802
40130
|
...formCardProps
|
|
39803
40131
|
}) => {
|
|
39804
40132
|
const resolvedData = data || specData;
|
|
39805
|
-
const fields = (0,
|
|
40133
|
+
const fields = (0, import_react77.useMemo)(() => {
|
|
39806
40134
|
return providedFields || buildSearchSpecFields(resolvedData ?? {});
|
|
39807
40135
|
}, [providedFields, resolvedData]);
|
|
39808
40136
|
const handleProceed = () => {
|
|
@@ -39816,7 +40144,7 @@ var SearchSpecCard = import_react76.default.memo(
|
|
|
39816
40144
|
});
|
|
39817
40145
|
};
|
|
39818
40146
|
const effectiveIsLatest = isLatestMessage && !hasUserResponded;
|
|
39819
|
-
return /* @__PURE__ */ (0,
|
|
40147
|
+
return /* @__PURE__ */ (0, import_jsx_runtime149.jsx)("div", { className: "flex flex-col gap-2", children: /* @__PURE__ */ (0, import_jsx_runtime149.jsx)(
|
|
39820
40148
|
FormCard,
|
|
39821
40149
|
{
|
|
39822
40150
|
...formCardProps,
|
|
@@ -39827,9 +40155,9 @@ var SearchSpecCard = import_react76.default.memo(
|
|
|
39827
40155
|
onProceed: handleProceed,
|
|
39828
40156
|
isLatestMessage: effectiveIsLatest,
|
|
39829
40157
|
className,
|
|
39830
|
-
footer: !effectiveIsLatest && selectionStatus ? /* @__PURE__ */ (0,
|
|
39831
|
-
/* @__PURE__ */ (0,
|
|
39832
|
-
/* @__PURE__ */ (0,
|
|
40158
|
+
footer: !effectiveIsLatest && selectionStatus ? /* @__PURE__ */ (0, import_jsx_runtime149.jsxs)("div", { className: "flex justify-end items-center gap-1 text-green-600 text-[10px] font-semibold py-1", children: [
|
|
40159
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)(CircleCheck, { className: "h-3 w-3" }),
|
|
40160
|
+
/* @__PURE__ */ (0, import_jsx_runtime149.jsx)("span", { children: selectionStatus === "agent" ? "Selected by Agent" : "Selected by User" })
|
|
39833
40161
|
] }) : formCardProps.footer
|
|
39834
40162
|
}
|
|
39835
40163
|
) });
|
|
@@ -39838,7 +40166,7 @@ var SearchSpecCard = import_react76.default.memo(
|
|
|
39838
40166
|
SearchSpecCard.displayName = "SearchSpecCard";
|
|
39839
40167
|
|
|
39840
40168
|
// src/molecules/creator-discovery/MCQCard/MCQCard.tsx
|
|
39841
|
-
var
|
|
40169
|
+
var import_react78 = __toESM(require("react"), 1);
|
|
39842
40170
|
|
|
39843
40171
|
// src/molecules/creator-discovery/MCQCard/defaultFetchers.ts
|
|
39844
40172
|
function getBackendOrigin() {
|
|
@@ -39938,8 +40266,8 @@ async function defaultPersistSelection(sessionId, questionKey, value) {
|
|
|
39938
40266
|
}
|
|
39939
40267
|
|
|
39940
40268
|
// src/molecules/creator-discovery/MCQCard/MCQCard.tsx
|
|
39941
|
-
var
|
|
39942
|
-
var MCQCard =
|
|
40269
|
+
var import_jsx_runtime150 = require("react/jsx-runtime");
|
|
40270
|
+
var MCQCard = import_react78.default.memo(
|
|
39943
40271
|
({
|
|
39944
40272
|
question,
|
|
39945
40273
|
options,
|
|
@@ -39964,16 +40292,16 @@ var MCQCard = import_react77.default.memo(
|
|
|
39964
40292
|
const resolvedOptions = options || allProps.Options || allProps.opts || {};
|
|
39965
40293
|
const resolvedRecommended = recommended || allProps.Recommended || allProps.rec;
|
|
39966
40294
|
console.log("[MCQCard] FULL PROPS:", { allProps, resolvedQuestion, resolvedOptions: Object.keys(resolvedOptions || {}), resolvedRecommended });
|
|
39967
|
-
const [selectedOption, setSelectedOption] =
|
|
39968
|
-
const [isProceeded, setIsProceeded] =
|
|
39969
|
-
const fetchedSessionRef =
|
|
39970
|
-
|
|
40295
|
+
const [selectedOption, setSelectedOption] = import_react78.default.useState(propsSelectedOption);
|
|
40296
|
+
const [isProceeded, setIsProceeded] = import_react78.default.useState(false);
|
|
40297
|
+
const fetchedSessionRef = import_react78.default.useRef("");
|
|
40298
|
+
import_react78.default.useEffect(() => {
|
|
39971
40299
|
if (propsSelectedOption) {
|
|
39972
40300
|
setSelectedOption(propsSelectedOption);
|
|
39973
40301
|
setIsProceeded(true);
|
|
39974
40302
|
}
|
|
39975
40303
|
}, [propsSelectedOption]);
|
|
39976
|
-
const buildQuestionKey =
|
|
40304
|
+
const buildQuestionKey = import_react78.default.useCallback((sid, question2) => {
|
|
39977
40305
|
let hash = 2166136261;
|
|
39978
40306
|
for (let i = 0; i < question2.length; i++) {
|
|
39979
40307
|
hash ^= question2.charCodeAt(i);
|
|
@@ -39981,7 +40309,7 @@ var MCQCard = import_react77.default.memo(
|
|
|
39981
40309
|
}
|
|
39982
40310
|
return `mcq_${sid}_${hash.toString(36)}`;
|
|
39983
40311
|
}, []);
|
|
39984
|
-
|
|
40312
|
+
import_react78.default.useEffect(() => {
|
|
39985
40313
|
if (!sessionId || !resolvedQuestion) return;
|
|
39986
40314
|
const fetchKey = `${sessionId}::${resolvedQuestion}`;
|
|
39987
40315
|
if (fetchedSessionRef.current === fetchKey) return;
|
|
@@ -40044,7 +40372,7 @@ A: ${label}`);
|
|
|
40044
40372
|
key,
|
|
40045
40373
|
typeof val === "string" ? val : typeof val === "object" && val !== null ? val.label || val.description || val.id || JSON.stringify(val) : String(val ?? "")
|
|
40046
40374
|
]) : [];
|
|
40047
|
-
return /* @__PURE__ */ (0,
|
|
40375
|
+
return /* @__PURE__ */ (0, import_jsx_runtime150.jsxs)(
|
|
40048
40376
|
"div",
|
|
40049
40377
|
{
|
|
40050
40378
|
className: cn(
|
|
@@ -40052,11 +40380,11 @@ A: ${label}`);
|
|
|
40052
40380
|
className
|
|
40053
40381
|
),
|
|
40054
40382
|
children: [
|
|
40055
|
-
/* @__PURE__ */ (0,
|
|
40056
|
-
/* @__PURE__ */ (0,
|
|
40383
|
+
/* @__PURE__ */ (0, import_jsx_runtime150.jsx)("div", { className: "mb-4", children: /* @__PURE__ */ (0, import_jsx_runtime150.jsx)("p", { className: "text-sm text-cardText", children: resolvedQuestion || "Select an option:" }) }),
|
|
40384
|
+
/* @__PURE__ */ (0, import_jsx_runtime150.jsx)("div", { className: "space-y-2.5 mb-4", children: optionsEntries.map(([key, label]) => {
|
|
40057
40385
|
const isSelected = selectedOption === key;
|
|
40058
40386
|
const isRecommended = key === recommended;
|
|
40059
|
-
return /* @__PURE__ */ (0,
|
|
40387
|
+
return /* @__PURE__ */ (0, import_jsx_runtime150.jsx)(
|
|
40060
40388
|
"div",
|
|
40061
40389
|
{
|
|
40062
40390
|
onClick: (e) => handleOptionClick(key, e),
|
|
@@ -40067,8 +40395,8 @@ A: ${label}`);
|
|
|
40067
40395
|
!selectedOption && !isOptionsDisabled && "hover:border-gray500",
|
|
40068
40396
|
(isLoading || isOptionsDisabled) && "opacity-50 cursor-not-allowed"
|
|
40069
40397
|
),
|
|
40070
|
-
children: /* @__PURE__ */ (0,
|
|
40071
|
-
/* @__PURE__ */ (0,
|
|
40398
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime150.jsxs)("div", { className: "flex items-start gap-3", children: [
|
|
40399
|
+
/* @__PURE__ */ (0, import_jsx_runtime150.jsx)("div", { className: "mt-0.5 flex-shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime150.jsx)(
|
|
40072
40400
|
"div",
|
|
40073
40401
|
{
|
|
40074
40402
|
className: cn(
|
|
@@ -40078,19 +40406,19 @@ A: ${label}`);
|
|
|
40078
40406
|
!selectedOption && !isOptionsDisabled && "hover:border-gold"
|
|
40079
40407
|
)
|
|
40080
40408
|
),
|
|
40081
|
-
children: isSelected && /* @__PURE__ */ (0,
|
|
40409
|
+
children: isSelected && /* @__PURE__ */ (0, import_jsx_runtime150.jsx)("div", { className: "w-2 h-2 rounded-full bg-gold" })
|
|
40082
40410
|
}
|
|
40083
40411
|
) }),
|
|
40084
|
-
/* @__PURE__ */ (0,
|
|
40085
|
-
isRecommended && /* @__PURE__ */ (0,
|
|
40086
|
-
/* @__PURE__ */ (0,
|
|
40412
|
+
/* @__PURE__ */ (0, import_jsx_runtime150.jsxs)("div", { className: "flex-1 min-w-0", children: [
|
|
40413
|
+
isRecommended && /* @__PURE__ */ (0, import_jsx_runtime150.jsx)("p", { className: "text-xs font-semibold text-gold mb-1", children: "Recommended" }),
|
|
40414
|
+
/* @__PURE__ */ (0, import_jsx_runtime150.jsx)("p", { className: "text-sm text-cardText", children: label })
|
|
40087
40415
|
] })
|
|
40088
40416
|
] })
|
|
40089
40417
|
},
|
|
40090
40418
|
key
|
|
40091
40419
|
);
|
|
40092
40420
|
}) }),
|
|
40093
|
-
/* @__PURE__ */ (0,
|
|
40421
|
+
/* @__PURE__ */ (0, import_jsx_runtime150.jsx)("div", { className: "flex justify-end", children: /* @__PURE__ */ (0, import_jsx_runtime150.jsx)(
|
|
40094
40422
|
"button",
|
|
40095
40423
|
{
|
|
40096
40424
|
onClick: handleProceed,
|
|
@@ -40111,8 +40439,8 @@ A: ${label}`);
|
|
|
40111
40439
|
MCQCard.displayName = "MCQCard";
|
|
40112
40440
|
|
|
40113
40441
|
// src/molecules/creator-discovery/PlatformIconGroup/PlatformIconGroup.tsx
|
|
40114
|
-
var
|
|
40115
|
-
var TikTokIcon = ({ className }) => /* @__PURE__ */ (0,
|
|
40442
|
+
var import_jsx_runtime151 = require("react/jsx-runtime");
|
|
40443
|
+
var TikTokIcon = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(Video, { className });
|
|
40116
40444
|
var PlatformIconGroup = ({
|
|
40117
40445
|
platforms,
|
|
40118
40446
|
className
|
|
@@ -40145,10 +40473,10 @@ var PlatformIconGroup = ({
|
|
|
40145
40473
|
return "text-gray-500 bg-gray-50 border-gray-100";
|
|
40146
40474
|
}
|
|
40147
40475
|
};
|
|
40148
|
-
return /* @__PURE__ */ (0,
|
|
40476
|
+
return /* @__PURE__ */ (0, import_jsx_runtime151.jsx)("div", { className: cn("flex gap-2", className), children: platforms.map((p, i) => {
|
|
40149
40477
|
const Icon3 = getIcon(p.platform);
|
|
40150
40478
|
if (!Icon3) return null;
|
|
40151
|
-
return /* @__PURE__ */ (0,
|
|
40479
|
+
return /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(
|
|
40152
40480
|
"a",
|
|
40153
40481
|
{
|
|
40154
40482
|
href: p.url || "#",
|
|
@@ -40159,7 +40487,7 @@ var PlatformIconGroup = ({
|
|
|
40159
40487
|
"p-1.5 rounded-lg border transition-colors flex items-center justify-center",
|
|
40160
40488
|
getColors(p.platform)
|
|
40161
40489
|
),
|
|
40162
|
-
children: /* @__PURE__ */ (0,
|
|
40490
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(Icon3, { className: "w-4 h-4" })
|
|
40163
40491
|
},
|
|
40164
40492
|
i
|
|
40165
40493
|
);
|
|
@@ -40167,7 +40495,7 @@ var PlatformIconGroup = ({
|
|
|
40167
40495
|
};
|
|
40168
40496
|
|
|
40169
40497
|
// src/molecules/creator-discovery/CreatorProfileSummary/CreatorProfileSummary.tsx
|
|
40170
|
-
var
|
|
40498
|
+
var import_jsx_runtime152 = require("react/jsx-runtime");
|
|
40171
40499
|
var CreatorProfileSummary = ({
|
|
40172
40500
|
avatarSrc,
|
|
40173
40501
|
name,
|
|
@@ -40175,7 +40503,7 @@ var CreatorProfileSummary = ({
|
|
|
40175
40503
|
engagementRate,
|
|
40176
40504
|
className
|
|
40177
40505
|
}) => {
|
|
40178
|
-
return /* @__PURE__ */ (0,
|
|
40506
|
+
return /* @__PURE__ */ (0, import_jsx_runtime152.jsxs)(
|
|
40179
40507
|
"div",
|
|
40180
40508
|
{
|
|
40181
40509
|
className: cn(
|
|
@@ -40183,7 +40511,7 @@ var CreatorProfileSummary = ({
|
|
|
40183
40511
|
className
|
|
40184
40512
|
),
|
|
40185
40513
|
children: [
|
|
40186
|
-
/* @__PURE__ */ (0,
|
|
40514
|
+
/* @__PURE__ */ (0, import_jsx_runtime152.jsx)(
|
|
40187
40515
|
AvatarAtom,
|
|
40188
40516
|
{
|
|
40189
40517
|
id: `avatar-${name}`,
|
|
@@ -40193,8 +40521,8 @@ var CreatorProfileSummary = ({
|
|
|
40193
40521
|
className: "w-12 h-12 ring-2 ring-purple-100"
|
|
40194
40522
|
}
|
|
40195
40523
|
),
|
|
40196
|
-
/* @__PURE__ */ (0,
|
|
40197
|
-
/* @__PURE__ */ (0,
|
|
40524
|
+
/* @__PURE__ */ (0, import_jsx_runtime152.jsxs)("div", { className: "flex flex-col flex-1", children: [
|
|
40525
|
+
/* @__PURE__ */ (0, import_jsx_runtime152.jsx)(
|
|
40198
40526
|
TextAtom,
|
|
40199
40527
|
{
|
|
40200
40528
|
id: `name-${name}`,
|
|
@@ -40204,14 +40532,14 @@ var CreatorProfileSummary = ({
|
|
|
40204
40532
|
className: "text-gray-900 leading-tight"
|
|
40205
40533
|
}
|
|
40206
40534
|
),
|
|
40207
|
-
/* @__PURE__ */ (0,
|
|
40208
|
-
followerCount && /* @__PURE__ */ (0,
|
|
40209
|
-
/* @__PURE__ */ (0,
|
|
40210
|
-
/* @__PURE__ */ (0,
|
|
40535
|
+
/* @__PURE__ */ (0, import_jsx_runtime152.jsxs)("div", { className: "flex gap-3 mt-1", children: [
|
|
40536
|
+
followerCount && /* @__PURE__ */ (0, import_jsx_runtime152.jsxs)("div", { className: "flex flex-col", children: [
|
|
40537
|
+
/* @__PURE__ */ (0, import_jsx_runtime152.jsx)("span", { className: "text-[10px] uppercase tracking-wider text-muted-foreground font-bold", children: "Followers" }),
|
|
40538
|
+
/* @__PURE__ */ (0, import_jsx_runtime152.jsx)("span", { className: "text-xs font-semibold text-purple-700", children: followerCount })
|
|
40211
40539
|
] }),
|
|
40212
|
-
engagementRate && /* @__PURE__ */ (0,
|
|
40213
|
-
/* @__PURE__ */ (0,
|
|
40214
|
-
/* @__PURE__ */ (0,
|
|
40540
|
+
engagementRate && /* @__PURE__ */ (0, import_jsx_runtime152.jsxs)("div", { className: "flex flex-col border-l border-purple-100 pl-3", children: [
|
|
40541
|
+
/* @__PURE__ */ (0, import_jsx_runtime152.jsx)("span", { className: "text-[10px] uppercase tracking-wider text-muted-foreground font-bold", children: "Engagement" }),
|
|
40542
|
+
/* @__PURE__ */ (0, import_jsx_runtime152.jsx)("span", { className: "text-xs font-semibold text-indigo-600", children: engagementRate })
|
|
40215
40543
|
] })
|
|
40216
40544
|
] })
|
|
40217
40545
|
] })
|
|
@@ -40221,13 +40549,13 @@ var CreatorProfileSummary = ({
|
|
|
40221
40549
|
};
|
|
40222
40550
|
|
|
40223
40551
|
// src/molecules/creator-discovery/AudienceMetricCard/AudienceMetricCard.tsx
|
|
40224
|
-
var
|
|
40552
|
+
var import_jsx_runtime153 = require("react/jsx-runtime");
|
|
40225
40553
|
var AudienceMetricCard = ({
|
|
40226
40554
|
title,
|
|
40227
40555
|
metrics,
|
|
40228
40556
|
className
|
|
40229
40557
|
}) => {
|
|
40230
|
-
return /* @__PURE__ */ (0,
|
|
40558
|
+
return /* @__PURE__ */ (0, import_jsx_runtime153.jsxs)(
|
|
40231
40559
|
Card,
|
|
40232
40560
|
{
|
|
40233
40561
|
className: cn(
|
|
@@ -40235,13 +40563,13 @@ var AudienceMetricCard = ({
|
|
|
40235
40563
|
className
|
|
40236
40564
|
),
|
|
40237
40565
|
children: [
|
|
40238
|
-
/* @__PURE__ */ (0,
|
|
40239
|
-
/* @__PURE__ */ (0,
|
|
40240
|
-
/* @__PURE__ */ (0,
|
|
40241
|
-
/* @__PURE__ */ (0,
|
|
40242
|
-
/* @__PURE__ */ (0,
|
|
40566
|
+
/* @__PURE__ */ (0, import_jsx_runtime153.jsx)(CardHeader, { className: "pb-2", children: /* @__PURE__ */ (0, import_jsx_runtime153.jsx)(CardTitle, { className: "text-lg font-bold text-gray-900", children: title }) }),
|
|
40567
|
+
/* @__PURE__ */ (0, import_jsx_runtime153.jsx)(CardContent, { className: "space-y-4", children: metrics.map((metric, i) => /* @__PURE__ */ (0, import_jsx_runtime153.jsxs)("div", { className: "space-y-1.5", children: [
|
|
40568
|
+
/* @__PURE__ */ (0, import_jsx_runtime153.jsxs)("div", { className: "flex justify-between items-center text-sm", children: [
|
|
40569
|
+
/* @__PURE__ */ (0, import_jsx_runtime153.jsx)("span", { className: "font-medium text-gray-700", children: metric.label }),
|
|
40570
|
+
/* @__PURE__ */ (0, import_jsx_runtime153.jsx)("span", { className: "font-bold text-gray-900", children: metric.value })
|
|
40243
40571
|
] }),
|
|
40244
|
-
metric.percentage !== void 0 && /* @__PURE__ */ (0,
|
|
40572
|
+
metric.percentage !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime153.jsx)(
|
|
40245
40573
|
ProgressAtom,
|
|
40246
40574
|
{
|
|
40247
40575
|
id: `progress-${i}`,
|
|
@@ -40258,8 +40586,8 @@ var AudienceMetricCard = ({
|
|
|
40258
40586
|
};
|
|
40259
40587
|
|
|
40260
40588
|
// src/molecules/creator-discovery/CreatorGridCard/CreatorGridCard.tsx
|
|
40261
|
-
var
|
|
40262
|
-
var TikTokIcon2 = ({ className }) => /* @__PURE__ */ (0,
|
|
40589
|
+
var import_jsx_runtime154 = require("react/jsx-runtime");
|
|
40590
|
+
var TikTokIcon2 = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime154.jsx)(Video, { className });
|
|
40263
40591
|
var CreatorGridCard = ({
|
|
40264
40592
|
bannerSrc,
|
|
40265
40593
|
avatarSrc,
|
|
@@ -40287,7 +40615,7 @@ var CreatorGridCard = ({
|
|
|
40287
40615
|
const safePlatforms = Array.isArray(platforms) ? platforms : [];
|
|
40288
40616
|
const safeMetrics = Array.isArray(metrics) ? metrics : [];
|
|
40289
40617
|
const displayName = typeof name === "string" ? name : String(name || "");
|
|
40290
|
-
return /* @__PURE__ */ (0,
|
|
40618
|
+
return /* @__PURE__ */ (0, import_jsx_runtime154.jsxs)(
|
|
40291
40619
|
Card,
|
|
40292
40620
|
{
|
|
40293
40621
|
className: cn(
|
|
@@ -40295,43 +40623,43 @@ var CreatorGridCard = ({
|
|
|
40295
40623
|
className
|
|
40296
40624
|
),
|
|
40297
40625
|
children: [
|
|
40298
|
-
/* @__PURE__ */ (0,
|
|
40299
|
-
bannerSrc ? /* @__PURE__ */ (0,
|
|
40626
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsxs)("div", { className: "relative h-32 w-full overflow-hidden", children: [
|
|
40627
|
+
bannerSrc ? /* @__PURE__ */ (0, import_jsx_runtime154.jsx)(
|
|
40300
40628
|
"img",
|
|
40301
40629
|
{
|
|
40302
40630
|
src: bannerSrc,
|
|
40303
40631
|
alt: displayName,
|
|
40304
40632
|
className: "h-full w-full object-cover transition-transform duration-500 group-hover:scale-110"
|
|
40305
40633
|
}
|
|
40306
|
-
) : /* @__PURE__ */ (0,
|
|
40307
|
-
/* @__PURE__ */ (0,
|
|
40634
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime154.jsx)("div", { className: "h-full w-full bg-gradient-to-br from-purple-500 to-indigo-600" }),
|
|
40635
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)("div", { className: "absolute inset-x-0 bottom-0 h-1/2 bg-gradient-to-t from-black/20 to-transparent" })
|
|
40308
40636
|
] }),
|
|
40309
|
-
/* @__PURE__ */ (0,
|
|
40310
|
-
/* @__PURE__ */ (0,
|
|
40311
|
-
/* @__PURE__ */ (0,
|
|
40312
|
-
/* @__PURE__ */ (0,
|
|
40637
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsxs)(CardContent, { className: "relative pt-0 px-5 pb-6", children: [
|
|
40638
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)("div", { className: "absolute -top-10 left-5", children: /* @__PURE__ */ (0, import_jsx_runtime154.jsxs)(Avatar, { className: "h-20 w-20 border-4 border-[var(--card-background)] shadow-lg ring-2 ring-purple-100/20", children: [
|
|
40639
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)(AvatarImage, { src: avatarSrc, alt: displayName }),
|
|
40640
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)(AvatarFallback, { className: "bg-purple-500/10 text-purple-500 font-bold text-xl", children: displayName.charAt(0) || "?" })
|
|
40313
40641
|
] }) }),
|
|
40314
|
-
/* @__PURE__ */ (0,
|
|
40315
|
-
/* @__PURE__ */ (0,
|
|
40316
|
-
/* @__PURE__ */ (0,
|
|
40642
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsxs)("div", { className: "mt-12 flex flex-col gap-1", children: [
|
|
40643
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)("h3", { className: "text-xl font-bold text-[var(--foreground)] truncate", children: displayName }),
|
|
40644
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsxs)("p", { className: "text-sm text-[var(--foreground)]/60 font-medium", children: [
|
|
40317
40645
|
"@",
|
|
40318
40646
|
handle
|
|
40319
40647
|
] })
|
|
40320
40648
|
] }),
|
|
40321
|
-
/* @__PURE__ */ (0,
|
|
40649
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)("div", { className: "mt-4 flex gap-2", children: safePlatforms.map((p, i) => {
|
|
40322
40650
|
const Icon3 = getIcon(p);
|
|
40323
|
-
return Icon3 ? /* @__PURE__ */ (0,
|
|
40651
|
+
return Icon3 ? /* @__PURE__ */ (0, import_jsx_runtime154.jsx)(
|
|
40324
40652
|
"div",
|
|
40325
40653
|
{
|
|
40326
40654
|
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",
|
|
40327
|
-
children: /* @__PURE__ */ (0,
|
|
40655
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime154.jsx)(Icon3, { className: "h-4 w-4" })
|
|
40328
40656
|
},
|
|
40329
40657
|
typeof p === "string" ? p : i
|
|
40330
40658
|
) : null;
|
|
40331
40659
|
}) }),
|
|
40332
|
-
/* @__PURE__ */ (0,
|
|
40333
|
-
/* @__PURE__ */ (0,
|
|
40334
|
-
/* @__PURE__ */ (0,
|
|
40660
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.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_runtime154.jsxs)("div", { className: "flex flex-col", children: [
|
|
40661
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)("span", { className: "text-[10px] font-bold uppercase tracking-wider text-[var(--foreground)]/40", children: m.label }),
|
|
40662
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)("span", { className: "text-sm font-bold text-[var(--primary-color)]", children: m.value })
|
|
40335
40663
|
] }, i)) })
|
|
40336
40664
|
] })
|
|
40337
40665
|
]
|
|
@@ -40340,15 +40668,15 @@ var CreatorGridCard = ({
|
|
|
40340
40668
|
};
|
|
40341
40669
|
|
|
40342
40670
|
// src/molecules/creator-discovery/BrandAffinityGroup/BrandAffinityGroup.tsx
|
|
40343
|
-
var
|
|
40671
|
+
var import_jsx_runtime155 = require("react/jsx-runtime");
|
|
40344
40672
|
var BrandAffinityGroup = ({
|
|
40345
40673
|
brands,
|
|
40346
40674
|
className
|
|
40347
40675
|
}) => {
|
|
40348
|
-
return /* @__PURE__ */ (0,
|
|
40349
|
-
/* @__PURE__ */ (0,
|
|
40350
|
-
/* @__PURE__ */ (0,
|
|
40351
|
-
/* @__PURE__ */ (0,
|
|
40676
|
+
return /* @__PURE__ */ (0, import_jsx_runtime155.jsxs)("div", { className: cn("flex flex-col gap-3", className), children: [
|
|
40677
|
+
/* @__PURE__ */ (0, import_jsx_runtime155.jsx)("h5", { className: "text-[10px] font-bold uppercase tracking-widest text-muted-foreground", children: "Recent Collaborations" }),
|
|
40678
|
+
/* @__PURE__ */ (0, import_jsx_runtime155.jsx)("div", { className: "flex flex-wrap gap-4 items-center", children: brands.map((brand, i) => /* @__PURE__ */ (0, import_jsx_runtime155.jsxs)("div", { className: "group relative", children: [
|
|
40679
|
+
/* @__PURE__ */ (0, import_jsx_runtime155.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_runtime155.jsx)(
|
|
40352
40680
|
"img",
|
|
40353
40681
|
{
|
|
40354
40682
|
src: brand.logoSrc,
|
|
@@ -40356,18 +40684,18 @@ var BrandAffinityGroup = ({
|
|
|
40356
40684
|
className: "max-h-full max-w-full object-contain"
|
|
40357
40685
|
}
|
|
40358
40686
|
) }),
|
|
40359
|
-
/* @__PURE__ */ (0,
|
|
40687
|
+
/* @__PURE__ */ (0, import_jsx_runtime155.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 })
|
|
40360
40688
|
] }, i)) })
|
|
40361
40689
|
] });
|
|
40362
40690
|
};
|
|
40363
40691
|
|
|
40364
40692
|
// src/molecules/creator-discovery/ContentPreviewGallery/ContentPreviewGallery.tsx
|
|
40365
|
-
var
|
|
40693
|
+
var import_jsx_runtime156 = require("react/jsx-runtime");
|
|
40366
40694
|
var ContentPreviewGallery = ({
|
|
40367
40695
|
items,
|
|
40368
40696
|
className
|
|
40369
40697
|
}) => {
|
|
40370
|
-
return /* @__PURE__ */ (0,
|
|
40698
|
+
return /* @__PURE__ */ (0, import_jsx_runtime156.jsx)("div", { className: cn("grid grid-cols-2 gap-2", className), children: items.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime156.jsxs)(
|
|
40371
40699
|
"a",
|
|
40372
40700
|
{
|
|
40373
40701
|
href: item.url || "#",
|
|
@@ -40375,7 +40703,7 @@ var ContentPreviewGallery = ({
|
|
|
40375
40703
|
rel: "noopener noreferrer",
|
|
40376
40704
|
className: "group relative aspect-square overflow-hidden rounded-2xl bg-gray-100",
|
|
40377
40705
|
children: [
|
|
40378
|
-
/* @__PURE__ */ (0,
|
|
40706
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsx)(
|
|
40379
40707
|
"img",
|
|
40380
40708
|
{
|
|
40381
40709
|
src: item.thumbnail,
|
|
@@ -40383,8 +40711,8 @@ var ContentPreviewGallery = ({
|
|
|
40383
40711
|
className: "h-full w-full object-cover transition-transform duration-500 group-hover:scale-110"
|
|
40384
40712
|
}
|
|
40385
40713
|
),
|
|
40386
|
-
item.type === "video" && /* @__PURE__ */ (0,
|
|
40387
|
-
/* @__PURE__ */ (0,
|
|
40714
|
+
item.type === "video" && /* @__PURE__ */ (0, import_jsx_runtime156.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_runtime156.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_runtime156.jsx)(Play, { className: "h-6 w-6 fill-white" }) }) }),
|
|
40715
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsx)("div", { className: "absolute inset-0 ring-1 ring-inset ring-black/10 rounded-2xl" })
|
|
40388
40716
|
]
|
|
40389
40717
|
},
|
|
40390
40718
|
i
|
|
@@ -40392,10 +40720,10 @@ var ContentPreviewGallery = ({
|
|
|
40392
40720
|
};
|
|
40393
40721
|
|
|
40394
40722
|
// src/molecules/creator-discovery/AudienceDemographicsCard/AudienceDemographicsCard.tsx
|
|
40395
|
-
var
|
|
40723
|
+
var import_jsx_runtime157 = require("react/jsx-runtime");
|
|
40396
40724
|
var AudienceDemographicsCard = ({ title, data, config, demographicType, className }) => {
|
|
40397
40725
|
const chartType = demographicType === "location" ? "bar" : "pie";
|
|
40398
|
-
return /* @__PURE__ */ (0,
|
|
40726
|
+
return /* @__PURE__ */ (0, import_jsx_runtime157.jsxs)(
|
|
40399
40727
|
Card,
|
|
40400
40728
|
{
|
|
40401
40729
|
className: cn(
|
|
@@ -40403,8 +40731,8 @@ var AudienceDemographicsCard = ({ title, data, config, demographicType, classNam
|
|
|
40403
40731
|
className
|
|
40404
40732
|
),
|
|
40405
40733
|
children: [
|
|
40406
|
-
/* @__PURE__ */ (0,
|
|
40407
|
-
/* @__PURE__ */ (0,
|
|
40734
|
+
/* @__PURE__ */ (0, import_jsx_runtime157.jsx)(CardHeader, { className: "pb-2", children: /* @__PURE__ */ (0, import_jsx_runtime157.jsx)(CardTitle, { className: "text-lg font-bold text-gray-900", children: title }) }),
|
|
40735
|
+
/* @__PURE__ */ (0, import_jsx_runtime157.jsx)(CardContent, { children: /* @__PURE__ */ (0, import_jsx_runtime157.jsx)("div", { className: "h-[250px] w-full", children: /* @__PURE__ */ (0, import_jsx_runtime157.jsx)(
|
|
40408
40736
|
ChartAtom,
|
|
40409
40737
|
{
|
|
40410
40738
|
type: "chart",
|
|
@@ -40423,7 +40751,7 @@ var AudienceDemographicsCard = ({ title, data, config, demographicType, classNam
|
|
|
40423
40751
|
};
|
|
40424
40752
|
|
|
40425
40753
|
// src/molecules/creator-discovery/GrowthChartCard/GrowthChartCard.tsx
|
|
40426
|
-
var
|
|
40754
|
+
var import_jsx_runtime158 = require("react/jsx-runtime");
|
|
40427
40755
|
var GrowthChartCard = ({
|
|
40428
40756
|
title,
|
|
40429
40757
|
data,
|
|
@@ -40432,7 +40760,7 @@ var GrowthChartCard = ({
|
|
|
40432
40760
|
period,
|
|
40433
40761
|
className
|
|
40434
40762
|
}) => {
|
|
40435
|
-
return /* @__PURE__ */ (0,
|
|
40763
|
+
return /* @__PURE__ */ (0, import_jsx_runtime158.jsxs)(
|
|
40436
40764
|
Card,
|
|
40437
40765
|
{
|
|
40438
40766
|
className: cn(
|
|
@@ -40440,15 +40768,15 @@ var GrowthChartCard = ({
|
|
|
40440
40768
|
className
|
|
40441
40769
|
),
|
|
40442
40770
|
children: [
|
|
40443
|
-
/* @__PURE__ */ (0,
|
|
40444
|
-
/* @__PURE__ */ (0,
|
|
40445
|
-
/* @__PURE__ */ (0,
|
|
40446
|
-
/* @__PURE__ */ (0,
|
|
40771
|
+
/* @__PURE__ */ (0, import_jsx_runtime158.jsxs)(CardHeader, { className: "flex flex-row items-center justify-between pb-2 space-y-0", children: [
|
|
40772
|
+
/* @__PURE__ */ (0, import_jsx_runtime158.jsxs)("div", { children: [
|
|
40773
|
+
/* @__PURE__ */ (0, import_jsx_runtime158.jsx)(CardTitle, { className: "text-lg font-bold text-gray-900", children: title }),
|
|
40774
|
+
/* @__PURE__ */ (0, import_jsx_runtime158.jsx)("p", { className: "text-xs text-muted-foreground", children: period })
|
|
40447
40775
|
] }),
|
|
40448
|
-
/* @__PURE__ */ (0,
|
|
40776
|
+
/* @__PURE__ */ (0, import_jsx_runtime158.jsx)("div", { className: "bg-green-50 p-2 rounded-xl", children: /* @__PURE__ */ (0, import_jsx_runtime158.jsx)(TrendingUp, { className: "w-4 h-4 text-green-600" }) })
|
|
40449
40777
|
] }),
|
|
40450
|
-
/* @__PURE__ */ (0,
|
|
40451
|
-
/* @__PURE__ */ (0,
|
|
40778
|
+
/* @__PURE__ */ (0, import_jsx_runtime158.jsxs)(CardContent, { children: [
|
|
40779
|
+
/* @__PURE__ */ (0, import_jsx_runtime158.jsx)("div", { className: "h-[200px] w-full mt-4", children: /* @__PURE__ */ (0, import_jsx_runtime158.jsx)(
|
|
40452
40780
|
ChartAtom,
|
|
40453
40781
|
{
|
|
40454
40782
|
type: "chart",
|
|
@@ -40461,9 +40789,9 @@ var GrowthChartCard = ({
|
|
|
40461
40789
|
showLegend: false
|
|
40462
40790
|
}
|
|
40463
40791
|
) }),
|
|
40464
|
-
/* @__PURE__ */ (0,
|
|
40465
|
-
/* @__PURE__ */ (0,
|
|
40466
|
-
/* @__PURE__ */ (0,
|
|
40792
|
+
/* @__PURE__ */ (0, import_jsx_runtime158.jsxs)("div", { className: "mt-4 flex items-center justify-between", children: [
|
|
40793
|
+
/* @__PURE__ */ (0, import_jsx_runtime158.jsx)("span", { className: "text-sm font-medium text-gray-500", children: metric }),
|
|
40794
|
+
/* @__PURE__ */ (0, import_jsx_runtime158.jsx)("span", { className: "text-sm font-bold text-purple-600", children: "+12.5%" })
|
|
40467
40795
|
] })
|
|
40468
40796
|
] })
|
|
40469
40797
|
]
|
|
@@ -40472,24 +40800,24 @@ var GrowthChartCard = ({
|
|
|
40472
40800
|
};
|
|
40473
40801
|
|
|
40474
40802
|
// src/molecules/creator-discovery/TopPostsGrid/TopPostsGrid.tsx
|
|
40475
|
-
var
|
|
40803
|
+
var import_jsx_runtime159 = require("react/jsx-runtime");
|
|
40476
40804
|
var TopPostsGrid = ({
|
|
40477
40805
|
posts,
|
|
40478
40806
|
className
|
|
40479
40807
|
}) => {
|
|
40480
|
-
return /* @__PURE__ */ (0,
|
|
40808
|
+
return /* @__PURE__ */ (0, import_jsx_runtime159.jsx)(
|
|
40481
40809
|
"div",
|
|
40482
40810
|
{
|
|
40483
40811
|
className: cn(
|
|
40484
40812
|
"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",
|
|
40485
40813
|
className
|
|
40486
40814
|
),
|
|
40487
|
-
children: posts.map((post, i) => /* @__PURE__ */ (0,
|
|
40815
|
+
children: posts.map((post, i) => /* @__PURE__ */ (0, import_jsx_runtime159.jsxs)(
|
|
40488
40816
|
"div",
|
|
40489
40817
|
{
|
|
40490
40818
|
className: "group relative aspect-square overflow-hidden rounded-2xl bg-gray-100 border border-purple-50",
|
|
40491
40819
|
children: [
|
|
40492
|
-
/* @__PURE__ */ (0,
|
|
40820
|
+
/* @__PURE__ */ (0, import_jsx_runtime159.jsx)(
|
|
40493
40821
|
"img",
|
|
40494
40822
|
{
|
|
40495
40823
|
src: post.thumbnail,
|
|
@@ -40497,25 +40825,25 @@ var TopPostsGrid = ({
|
|
|
40497
40825
|
className: "h-full w-full object-cover transition-transform duration-500 group-hover:scale-110"
|
|
40498
40826
|
}
|
|
40499
40827
|
),
|
|
40500
|
-
/* @__PURE__ */ (0,
|
|
40501
|
-
/* @__PURE__ */ (0,
|
|
40502
|
-
/* @__PURE__ */ (0,
|
|
40503
|
-
/* @__PURE__ */ (0,
|
|
40828
|
+
/* @__PURE__ */ (0, import_jsx_runtime159.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: [
|
|
40829
|
+
/* @__PURE__ */ (0, import_jsx_runtime159.jsxs)("div", { className: "flex items-center gap-4 text-white text-xs font-bold", children: [
|
|
40830
|
+
/* @__PURE__ */ (0, import_jsx_runtime159.jsxs)("span", { className: "flex items-center gap-1", children: [
|
|
40831
|
+
/* @__PURE__ */ (0, import_jsx_runtime159.jsx)(Heart, { className: "w-3 h-3 fill-white" }),
|
|
40504
40832
|
" ",
|
|
40505
40833
|
post.likes
|
|
40506
40834
|
] }),
|
|
40507
|
-
/* @__PURE__ */ (0,
|
|
40508
|
-
/* @__PURE__ */ (0,
|
|
40835
|
+
/* @__PURE__ */ (0, import_jsx_runtime159.jsxs)("span", { className: "flex items-center gap-1", children: [
|
|
40836
|
+
/* @__PURE__ */ (0, import_jsx_runtime159.jsx)(MessageCircle, { className: "w-3 h-3 fill-white" }),
|
|
40509
40837
|
" ",
|
|
40510
40838
|
post.comments
|
|
40511
40839
|
] }),
|
|
40512
|
-
/* @__PURE__ */ (0,
|
|
40513
|
-
/* @__PURE__ */ (0,
|
|
40840
|
+
/* @__PURE__ */ (0, import_jsx_runtime159.jsxs)("span", { className: "flex items-center gap-1", children: [
|
|
40841
|
+
/* @__PURE__ */ (0, import_jsx_runtime159.jsx)(ChartColumn, { className: "w-3 h-3" }),
|
|
40514
40842
|
" ",
|
|
40515
40843
|
post.engagement
|
|
40516
40844
|
] })
|
|
40517
40845
|
] }),
|
|
40518
|
-
/* @__PURE__ */ (0,
|
|
40846
|
+
/* @__PURE__ */ (0, import_jsx_runtime159.jsx)("span", { className: "text-[10px] text-gray-300 mt-2", children: post.date })
|
|
40519
40847
|
] })
|
|
40520
40848
|
]
|
|
40521
40849
|
},
|
|
@@ -40526,7 +40854,7 @@ var TopPostsGrid = ({
|
|
|
40526
40854
|
};
|
|
40527
40855
|
|
|
40528
40856
|
// src/molecules/creator-discovery/CreatorActionHeader/CreatorActionHeader.tsx
|
|
40529
|
-
var
|
|
40857
|
+
var import_jsx_runtime160 = require("react/jsx-runtime");
|
|
40530
40858
|
var CreatorActionHeader = ({
|
|
40531
40859
|
bannerSrc,
|
|
40532
40860
|
avatarSrc,
|
|
@@ -40535,7 +40863,7 @@ var CreatorActionHeader = ({
|
|
|
40535
40863
|
actions,
|
|
40536
40864
|
className
|
|
40537
40865
|
}) => {
|
|
40538
|
-
return /* @__PURE__ */ (0,
|
|
40866
|
+
return /* @__PURE__ */ (0, import_jsx_runtime160.jsxs)(
|
|
40539
40867
|
"div",
|
|
40540
40868
|
{
|
|
40541
40869
|
className: cn(
|
|
@@ -40543,8 +40871,8 @@ var CreatorActionHeader = ({
|
|
|
40543
40871
|
className
|
|
40544
40872
|
),
|
|
40545
40873
|
children: [
|
|
40546
|
-
/* @__PURE__ */ (0,
|
|
40547
|
-
bannerSrc && /* @__PURE__ */ (0,
|
|
40874
|
+
/* @__PURE__ */ (0, import_jsx_runtime160.jsxs)("div", { className: "h-48 w-full bg-gradient-to-r from-purple-100 to-indigo-100 relative", children: [
|
|
40875
|
+
bannerSrc && /* @__PURE__ */ (0, import_jsx_runtime160.jsx)(
|
|
40548
40876
|
"img",
|
|
40549
40877
|
{
|
|
40550
40878
|
src: bannerSrc,
|
|
@@ -40552,23 +40880,23 @@ var CreatorActionHeader = ({
|
|
|
40552
40880
|
alt: "Banner"
|
|
40553
40881
|
}
|
|
40554
40882
|
),
|
|
40555
|
-
/* @__PURE__ */ (0,
|
|
40883
|
+
/* @__PURE__ */ (0, import_jsx_runtime160.jsx)("div", { className: "absolute inset-0 bg-black/5" })
|
|
40556
40884
|
] }),
|
|
40557
|
-
/* @__PURE__ */ (0,
|
|
40558
|
-
/* @__PURE__ */ (0,
|
|
40559
|
-
/* @__PURE__ */ (0,
|
|
40560
|
-
/* @__PURE__ */ (0,
|
|
40561
|
-
/* @__PURE__ */ (0,
|
|
40885
|
+
/* @__PURE__ */ (0, import_jsx_runtime160.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: [
|
|
40886
|
+
/* @__PURE__ */ (0, import_jsx_runtime160.jsxs)("div", { className: "flex flex-col md:flex-row items-start md:items-end gap-6", children: [
|
|
40887
|
+
/* @__PURE__ */ (0, import_jsx_runtime160.jsx)("div", { className: "p-2 bg-white rounded-[32px] shadow-lg", children: /* @__PURE__ */ (0, import_jsx_runtime160.jsxs)(Avatar, { className: "h-32 w-32 rounded-[24px] border-4 border-white", children: [
|
|
40888
|
+
/* @__PURE__ */ (0, import_jsx_runtime160.jsx)(AvatarImage, { src: avatarSrc, className: "rounded-[24px]" }),
|
|
40889
|
+
/* @__PURE__ */ (0, import_jsx_runtime160.jsx)(AvatarFallback, { className: "rounded-[24px] bg-purple-50 text-purple-600 text-3xl font-bold", children: name.charAt(0) })
|
|
40562
40890
|
] }) }),
|
|
40563
|
-
/* @__PURE__ */ (0,
|
|
40564
|
-
/* @__PURE__ */ (0,
|
|
40565
|
-
/* @__PURE__ */ (0,
|
|
40891
|
+
/* @__PURE__ */ (0, import_jsx_runtime160.jsxs)("div", { className: "mb-2", children: [
|
|
40892
|
+
/* @__PURE__ */ (0, import_jsx_runtime160.jsx)("h1", { className: "text-3xl font-bold text-gray-900 tracking-tight", children: name }),
|
|
40893
|
+
/* @__PURE__ */ (0, import_jsx_runtime160.jsxs)("p", { className: "text-purple-600 font-medium tracking-wide", children: [
|
|
40566
40894
|
"@",
|
|
40567
40895
|
handle
|
|
40568
40896
|
] })
|
|
40569
40897
|
] })
|
|
40570
40898
|
] }),
|
|
40571
|
-
/* @__PURE__ */ (0,
|
|
40899
|
+
/* @__PURE__ */ (0, import_jsx_runtime160.jsx)("div", { className: "flex items-center gap-3 mb-2", children: actions.map((action, i) => /* @__PURE__ */ (0, import_jsx_runtime160.jsx)(
|
|
40572
40900
|
Button,
|
|
40573
40901
|
{
|
|
40574
40902
|
variant: action.variant || "default",
|
|
@@ -40587,9 +40915,9 @@ var CreatorActionHeader = ({
|
|
|
40587
40915
|
};
|
|
40588
40916
|
|
|
40589
40917
|
// src/molecules/creator-discovery/CreatorSearchBox/CreatorSearch.tsx
|
|
40590
|
-
var
|
|
40591
|
-
var
|
|
40592
|
-
var CreatorSearch =
|
|
40918
|
+
var import_react79 = __toESM(require("react"), 1);
|
|
40919
|
+
var import_jsx_runtime161 = require("react/jsx-runtime");
|
|
40920
|
+
var CreatorSearch = import_react79.default.memo(
|
|
40593
40921
|
({
|
|
40594
40922
|
selectionStatus,
|
|
40595
40923
|
isLatestMessage = true,
|
|
@@ -40598,7 +40926,7 @@ var CreatorSearch = import_react78.default.memo(
|
|
|
40598
40926
|
data,
|
|
40599
40927
|
...formCardProps
|
|
40600
40928
|
}) => {
|
|
40601
|
-
const fields = (0,
|
|
40929
|
+
const fields = (0, import_react79.useMemo)(() => {
|
|
40602
40930
|
const baseFields = providedFields || generateFieldsFromData(data);
|
|
40603
40931
|
return baseFields.map((field) => {
|
|
40604
40932
|
if (field.key === "platforms") {
|
|
@@ -40606,7 +40934,7 @@ var CreatorSearch = import_react78.default.memo(
|
|
|
40606
40934
|
...field,
|
|
40607
40935
|
renderDisplay: (val) => {
|
|
40608
40936
|
const platforms = Array.isArray(val) ? val : [val];
|
|
40609
|
-
return /* @__PURE__ */ (0,
|
|
40937
|
+
return /* @__PURE__ */ (0, import_jsx_runtime161.jsx)("div", { className: "flex flex-wrap gap-2", children: platforms.map((p) => /* @__PURE__ */ (0, import_jsx_runtime161.jsx)(
|
|
40610
40938
|
BadgeAtom,
|
|
40611
40939
|
{
|
|
40612
40940
|
id: `platform-${p}`,
|
|
@@ -40623,13 +40951,13 @@ var CreatorSearch = import_react78.default.memo(
|
|
|
40623
40951
|
if (field.key === "geography") {
|
|
40624
40952
|
return {
|
|
40625
40953
|
...field,
|
|
40626
|
-
renderDisplay: (val) => /* @__PURE__ */ (0,
|
|
40954
|
+
renderDisplay: (val) => /* @__PURE__ */ (0, import_jsx_runtime161.jsx)(CountrySelectDisplay, { value: val })
|
|
40627
40955
|
};
|
|
40628
40956
|
}
|
|
40629
40957
|
if (field.key === "keywordBundles") {
|
|
40630
40958
|
return {
|
|
40631
40959
|
...field,
|
|
40632
|
-
renderDisplay: (val) => /* @__PURE__ */ (0,
|
|
40960
|
+
renderDisplay: (val) => /* @__PURE__ */ (0, import_jsx_runtime161.jsx)(KeywordBundlesDisplay, { value: val })
|
|
40633
40961
|
};
|
|
40634
40962
|
}
|
|
40635
40963
|
if (field.key === "followerRange") {
|
|
@@ -40637,9 +40965,9 @@ var CreatorSearch = import_react78.default.memo(
|
|
|
40637
40965
|
...field,
|
|
40638
40966
|
renderDisplay: (val) => {
|
|
40639
40967
|
if (typeof val === "object" && val !== null) {
|
|
40640
|
-
return /* @__PURE__ */ (0,
|
|
40968
|
+
return /* @__PURE__ */ (0, import_jsx_runtime161.jsx)("span", { className: "text-white font-medium", children: `${val.min?.toLocaleString()} - ${val.max?.toLocaleString()} followers` });
|
|
40641
40969
|
}
|
|
40642
|
-
return /* @__PURE__ */ (0,
|
|
40970
|
+
return /* @__PURE__ */ (0, import_jsx_runtime161.jsxs)("span", { className: "text-white font-medium", children: [
|
|
40643
40971
|
val,
|
|
40644
40972
|
" followers"
|
|
40645
40973
|
] });
|
|
@@ -40649,7 +40977,7 @@ var CreatorSearch = import_react78.default.memo(
|
|
|
40649
40977
|
if (field.key === "initialCreators") {
|
|
40650
40978
|
return {
|
|
40651
40979
|
...field,
|
|
40652
|
-
renderDisplay: (val) => /* @__PURE__ */ (0,
|
|
40980
|
+
renderDisplay: (val) => /* @__PURE__ */ (0, import_jsx_runtime161.jsxs)("span", { className: "text-white font-medium", children: [
|
|
40653
40981
|
val,
|
|
40654
40982
|
" creators"
|
|
40655
40983
|
] })
|
|
@@ -40658,7 +40986,7 @@ var CreatorSearch = import_react78.default.memo(
|
|
|
40658
40986
|
return field;
|
|
40659
40987
|
});
|
|
40660
40988
|
}, [providedFields, data]);
|
|
40661
|
-
return /* @__PURE__ */ (0,
|
|
40989
|
+
return /* @__PURE__ */ (0, import_jsx_runtime161.jsx)("div", { className: "flex flex-col gap-2", children: /* @__PURE__ */ (0, import_jsx_runtime161.jsx)(
|
|
40662
40990
|
FormCard,
|
|
40663
40991
|
{
|
|
40664
40992
|
...formCardProps,
|
|
@@ -40667,9 +40995,9 @@ var CreatorSearch = import_react78.default.memo(
|
|
|
40667
40995
|
fields,
|
|
40668
40996
|
showTimeline: true,
|
|
40669
40997
|
className: cn("font-noto", className),
|
|
40670
|
-
footer: !isLatestMessage && selectionStatus ? /* @__PURE__ */ (0,
|
|
40671
|
-
/* @__PURE__ */ (0,
|
|
40672
|
-
/* @__PURE__ */ (0,
|
|
40998
|
+
footer: !isLatestMessage && selectionStatus ? /* @__PURE__ */ (0, import_jsx_runtime161.jsxs)("div", { className: "flex justify-end items-center gap-1.5 text-green-600 text-[10px] font-semibold py-4 pr-6", children: [
|
|
40999
|
+
/* @__PURE__ */ (0, import_jsx_runtime161.jsx)(CircleCheck, { className: "h-3.5 w-3.5" }),
|
|
41000
|
+
/* @__PURE__ */ (0, import_jsx_runtime161.jsx)("span", { children: selectionStatus === "agent" ? "Suggested by Agent" : "Selected by you" })
|
|
40673
41001
|
] }) : formCardProps.footer
|
|
40674
41002
|
}
|
|
40675
41003
|
) });
|
|
@@ -40678,10 +41006,10 @@ var CreatorSearch = import_react78.default.memo(
|
|
|
40678
41006
|
CreatorSearch.displayName = "CreatorSearch";
|
|
40679
41007
|
|
|
40680
41008
|
// src/molecules/creator-discovery/CampaignConceptCard/CampaignConceptCard.tsx
|
|
40681
|
-
var
|
|
41009
|
+
var import_react80 = __toESM(require("react"), 1);
|
|
40682
41010
|
var import_framer_motion = require("framer-motion");
|
|
40683
|
-
var
|
|
40684
|
-
var CampaignConceptCard =
|
|
41011
|
+
var import_jsx_runtime162 = require("react/jsx-runtime");
|
|
41012
|
+
var CampaignConceptCard = import_react80.default.memo(
|
|
40685
41013
|
({
|
|
40686
41014
|
index,
|
|
40687
41015
|
isRecommended,
|
|
@@ -40697,7 +41025,7 @@ var CampaignConceptCard = import_react79.default.memo(
|
|
|
40697
41025
|
onAction,
|
|
40698
41026
|
...formCardProps
|
|
40699
41027
|
}) => {
|
|
40700
|
-
const [internalIsOpen, setInternalIsOpen] = (0,
|
|
41028
|
+
const [internalIsOpen, setInternalIsOpen] = (0, import_react80.useState)(false);
|
|
40701
41029
|
const isOpen = controlledIsOpen !== void 0 ? controlledIsOpen : internalIsOpen;
|
|
40702
41030
|
const handleToggle = () => {
|
|
40703
41031
|
if (onToggle) {
|
|
@@ -40716,7 +41044,7 @@ var CampaignConceptCard = import_react79.default.memo(
|
|
|
40716
41044
|
});
|
|
40717
41045
|
};
|
|
40718
41046
|
const effectiveIsLatest = isLatestMessage && !hasUserResponded;
|
|
40719
|
-
const fields = (0,
|
|
41047
|
+
const fields = (0, import_react80.useMemo)(() => {
|
|
40720
41048
|
const baseFields = providedFields || generateFieldsFromData(data);
|
|
40721
41049
|
const FIELD_ORDER = [
|
|
40722
41050
|
"description",
|
|
@@ -40753,39 +41081,39 @@ var CampaignConceptCard = import_react79.default.memo(
|
|
|
40753
41081
|
label: "Budget Allocation",
|
|
40754
41082
|
renderDisplay: (val) => {
|
|
40755
41083
|
if (!val)
|
|
40756
|
-
return /* @__PURE__ */ (0,
|
|
41084
|
+
return /* @__PURE__ */ (0, import_jsx_runtime162.jsx)("span", { className: "text-muted-foreground text-sm", children: "-" });
|
|
40757
41085
|
if (Array.isArray(val)) {
|
|
40758
|
-
return /* @__PURE__ */ (0,
|
|
41086
|
+
return /* @__PURE__ */ (0, import_jsx_runtime162.jsx)("div", { className: "space-y-2", children: val.map((item, idx) => {
|
|
40759
41087
|
const label = item?.label ?? item?.key ?? `Item ${idx + 1}`;
|
|
40760
41088
|
const value = item?.value ?? item;
|
|
40761
|
-
return /* @__PURE__ */ (0,
|
|
40762
|
-
/* @__PURE__ */ (0,
|
|
41089
|
+
return /* @__PURE__ */ (0, import_jsx_runtime162.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
41090
|
+
/* @__PURE__ */ (0, import_jsx_runtime162.jsxs)("span", { className: "text-muted-foreground font-medium", children: [
|
|
40763
41091
|
idx + 1,
|
|
40764
41092
|
"."
|
|
40765
41093
|
] }),
|
|
40766
|
-
/* @__PURE__ */ (0,
|
|
40767
|
-
/* @__PURE__ */ (0,
|
|
40768
|
-
/* @__PURE__ */ (0,
|
|
41094
|
+
/* @__PURE__ */ (0, import_jsx_runtime162.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) }),
|
|
41095
|
+
/* @__PURE__ */ (0, import_jsx_runtime162.jsx)("span", { className: "text-cardText", children: "=" }),
|
|
41096
|
+
/* @__PURE__ */ (0, import_jsx_runtime162.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) })
|
|
40769
41097
|
] }, idx);
|
|
40770
41098
|
}) });
|
|
40771
41099
|
}
|
|
40772
41100
|
if (typeof val === "object") {
|
|
40773
41101
|
const entries = Object.entries(val);
|
|
40774
41102
|
if (entries.length === 0)
|
|
40775
|
-
return /* @__PURE__ */ (0,
|
|
40776
|
-
return /* @__PURE__ */ (0,
|
|
40777
|
-
/* @__PURE__ */ (0,
|
|
41103
|
+
return /* @__PURE__ */ (0, import_jsx_runtime162.jsx)("span", { className: "text-muted-foreground text-sm", children: "-" });
|
|
41104
|
+
return /* @__PURE__ */ (0, import_jsx_runtime162.jsx)("div", { className: "space-y-2", children: entries.map(([k, v], idx) => /* @__PURE__ */ (0, import_jsx_runtime162.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
41105
|
+
/* @__PURE__ */ (0, import_jsx_runtime162.jsxs)("span", { className: "text-muted-foreground font-medium", children: [
|
|
40778
41106
|
idx + 1,
|
|
40779
41107
|
"."
|
|
40780
41108
|
] }),
|
|
40781
|
-
/* @__PURE__ */ (0,
|
|
40782
|
-
/* @__PURE__ */ (0,
|
|
40783
|
-
/* @__PURE__ */ (0,
|
|
41109
|
+
/* @__PURE__ */ (0, import_jsx_runtime162.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) }),
|
|
41110
|
+
/* @__PURE__ */ (0, import_jsx_runtime162.jsx)("span", { className: "text-cardText", children: "=" }),
|
|
41111
|
+
/* @__PURE__ */ (0, import_jsx_runtime162.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) })
|
|
40784
41112
|
] }, k)) });
|
|
40785
41113
|
}
|
|
40786
|
-
return /* @__PURE__ */ (0,
|
|
41114
|
+
return /* @__PURE__ */ (0, import_jsx_runtime162.jsx)("span", { className: "text-muted-foreground text-sm", children: String(val) });
|
|
40787
41115
|
},
|
|
40788
|
-
renderEdit: (v, onChange) => /* @__PURE__ */ (0,
|
|
41116
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ (0, import_jsx_runtime162.jsx)(
|
|
40789
41117
|
Textarea,
|
|
40790
41118
|
{
|
|
40791
41119
|
value: typeof v === "object" ? Object.entries(v || {}).map(([k, val]) => `${k.replace(/_/g, " ")}: ${val}`).join("\n") : String(v || ""),
|
|
@@ -40810,8 +41138,8 @@ var CampaignConceptCard = import_react79.default.memo(
|
|
|
40810
41138
|
return {
|
|
40811
41139
|
...field,
|
|
40812
41140
|
label: "Geography",
|
|
40813
|
-
renderDisplay: (v) => /* @__PURE__ */ (0,
|
|
40814
|
-
renderEdit: (v, onChange) => /* @__PURE__ */ (0,
|
|
41141
|
+
renderDisplay: (v) => /* @__PURE__ */ (0, import_jsx_runtime162.jsx)(CountrySelectDisplay, { value: v }),
|
|
41142
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ (0, import_jsx_runtime162.jsx)(CountrySelectEdit, { value: v, onChange })
|
|
40815
41143
|
};
|
|
40816
41144
|
}
|
|
40817
41145
|
if (field.key === "estimatedCreators" || field.key === "estimated_creators") {
|
|
@@ -40820,11 +41148,11 @@ var CampaignConceptCard = import_react79.default.memo(
|
|
|
40820
41148
|
label: "Estimated Creators",
|
|
40821
41149
|
renderDisplay: (val) => {
|
|
40822
41150
|
if (!val)
|
|
40823
|
-
return /* @__PURE__ */ (0,
|
|
41151
|
+
return /* @__PURE__ */ (0, import_jsx_runtime162.jsx)("span", { className: "text-muted-foreground text-sm", children: "-" });
|
|
40824
41152
|
const displayValue = typeof val === "object" && !Array.isArray(val) ? `${val.min ?? 0}-${val.max ?? 0}` : String(val);
|
|
40825
|
-
return /* @__PURE__ */ (0,
|
|
41153
|
+
return /* @__PURE__ */ (0, import_jsx_runtime162.jsx)("span", { className: "text-cardText text-sm", children: displayValue });
|
|
40826
41154
|
},
|
|
40827
|
-
renderEdit: (v, onChange) => /* @__PURE__ */ (0,
|
|
41155
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ (0, import_jsx_runtime162.jsx)(
|
|
40828
41156
|
Input,
|
|
40829
41157
|
{
|
|
40830
41158
|
value: typeof v === "object" ? `${v.min ?? 0}-${v.max ?? 0}` : String(v || ""),
|
|
@@ -40847,8 +41175,8 @@ var CampaignConceptCard = import_react79.default.memo(
|
|
|
40847
41175
|
return {
|
|
40848
41176
|
...field,
|
|
40849
41177
|
label: field.label || "Primary KPI",
|
|
40850
|
-
renderDisplay: (val) => /* @__PURE__ */ (0,
|
|
40851
|
-
renderEdit: (v, onChange) => /* @__PURE__ */ (0,
|
|
41178
|
+
renderDisplay: (val) => /* @__PURE__ */ (0, import_jsx_runtime162.jsx)("span", { className: "text-cardText text-sm", children: val ? String(val) : "-" }),
|
|
41179
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ (0, import_jsx_runtime162.jsx)(
|
|
40852
41180
|
Input,
|
|
40853
41181
|
{
|
|
40854
41182
|
value: String(v || ""),
|
|
@@ -40865,9 +41193,9 @@ var CampaignConceptCard = import_react79.default.memo(
|
|
|
40865
41193
|
label: field.label || "Secondary KPIs",
|
|
40866
41194
|
renderDisplay: (val) => {
|
|
40867
41195
|
const display = Array.isArray(val) ? val.map(String).join(", ") : val ? String(val) : "-";
|
|
40868
|
-
return /* @__PURE__ */ (0,
|
|
41196
|
+
return /* @__PURE__ */ (0, import_jsx_runtime162.jsx)("span", { className: "text-cardText text-sm", children: display });
|
|
40869
41197
|
},
|
|
40870
|
-
renderEdit: (v, onChange) => /* @__PURE__ */ (0,
|
|
41198
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ (0, import_jsx_runtime162.jsx)(
|
|
40871
41199
|
Textarea,
|
|
40872
41200
|
{
|
|
40873
41201
|
value: Array.isArray(v) ? v.join(", ") : String(v || ""),
|
|
@@ -40884,15 +41212,15 @@ var CampaignConceptCard = import_react79.default.memo(
|
|
|
40884
41212
|
if (field.key === "platforms" || field.key === "target_platforms" || field.key === "targetPlatforms") {
|
|
40885
41213
|
return {
|
|
40886
41214
|
...field,
|
|
40887
|
-
renderDisplay: (v) => /* @__PURE__ */ (0,
|
|
40888
|
-
renderEdit: (v, onChange) => /* @__PURE__ */ (0,
|
|
41215
|
+
renderDisplay: (v) => /* @__PURE__ */ (0, import_jsx_runtime162.jsx)(PlatformSelectDisplay, { value: v }),
|
|
41216
|
+
renderEdit: (v, onChange) => /* @__PURE__ */ (0, import_jsx_runtime162.jsx)(PlatformSelectEdit, { value: v, onChange })
|
|
40889
41217
|
};
|
|
40890
41218
|
}
|
|
40891
41219
|
if (field.key === "description" || field.key === "creator_strategy" || field.key === "creatorStrategy") {
|
|
40892
41220
|
return {
|
|
40893
41221
|
...field,
|
|
40894
41222
|
type: "textarea",
|
|
40895
|
-
renderDisplay: (val) => /* @__PURE__ */ (0,
|
|
41223
|
+
renderDisplay: (val) => /* @__PURE__ */ (0, import_jsx_runtime162.jsx)("span", { className: "text-cardText text-sm leading-relaxed", children: val ? String(val) : "-" })
|
|
40896
41224
|
};
|
|
40897
41225
|
}
|
|
40898
41226
|
return {
|
|
@@ -40900,10 +41228,10 @@ var CampaignConceptCard = import_react79.default.memo(
|
|
|
40900
41228
|
renderDisplay: (val) => {
|
|
40901
41229
|
if (Array.isArray(val)) {
|
|
40902
41230
|
if (val.length === 0)
|
|
40903
|
-
return /* @__PURE__ */ (0,
|
|
40904
|
-
return /* @__PURE__ */ (0,
|
|
41231
|
+
return /* @__PURE__ */ (0, import_jsx_runtime162.jsx)("span", { className: "text-muted-foreground text-sm", children: "-" });
|
|
41232
|
+
return /* @__PURE__ */ (0, import_jsx_runtime162.jsx)("div", { className: "flex flex-wrap gap-2 pt-1", children: val.map((item, idx) => {
|
|
40905
41233
|
const label = typeof item === "object" && item !== null ? item.label || item.value || item.name || JSON.stringify(item) : String(item);
|
|
40906
|
-
return /* @__PURE__ */ (0,
|
|
41234
|
+
return /* @__PURE__ */ (0, import_jsx_runtime162.jsx)(
|
|
40907
41235
|
"span",
|
|
40908
41236
|
{
|
|
40909
41237
|
className: "inline-flex items-center bg-black border border-cardBorder px-2 py-0.5 text-cardText text-xs font-medium rounded-md",
|
|
@@ -40914,14 +41242,14 @@ var CampaignConceptCard = import_react79.default.memo(
|
|
|
40914
41242
|
}) });
|
|
40915
41243
|
}
|
|
40916
41244
|
if (typeof val === "object" && val !== null) {
|
|
40917
|
-
return /* @__PURE__ */ (0,
|
|
41245
|
+
return /* @__PURE__ */ (0, import_jsx_runtime162.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") });
|
|
40918
41246
|
}
|
|
40919
|
-
return /* @__PURE__ */ (0,
|
|
41247
|
+
return /* @__PURE__ */ (0, import_jsx_runtime162.jsx)("span", { className: "text-cardText text-sm", children: val !== void 0 && val !== null ? String(val) : "-" });
|
|
40920
41248
|
}
|
|
40921
41249
|
};
|
|
40922
41250
|
});
|
|
40923
41251
|
}, [providedFields, data]);
|
|
40924
|
-
return /* @__PURE__ */ (0,
|
|
41252
|
+
return /* @__PURE__ */ (0, import_jsx_runtime162.jsxs)(
|
|
40925
41253
|
"div",
|
|
40926
41254
|
{
|
|
40927
41255
|
className: cn(
|
|
@@ -40930,31 +41258,31 @@ var CampaignConceptCard = import_react79.default.memo(
|
|
|
40930
41258
|
className
|
|
40931
41259
|
),
|
|
40932
41260
|
children: [
|
|
40933
|
-
/* @__PURE__ */ (0,
|
|
41261
|
+
/* @__PURE__ */ (0, import_jsx_runtime162.jsxs)(
|
|
40934
41262
|
"div",
|
|
40935
41263
|
{
|
|
40936
41264
|
className: "px-4 py-2.5 relative flex items-center justify-between cursor-pointer select-none",
|
|
40937
41265
|
onClick: handleToggle,
|
|
40938
41266
|
children: [
|
|
40939
|
-
/* @__PURE__ */ (0,
|
|
40940
|
-
/* @__PURE__ */ (0,
|
|
41267
|
+
/* @__PURE__ */ (0, import_jsx_runtime162.jsxs)("div", { className: "flex-1", children: [
|
|
41268
|
+
/* @__PURE__ */ (0, import_jsx_runtime162.jsxs)("h3", { className: "text-cardText font-semibold text-sm", children: [
|
|
40941
41269
|
"Concept ",
|
|
40942
41270
|
index !== void 0 ? index : "",
|
|
40943
41271
|
" :",
|
|
40944
41272
|
" ",
|
|
40945
41273
|
typeof cardTitle === "object" ? JSON.stringify(cardTitle) : String(cardTitle)
|
|
40946
41274
|
] }),
|
|
40947
|
-
/* @__PURE__ */ (0,
|
|
40948
|
-
isRecommended && /* @__PURE__ */ (0,
|
|
40949
|
-
!effectiveIsLatest && selectionStatus && /* @__PURE__ */ (0,
|
|
41275
|
+
/* @__PURE__ */ (0, import_jsx_runtime162.jsxs)("div", { className: "flex flex-wrap gap-2", children: [
|
|
41276
|
+
isRecommended && /* @__PURE__ */ (0, import_jsx_runtime162.jsx)("span", { className: "text-[10px] font-semibold uppercase tracking-widest text-gold", children: "Recommended" }),
|
|
41277
|
+
!effectiveIsLatest && selectionStatus && /* @__PURE__ */ (0, import_jsx_runtime162.jsx)("span", { className: "text-[10px] font-semibold uppercase tracking-widest text-gold", children: selectionStatus === "agent" ? "Selected by Agent" : "Selected by You" })
|
|
40950
41278
|
] })
|
|
40951
41279
|
] }),
|
|
40952
|
-
/* @__PURE__ */ (0,
|
|
41280
|
+
/* @__PURE__ */ (0, import_jsx_runtime162.jsx)(
|
|
40953
41281
|
"div",
|
|
40954
41282
|
{
|
|
40955
41283
|
className: "flex items-center gap-2 ml-3",
|
|
40956
41284
|
onClick: (e) => e.stopPropagation(),
|
|
40957
|
-
children: /* @__PURE__ */ (0,
|
|
41285
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime162.jsx)(
|
|
40958
41286
|
"button",
|
|
40959
41287
|
{
|
|
40960
41288
|
onClick: (e) => {
|
|
@@ -40965,7 +41293,7 @@ var CampaignConceptCard = import_react79.default.memo(
|
|
|
40965
41293
|
className: "p-2 bg-cardSurface hover:bg-gray200 text-cardText rounded-lg",
|
|
40966
41294
|
"aria-label": isOpen ? "Collapse" : "Expand",
|
|
40967
41295
|
title: isOpen ? "Collapse" : "Expand",
|
|
40968
|
-
children: /* @__PURE__ */ (0,
|
|
41296
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime162.jsx)(
|
|
40969
41297
|
ChevronDown,
|
|
40970
41298
|
{
|
|
40971
41299
|
className: `h-4 w-4 transition-transform ${isOpen ? "rotate-0" : "-rotate-90"}`
|
|
@@ -40978,7 +41306,7 @@ var CampaignConceptCard = import_react79.default.memo(
|
|
|
40978
41306
|
]
|
|
40979
41307
|
}
|
|
40980
41308
|
),
|
|
40981
|
-
/* @__PURE__ */ (0,
|
|
41309
|
+
/* @__PURE__ */ (0, import_jsx_runtime162.jsx)(import_framer_motion.AnimatePresence, { initial: false, children: isOpen && /* @__PURE__ */ (0, import_jsx_runtime162.jsx)(
|
|
40982
41310
|
import_framer_motion.motion.div,
|
|
40983
41311
|
{
|
|
40984
41312
|
initial: { height: 0, opacity: 0 },
|
|
@@ -40986,8 +41314,8 @@ var CampaignConceptCard = import_react79.default.memo(
|
|
|
40986
41314
|
exit: { height: 0, opacity: 0 },
|
|
40987
41315
|
transition: { duration: 0.2, ease: "easeIn" },
|
|
40988
41316
|
className: "overflow-hidden",
|
|
40989
|
-
children: /* @__PURE__ */ (0,
|
|
40990
|
-
/* @__PURE__ */ (0,
|
|
41317
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime162.jsxs)("div", { className: "px-3 py-2 w-full relative", children: [
|
|
41318
|
+
/* @__PURE__ */ (0, import_jsx_runtime162.jsx)(
|
|
40991
41319
|
"div",
|
|
40992
41320
|
{
|
|
40993
41321
|
className: "absolute left-[48px] top-[70px] bottom-[40px] w-[2px]",
|
|
@@ -40996,7 +41324,7 @@ var CampaignConceptCard = import_react79.default.memo(
|
|
|
40996
41324
|
}
|
|
40997
41325
|
}
|
|
40998
41326
|
),
|
|
40999
|
-
/* @__PURE__ */ (0,
|
|
41327
|
+
/* @__PURE__ */ (0, import_jsx_runtime162.jsx)(
|
|
41000
41328
|
FormCard,
|
|
41001
41329
|
{
|
|
41002
41330
|
...formCardProps,
|
|
@@ -41010,9 +41338,9 @@ var CampaignConceptCard = import_react79.default.memo(
|
|
|
41010
41338
|
hideTitle: true,
|
|
41011
41339
|
hideCopyButton: true,
|
|
41012
41340
|
className: "bg-transparent border-none shadow-none mb-0 p-0",
|
|
41013
|
-
footer: !effectiveIsLatest && selectionStatus ? /* @__PURE__ */ (0,
|
|
41014
|
-
/* @__PURE__ */ (0,
|
|
41015
|
-
/* @__PURE__ */ (0,
|
|
41341
|
+
footer: !effectiveIsLatest && selectionStatus ? /* @__PURE__ */ (0, import_jsx_runtime162.jsxs)("div", { className: "flex justify-end items-center gap-1 text-green-600 text-[10px] font-semibold py-2 pr-4", children: [
|
|
41342
|
+
/* @__PURE__ */ (0, import_jsx_runtime162.jsx)(CircleCheck, { className: "h-3.5 w-3.5" }),
|
|
41343
|
+
/* @__PURE__ */ (0, import_jsx_runtime162.jsx)("span", { children: selectionStatus === "agent" ? "Selected by Agent" : "Selected by You" })
|
|
41016
41344
|
] }) : formCardProps.footer
|
|
41017
41345
|
}
|
|
41018
41346
|
)
|
|
@@ -41028,14 +41356,14 @@ var CampaignConceptCard = import_react79.default.memo(
|
|
|
41028
41356
|
CampaignConceptCard.displayName = "CampaignConceptCard";
|
|
41029
41357
|
|
|
41030
41358
|
// src/molecules/creator-discovery/CreatorWidget/CreatorWidget.tsx
|
|
41031
|
-
var
|
|
41359
|
+
var import_react88 = require("react");
|
|
41032
41360
|
|
|
41033
41361
|
// src/molecules/creator-discovery/CreatorWidget/CreatorImageList.tsx
|
|
41034
|
-
var
|
|
41035
|
-
var
|
|
41362
|
+
var import_react81 = require("react");
|
|
41363
|
+
var import_jsx_runtime163 = require("react/jsx-runtime");
|
|
41036
41364
|
function useMediaQuery(query) {
|
|
41037
|
-
const [matches, setMatches] = (0,
|
|
41038
|
-
(0,
|
|
41365
|
+
const [matches, setMatches] = (0, import_react81.useState)(false);
|
|
41366
|
+
(0, import_react81.useEffect)(() => {
|
|
41039
41367
|
const media = window.matchMedia(query);
|
|
41040
41368
|
const listener = () => setMatches(media.matches);
|
|
41041
41369
|
listener();
|
|
@@ -41053,8 +41381,8 @@ function CreatorImage({
|
|
|
41053
41381
|
const processedCount = Math.floor(creatorsPercentage / 100 * totalCreators);
|
|
41054
41382
|
const isProcessed = idx < processedCount;
|
|
41055
41383
|
const isCurrentlyProcessing = idx === processedCount;
|
|
41056
|
-
return /* @__PURE__ */ (0,
|
|
41057
|
-
/* @__PURE__ */ (0,
|
|
41384
|
+
return /* @__PURE__ */ (0, import_jsx_runtime163.jsxs)("div", { className: "relative w-8 h-8", children: [
|
|
41385
|
+
/* @__PURE__ */ (0, import_jsx_runtime163.jsx)(
|
|
41058
41386
|
"img",
|
|
41059
41387
|
{
|
|
41060
41388
|
src: img,
|
|
@@ -41062,9 +41390,9 @@ function CreatorImage({
|
|
|
41062
41390
|
className: `w-8 h-8 rounded-full border-2 ${isProcessed ? "border-green-600" : "border-foreground"} object-cover transition-all duration-300`
|
|
41063
41391
|
}
|
|
41064
41392
|
),
|
|
41065
|
-
!isProcessed && /* @__PURE__ */ (0,
|
|
41066
|
-
isCurrentlyProcessing && /* @__PURE__ */ (0,
|
|
41067
|
-
/* @__PURE__ */ (0,
|
|
41393
|
+
!isProcessed && /* @__PURE__ */ (0, import_jsx_runtime163.jsx)("div", { className: "absolute inset-0 bg-black/50 rounded-full pointer-events-none" }),
|
|
41394
|
+
isCurrentlyProcessing && /* @__PURE__ */ (0, import_jsx_runtime163.jsxs)(import_jsx_runtime163.Fragment, { children: [
|
|
41395
|
+
/* @__PURE__ */ (0, import_jsx_runtime163.jsx)(
|
|
41068
41396
|
"div",
|
|
41069
41397
|
{
|
|
41070
41398
|
className: "absolute inset-0 bg-black/50 rounded-full pointer-events-none",
|
|
@@ -41080,7 +41408,7 @@ function CreatorImage({
|
|
|
41080
41408
|
}
|
|
41081
41409
|
}
|
|
41082
41410
|
),
|
|
41083
|
-
/* @__PURE__ */ (0,
|
|
41411
|
+
/* @__PURE__ */ (0, import_jsx_runtime163.jsx)("div", { className: "absolute inset-0 rounded-full border-2 border-[#9CA3AF]/30 pointer-events-none" })
|
|
41084
41412
|
] })
|
|
41085
41413
|
] });
|
|
41086
41414
|
}
|
|
@@ -41093,8 +41421,8 @@ function CreatorImageList({
|
|
|
41093
41421
|
const isMobile = useMediaQuery("(max-width: 640px)");
|
|
41094
41422
|
const isTablet = useMediaQuery("(min-width: 641px) and (max-width: 1024px)");
|
|
41095
41423
|
const visibleCount = isMobile ? 7 : isTablet ? 10 : isAgentOutput ? 6 : 15;
|
|
41096
|
-
return /* @__PURE__ */ (0,
|
|
41097
|
-
creatorImages.slice(0, visibleCount).map((img, idx) => /* @__PURE__ */ (0,
|
|
41424
|
+
return /* @__PURE__ */ (0, import_jsx_runtime163.jsxs)("div", { className: "flex flex-nowrap sm:flex-wrap -space-x-2 w-fit", children: [
|
|
41425
|
+
creatorImages.slice(0, visibleCount).map((img, idx) => /* @__PURE__ */ (0, import_jsx_runtime163.jsx)(
|
|
41098
41426
|
CreatorImage,
|
|
41099
41427
|
{
|
|
41100
41428
|
img,
|
|
@@ -41104,7 +41432,7 @@ function CreatorImageList({
|
|
|
41104
41432
|
},
|
|
41105
41433
|
idx
|
|
41106
41434
|
)),
|
|
41107
|
-
creatorLength > visibleCount && /* @__PURE__ */ (0,
|
|
41435
|
+
creatorLength > visibleCount && /* @__PURE__ */ (0, import_jsx_runtime163.jsxs)(
|
|
41108
41436
|
"div",
|
|
41109
41437
|
{
|
|
41110
41438
|
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"}`,
|
|
@@ -41118,28 +41446,28 @@ function CreatorImageList({
|
|
|
41118
41446
|
}
|
|
41119
41447
|
|
|
41120
41448
|
// src/molecules/creator-discovery/CreatorWidget/CreatorProgressBar.tsx
|
|
41121
|
-
var
|
|
41449
|
+
var import_react82 = require("react");
|
|
41122
41450
|
var import_framer_motion2 = require("framer-motion");
|
|
41123
|
-
var
|
|
41451
|
+
var import_jsx_runtime164 = require("react/jsx-runtime");
|
|
41124
41452
|
function truncateName(name, maxLength) {
|
|
41125
41453
|
if (!name || name.length <= maxLength) return name || "";
|
|
41126
41454
|
return name.substring(0, maxLength) + "...";
|
|
41127
41455
|
}
|
|
41128
41456
|
function ProgressBar({ overallPercentage }) {
|
|
41129
|
-
const [showTooltip, setShowTooltip] = (0,
|
|
41130
|
-
(0,
|
|
41457
|
+
const [showTooltip, setShowTooltip] = (0, import_react82.useState)(true);
|
|
41458
|
+
(0, import_react82.useEffect)(() => {
|
|
41131
41459
|
if (overallPercentage && overallPercentage >= 100) {
|
|
41132
41460
|
setShowTooltip(false);
|
|
41133
41461
|
}
|
|
41134
41462
|
}, [overallPercentage]);
|
|
41135
|
-
return /* @__PURE__ */ (0,
|
|
41463
|
+
return /* @__PURE__ */ (0, import_jsx_runtime164.jsx)("div", { className: "relative w-full", children: /* @__PURE__ */ (0, import_jsx_runtime164.jsx)("div", { className: "md:w-full dark:bg-purple500 bg-gray-200 rounded-full h-[6px]", children: /* @__PURE__ */ (0, import_jsx_runtime164.jsx)(
|
|
41136
41464
|
import_framer_motion2.motion.div,
|
|
41137
41465
|
{
|
|
41138
41466
|
className: "bg-purple100 h-[6px] rounded-full relative",
|
|
41139
41467
|
initial: { width: 0 },
|
|
41140
41468
|
animate: { width: `${overallPercentage}%` },
|
|
41141
41469
|
transition: { duration: 0.5, ease: "easeOut" },
|
|
41142
|
-
children: /* @__PURE__ */ (0,
|
|
41470
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime164.jsx)(import_framer_motion2.AnimatePresence, { children: showTooltip && /* @__PURE__ */ (0, import_jsx_runtime164.jsxs)(
|
|
41143
41471
|
import_framer_motion2.motion.div,
|
|
41144
41472
|
{
|
|
41145
41473
|
initial: { opacity: 0, y: 5 },
|
|
@@ -41149,9 +41477,9 @@ function ProgressBar({ overallPercentage }) {
|
|
|
41149
41477
|
children: [
|
|
41150
41478
|
overallPercentage ? Math.round(overallPercentage) : 0,
|
|
41151
41479
|
"%",
|
|
41152
|
-
/* @__PURE__ */ (0,
|
|
41153
|
-
/* @__PURE__ */ (0,
|
|
41154
|
-
/* @__PURE__ */ (0,
|
|
41480
|
+
/* @__PURE__ */ (0, import_jsx_runtime164.jsxs)("div", { className: "absolute left-1/2 top-full -translate-x-1/2", children: [
|
|
41481
|
+
/* @__PURE__ */ (0, import_jsx_runtime164.jsx)("div", { className: "w-0 h-0 border-l-[6px] border-r-[6px] border-t-[6px] border-transparent border-t-gray300" }),
|
|
41482
|
+
/* @__PURE__ */ (0, import_jsx_runtime164.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" })
|
|
41155
41483
|
] })
|
|
41156
41484
|
]
|
|
41157
41485
|
}
|
|
@@ -41163,38 +41491,38 @@ function CreatorProgressBar({
|
|
|
41163
41491
|
statusDetails,
|
|
41164
41492
|
timeRemaining: _timeRemaining
|
|
41165
41493
|
}) {
|
|
41166
|
-
return /* @__PURE__ */ (0,
|
|
41167
|
-
/* @__PURE__ */ (0,
|
|
41168
|
-
/* @__PURE__ */ (0,
|
|
41494
|
+
return /* @__PURE__ */ (0, import_jsx_runtime164.jsxs)("div", { children: [
|
|
41495
|
+
/* @__PURE__ */ (0, import_jsx_runtime164.jsx)(ProgressBar, { overallPercentage: statusDetails?.overall_percentage }),
|
|
41496
|
+
/* @__PURE__ */ (0, import_jsx_runtime164.jsx)("div", { className: "dark:text-gray400 text-gray-500 text-xs mt-2", children: (statusDetails?.overall_percentage ?? 0) < 100 && /* @__PURE__ */ (0, import_jsx_runtime164.jsx)("span", { children: statusDetails?.thinking_message ? truncateName(statusDetails.thinking_message, 200) : "Processing..." }) })
|
|
41169
41497
|
] });
|
|
41170
41498
|
}
|
|
41171
41499
|
|
|
41172
41500
|
// src/molecules/creator-discovery/CreatorWidget/CreatorWidgetSkeleton.tsx
|
|
41173
|
-
var
|
|
41501
|
+
var import_jsx_runtime165 = require("react/jsx-runtime");
|
|
41174
41502
|
function CreatorWidgetSkeleton() {
|
|
41175
|
-
return /* @__PURE__ */ (0,
|
|
41176
|
-
/* @__PURE__ */ (0,
|
|
41177
|
-
/* @__PURE__ */ (0,
|
|
41178
|
-
/* @__PURE__ */ (0,
|
|
41503
|
+
return /* @__PURE__ */ (0, import_jsx_runtime165.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_runtime165.jsxs)("div", { className: "p-4 md:p-6 space-y-4", children: [
|
|
41504
|
+
/* @__PURE__ */ (0, import_jsx_runtime165.jsx)("div", { className: "flex flex-col md:flex-row md:items-center md:justify-between gap-4 relative", children: /* @__PURE__ */ (0, import_jsx_runtime165.jsxs)("div", { className: "flex flex-col gap-2 md:gap-4", children: [
|
|
41505
|
+
/* @__PURE__ */ (0, import_jsx_runtime165.jsx)("div", { className: "w-40 h-6 bg-purple200 rounded-md animate-pulse" }),
|
|
41506
|
+
/* @__PURE__ */ (0, import_jsx_runtime165.jsx)("div", { className: "w-64 h-7 bg-gray200 dark:bg-gray300 rounded animate-pulse" })
|
|
41179
41507
|
] }) }),
|
|
41180
|
-
/* @__PURE__ */ (0,
|
|
41181
|
-
/* @__PURE__ */ (0,
|
|
41182
|
-
/* @__PURE__ */ (0,
|
|
41508
|
+
/* @__PURE__ */ (0, import_jsx_runtime165.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: [
|
|
41509
|
+
/* @__PURE__ */ (0, import_jsx_runtime165.jsxs)("div", { className: "flex flex-col gap-4 md:gap-6 min-w-0", children: [
|
|
41510
|
+
/* @__PURE__ */ (0, import_jsx_runtime165.jsx)("div", { className: "flex -space-x-2", children: Array.from({ length: 10 }).map((_, idx) => /* @__PURE__ */ (0, import_jsx_runtime165.jsx)(
|
|
41183
41511
|
"div",
|
|
41184
41512
|
{
|
|
41185
41513
|
className: "w-8 h-8 md:w-10 md:h-10 rounded-full border-2 border-gray300 bg-gray200 animate-pulse"
|
|
41186
41514
|
},
|
|
41187
41515
|
idx
|
|
41188
41516
|
)) }),
|
|
41189
|
-
/* @__PURE__ */ (0,
|
|
41517
|
+
/* @__PURE__ */ (0, import_jsx_runtime165.jsx)("div", { className: "space-y-2", children: /* @__PURE__ */ (0, import_jsx_runtime165.jsx)("div", { className: "w-full max-w-xs bg-gray200 rounded-full h-2 animate-pulse" }) })
|
|
41190
41518
|
] }),
|
|
41191
|
-
/* @__PURE__ */ (0,
|
|
41519
|
+
/* @__PURE__ */ (0, import_jsx_runtime165.jsx)("div", { className: "px-6 py-2 bg-gray200 rounded-[30px] animate-pulse h-10 w-48" })
|
|
41192
41520
|
] })
|
|
41193
41521
|
] }) });
|
|
41194
41522
|
}
|
|
41195
41523
|
|
|
41196
41524
|
// src/molecules/creator-discovery/CreatorWidget/CreatorCompactView.tsx
|
|
41197
|
-
var
|
|
41525
|
+
var import_jsx_runtime166 = require("react/jsx-runtime");
|
|
41198
41526
|
function CreatorCompactView({
|
|
41199
41527
|
versions,
|
|
41200
41528
|
selectedVersion,
|
|
@@ -41211,16 +41539,16 @@ function CreatorCompactView({
|
|
|
41211
41539
|
const isComplete = versionStatus === "completed" || versionStatus === "complete";
|
|
41212
41540
|
const statusTitle = isComplete ? "Creator Search Complete" : versionStatus === "failed" ? "Creator Search Failed" : "Creator Search Processing";
|
|
41213
41541
|
if (isLoading) {
|
|
41214
|
-
return /* @__PURE__ */ (0,
|
|
41542
|
+
return /* @__PURE__ */ (0, import_jsx_runtime166.jsx)(CreatorWidgetSkeleton, {});
|
|
41215
41543
|
}
|
|
41216
|
-
return /* @__PURE__ */ (0,
|
|
41217
|
-
/* @__PURE__ */ (0,
|
|
41218
|
-
/* @__PURE__ */ (0,
|
|
41219
|
-
/* @__PURE__ */ (0,
|
|
41220
|
-
/* @__PURE__ */ (0,
|
|
41544
|
+
return /* @__PURE__ */ (0, import_jsx_runtime166.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_runtime166.jsxs)("div", { className: "p-4 md:p-6 space-y-4", children: [
|
|
41545
|
+
/* @__PURE__ */ (0, import_jsx_runtime166.jsxs)("div", { className: "flex flex-col md:flex-row md:items-center md:justify-between gap-4 relative", children: [
|
|
41546
|
+
/* @__PURE__ */ (0, import_jsx_runtime166.jsxs)("div", { className: "flex flex-col gap-2 md:gap-4", children: [
|
|
41547
|
+
/* @__PURE__ */ (0, import_jsx_runtime166.jsx)("h4", { className: "w-fit rounded-md bg-purple200 px-2 py-[4px] text-xs font-medium text-purpleText", children: "VERIFIED CREATORS LIST" }),
|
|
41548
|
+
/* @__PURE__ */ (0, import_jsx_runtime166.jsx)("h3", { className: "text-gray900 md:text-lg font-bold", children: statusTitle })
|
|
41221
41549
|
] }),
|
|
41222
|
-
versions.length > 1 && /* @__PURE__ */ (0,
|
|
41223
|
-
/* @__PURE__ */ (0,
|
|
41550
|
+
versions.length > 1 && /* @__PURE__ */ (0, import_jsx_runtime166.jsx)("div", { className: "relative md:self-start", children: /* @__PURE__ */ (0, import_jsx_runtime166.jsxs)(DropdownMenu, { children: [
|
|
41551
|
+
/* @__PURE__ */ (0, import_jsx_runtime166.jsxs)(
|
|
41224
41552
|
DropdownMenuTrigger,
|
|
41225
41553
|
{
|
|
41226
41554
|
disabled: !isComplete,
|
|
@@ -41228,11 +41556,11 @@ function CreatorCompactView({
|
|
|
41228
41556
|
children: [
|
|
41229
41557
|
"Version ",
|
|
41230
41558
|
selectedVersion ?? "-",
|
|
41231
|
-
/* @__PURE__ */ (0,
|
|
41559
|
+
/* @__PURE__ */ (0, import_jsx_runtime166.jsx)(ChevronDown, { className: "w-3 h-3 md:w-4 md:h-4 transition-transform" })
|
|
41232
41560
|
]
|
|
41233
41561
|
}
|
|
41234
41562
|
),
|
|
41235
|
-
/* @__PURE__ */ (0,
|
|
41563
|
+
/* @__PURE__ */ (0, import_jsx_runtime166.jsx)(DropdownMenuContent, { className: "bg-gray25 border-2 border-gray400 min-w-[120px] max-h-[150px] overflow-y-auto", children: versions.map((v) => /* @__PURE__ */ (0, import_jsx_runtime166.jsxs)(
|
|
41236
41564
|
DropdownMenuItem,
|
|
41237
41565
|
{
|
|
41238
41566
|
onClick: () => onVersionSelect(v),
|
|
@@ -41246,12 +41574,12 @@ function CreatorCompactView({
|
|
|
41246
41574
|
)) })
|
|
41247
41575
|
] }) })
|
|
41248
41576
|
] }),
|
|
41249
|
-
/* @__PURE__ */ (0,
|
|
41250
|
-
/* @__PURE__ */ (0,
|
|
41251
|
-
/* @__PURE__ */ (0,
|
|
41252
|
-
] }) : /* @__PURE__ */ (0,
|
|
41253
|
-
/* @__PURE__ */ (0,
|
|
41254
|
-
/* @__PURE__ */ (0,
|
|
41577
|
+
/* @__PURE__ */ (0, import_jsx_runtime166.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_runtime166.jsxs)("div", { className: "flex flex-col items-center justify-center w-full py-6 md:py-8 text-center text-red-500", children: [
|
|
41578
|
+
/* @__PURE__ */ (0, import_jsx_runtime166.jsx)("p", { className: "text-base md:text-lg font-semibold mb-2", children: "Creator Search Failed" }),
|
|
41579
|
+
/* @__PURE__ */ (0, import_jsx_runtime166.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." })
|
|
41580
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime166.jsxs)(import_jsx_runtime166.Fragment, { children: [
|
|
41581
|
+
/* @__PURE__ */ (0, import_jsx_runtime166.jsxs)("div", { className: "flex flex-col gap-4 md:gap-6 min-w-0", children: [
|
|
41582
|
+
/* @__PURE__ */ (0, import_jsx_runtime166.jsx)(
|
|
41255
41583
|
CreatorImageList,
|
|
41256
41584
|
{
|
|
41257
41585
|
creatorImages,
|
|
@@ -41260,7 +41588,7 @@ function CreatorCompactView({
|
|
|
41260
41588
|
initialCreatorsPercentage: statusDetails?.social_fetch_percentage
|
|
41261
41589
|
}
|
|
41262
41590
|
),
|
|
41263
|
-
/* @__PURE__ */ (0,
|
|
41591
|
+
/* @__PURE__ */ (0, import_jsx_runtime166.jsx)(
|
|
41264
41592
|
CreatorProgressBar,
|
|
41265
41593
|
{
|
|
41266
41594
|
statusDetails,
|
|
@@ -41268,7 +41596,7 @@ function CreatorCompactView({
|
|
|
41268
41596
|
}
|
|
41269
41597
|
)
|
|
41270
41598
|
] }),
|
|
41271
|
-
/* @__PURE__ */ (0,
|
|
41599
|
+
/* @__PURE__ */ (0, import_jsx_runtime166.jsxs)(
|
|
41272
41600
|
"button",
|
|
41273
41601
|
{
|
|
41274
41602
|
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"}`,
|
|
@@ -41278,7 +41606,7 @@ function CreatorCompactView({
|
|
|
41278
41606
|
"View ",
|
|
41279
41607
|
creatorLength,
|
|
41280
41608
|
" Verified Creators",
|
|
41281
|
-
/* @__PURE__ */ (0,
|
|
41609
|
+
/* @__PURE__ */ (0, import_jsx_runtime166.jsx)(Triangle, { className: "w-3 h-3 md:w-4 md:h-4 rotate-90 font-bold" })
|
|
41282
41610
|
]
|
|
41283
41611
|
}
|
|
41284
41612
|
)
|
|
@@ -41287,7 +41615,7 @@ function CreatorCompactView({
|
|
|
41287
41615
|
}
|
|
41288
41616
|
|
|
41289
41617
|
// src/molecules/creator-discovery/CreatorWidget/CreatorExpandedPanel.tsx
|
|
41290
|
-
var
|
|
41618
|
+
var import_react86 = require("react");
|
|
41291
41619
|
var import_react_dom2 = __toESM(require("react-dom"), 1);
|
|
41292
41620
|
var import_framer_motion5 = require("framer-motion");
|
|
41293
41621
|
|
|
@@ -41569,7 +41897,7 @@ var normalizeToIso2 = (input) => {
|
|
|
41569
41897
|
};
|
|
41570
41898
|
|
|
41571
41899
|
// src/molecules/creator-discovery/CreatorWidget/EngagedAudienceDemographics.tsx
|
|
41572
|
-
var
|
|
41900
|
+
var import_jsx_runtime167 = require("react/jsx-runtime");
|
|
41573
41901
|
function EngagedAudienceDemographics({
|
|
41574
41902
|
audienceDemographics
|
|
41575
41903
|
}) {
|
|
@@ -41587,31 +41915,31 @@ function EngagedAudienceDemographics({
|
|
|
41587
41915
|
if (hasAges) columns.push("1fr");
|
|
41588
41916
|
if (hasGenders) columns.push("0.4fr");
|
|
41589
41917
|
const gridTemplate = columns.join(" ");
|
|
41590
|
-
return /* @__PURE__ */ (0,
|
|
41591
|
-
/* @__PURE__ */ (0,
|
|
41592
|
-
/* @__PURE__ */ (0,
|
|
41918
|
+
return /* @__PURE__ */ (0, import_jsx_runtime167.jsxs)("div", { className: "flex flex-col gap-4", children: [
|
|
41919
|
+
/* @__PURE__ */ (0, import_jsx_runtime167.jsx)("div", { className: "text-purpleText text-xs", children: /* @__PURE__ */ (0, import_jsx_runtime167.jsx)("span", { className: "rounded-md bg-purple200 px-2 py-[4px] font-sans", children: "ENGAGED AUDIENCE" }) }),
|
|
41920
|
+
/* @__PURE__ */ (0, import_jsx_runtime167.jsxs)(
|
|
41593
41921
|
"div",
|
|
41594
41922
|
{
|
|
41595
41923
|
className: "flex flex-col sm:col-span-3 sm:grid gap-6",
|
|
41596
41924
|
style: { gridTemplateColumns: gridTemplate },
|
|
41597
41925
|
children: [
|
|
41598
|
-
hasCities && /* @__PURE__ */ (0,
|
|
41599
|
-
/* @__PURE__ */ (0,
|
|
41600
|
-
/* @__PURE__ */ (0,
|
|
41601
|
-
([code, value]) => /* @__PURE__ */ (0,
|
|
41926
|
+
hasCities && /* @__PURE__ */ (0, import_jsx_runtime167.jsxs)("div", { children: [
|
|
41927
|
+
/* @__PURE__ */ (0, import_jsx_runtime167.jsx)("h4", { className: "text-xs text-gray700 mb-3", children: "Cities" }),
|
|
41928
|
+
/* @__PURE__ */ (0, import_jsx_runtime167.jsx)("div", { className: "flex flex-col gap-3", children: Object.entries(audienceDemographics?.cities || {}).map(
|
|
41929
|
+
([code, value]) => /* @__PURE__ */ (0, import_jsx_runtime167.jsxs)(
|
|
41602
41930
|
"div",
|
|
41603
41931
|
{
|
|
41604
41932
|
className: "flex items-center gap-3 text-sm text-gray700",
|
|
41605
41933
|
children: [
|
|
41606
|
-
/* @__PURE__ */ (0,
|
|
41607
|
-
/* @__PURE__ */ (0,
|
|
41934
|
+
/* @__PURE__ */ (0, import_jsx_runtime167.jsx)("span", { className: "w-[90px]", children: /* @__PURE__ */ (0, import_jsx_runtime167.jsx)("div", { className: "flex gap-1 items-center", children: /* @__PURE__ */ (0, import_jsx_runtime167.jsx)("span", { children: code.split(",")[0] }) }) }),
|
|
41935
|
+
/* @__PURE__ */ (0, import_jsx_runtime167.jsx)("div", { className: "flex-1 bg-gray200 h-[6px] rounded-full overflow-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime167.jsx)(
|
|
41608
41936
|
"div",
|
|
41609
41937
|
{
|
|
41610
41938
|
className: "h-[6px] bg-purple100 rounded-full",
|
|
41611
41939
|
style: { width: `${value}%` }
|
|
41612
41940
|
}
|
|
41613
41941
|
) }),
|
|
41614
|
-
/* @__PURE__ */ (0,
|
|
41942
|
+
/* @__PURE__ */ (0, import_jsx_runtime167.jsxs)("span", { className: "w-10 text-right font-medium", children: [
|
|
41615
41943
|
value,
|
|
41616
41944
|
"%"
|
|
41617
41945
|
] })
|
|
@@ -41621,29 +41949,29 @@ function EngagedAudienceDemographics({
|
|
|
41621
41949
|
)
|
|
41622
41950
|
) })
|
|
41623
41951
|
] }),
|
|
41624
|
-
hasCountries && /* @__PURE__ */ (0,
|
|
41625
|
-
/* @__PURE__ */ (0,
|
|
41626
|
-
/* @__PURE__ */ (0,
|
|
41952
|
+
hasCountries && /* @__PURE__ */ (0, import_jsx_runtime167.jsxs)("div", { children: [
|
|
41953
|
+
/* @__PURE__ */ (0, import_jsx_runtime167.jsx)("h4", { className: "text-xs text-gray700 mb-3", children: "Countries" }),
|
|
41954
|
+
/* @__PURE__ */ (0, import_jsx_runtime167.jsx)("div", { className: "flex flex-col gap-3", children: Object.entries(audienceDemographics?.countries || {}).map(
|
|
41627
41955
|
([code, value]) => {
|
|
41628
41956
|
const iso2 = normalizeToIso2(code);
|
|
41629
41957
|
const meta = codeToMeta[iso2];
|
|
41630
|
-
return /* @__PURE__ */ (0,
|
|
41958
|
+
return /* @__PURE__ */ (0, import_jsx_runtime167.jsxs)(
|
|
41631
41959
|
"div",
|
|
41632
41960
|
{
|
|
41633
41961
|
className: "flex items-center gap-3 text-sm text-gray700",
|
|
41634
41962
|
children: [
|
|
41635
|
-
/* @__PURE__ */ (0,
|
|
41636
|
-
/* @__PURE__ */ (0,
|
|
41637
|
-
/* @__PURE__ */ (0,
|
|
41963
|
+
/* @__PURE__ */ (0, import_jsx_runtime167.jsx)("span", { className: "w-10", children: /* @__PURE__ */ (0, import_jsx_runtime167.jsxs)("div", { className: "flex gap-1 items-center", children: [
|
|
41964
|
+
/* @__PURE__ */ (0, import_jsx_runtime167.jsx)("span", { className: "text-base", children: meta?.flag }),
|
|
41965
|
+
/* @__PURE__ */ (0, import_jsx_runtime167.jsx)("span", { children: code })
|
|
41638
41966
|
] }) }),
|
|
41639
|
-
/* @__PURE__ */ (0,
|
|
41967
|
+
/* @__PURE__ */ (0, import_jsx_runtime167.jsx)("div", { className: "flex-1 bg-gray200 h-[6px] rounded-full overflow-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime167.jsx)(
|
|
41640
41968
|
"div",
|
|
41641
41969
|
{
|
|
41642
41970
|
className: "h-[6px] bg-purple100 rounded-full",
|
|
41643
41971
|
style: { width: `${value}%` }
|
|
41644
41972
|
}
|
|
41645
41973
|
) }),
|
|
41646
|
-
/* @__PURE__ */ (0,
|
|
41974
|
+
/* @__PURE__ */ (0, import_jsx_runtime167.jsxs)("span", { className: "w-10 text-right font-medium", children: [
|
|
41647
41975
|
value,
|
|
41648
41976
|
"%"
|
|
41649
41977
|
] })
|
|
@@ -41654,23 +41982,23 @@ function EngagedAudienceDemographics({
|
|
|
41654
41982
|
}
|
|
41655
41983
|
) })
|
|
41656
41984
|
] }),
|
|
41657
|
-
hasAges && /* @__PURE__ */ (0,
|
|
41658
|
-
/* @__PURE__ */ (0,
|
|
41659
|
-
/* @__PURE__ */ (0,
|
|
41660
|
-
([ageRange, value]) => /* @__PURE__ */ (0,
|
|
41985
|
+
hasAges && /* @__PURE__ */ (0, import_jsx_runtime167.jsxs)("div", { children: [
|
|
41986
|
+
/* @__PURE__ */ (0, import_jsx_runtime167.jsx)("h4", { className: "text-xs text-gray700 mb-3", children: "Ages" }),
|
|
41987
|
+
/* @__PURE__ */ (0, import_jsx_runtime167.jsx)("div", { className: "flex flex-col gap-3", children: Object.entries(audienceDemographics?.ages || {}).map(
|
|
41988
|
+
([ageRange, value]) => /* @__PURE__ */ (0, import_jsx_runtime167.jsxs)(
|
|
41661
41989
|
"div",
|
|
41662
41990
|
{
|
|
41663
41991
|
className: "flex items-center gap-3 text-sm text-gray700",
|
|
41664
41992
|
children: [
|
|
41665
|
-
/* @__PURE__ */ (0,
|
|
41666
|
-
/* @__PURE__ */ (0,
|
|
41993
|
+
/* @__PURE__ */ (0, import_jsx_runtime167.jsx)("span", { className: "w-12", children: ageRange }),
|
|
41994
|
+
/* @__PURE__ */ (0, import_jsx_runtime167.jsx)("div", { className: "flex-1 bg-gray200 h-[6px] rounded-full overflow-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime167.jsx)(
|
|
41667
41995
|
"div",
|
|
41668
41996
|
{
|
|
41669
41997
|
className: "h-[6px] bg-purple100 rounded-full",
|
|
41670
41998
|
style: { width: `${value}%` }
|
|
41671
41999
|
}
|
|
41672
42000
|
) }),
|
|
41673
|
-
/* @__PURE__ */ (0,
|
|
42001
|
+
/* @__PURE__ */ (0, import_jsx_runtime167.jsxs)("span", { className: "w-10 text-right font-medium", children: [
|
|
41674
42002
|
value,
|
|
41675
42003
|
"%"
|
|
41676
42004
|
] })
|
|
@@ -41680,20 +42008,20 @@ function EngagedAudienceDemographics({
|
|
|
41680
42008
|
)
|
|
41681
42009
|
) })
|
|
41682
42010
|
] }),
|
|
41683
|
-
hasGenders && /* @__PURE__ */ (0,
|
|
41684
|
-
([gender, value]) => /* @__PURE__ */ (0,
|
|
42011
|
+
hasGenders && /* @__PURE__ */ (0, import_jsx_runtime167.jsx)("div", { className: "flex flex-col justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime167.jsx)("div", { className: "flex sm:flex-col gap-3", children: Object.entries(audienceDemographics?.genders || {}).map(
|
|
42012
|
+
([gender, value]) => /* @__PURE__ */ (0, import_jsx_runtime167.jsxs)(
|
|
41685
42013
|
"div",
|
|
41686
42014
|
{
|
|
41687
42015
|
className: "flex flex-col justify-center text-sm",
|
|
41688
42016
|
children: [
|
|
41689
|
-
/* @__PURE__ */ (0,
|
|
41690
|
-
gender === "female" ? /* @__PURE__ */ (0,
|
|
41691
|
-
/* @__PURE__ */ (0,
|
|
42017
|
+
/* @__PURE__ */ (0, import_jsx_runtime167.jsxs)("div", { className: "flex items-center gap-1 mb-1", children: [
|
|
42018
|
+
gender === "female" ? /* @__PURE__ */ (0, import_jsx_runtime167.jsx)(Venus, { className: "text-red-500", strokeWidth: 3 }) : /* @__PURE__ */ (0, import_jsx_runtime167.jsx)(Mars, { className: "text-blue-500", strokeWidth: 3 }),
|
|
42019
|
+
/* @__PURE__ */ (0, import_jsx_runtime167.jsxs)("span", { className: "capitalize text-gray800 text-xl", children: [
|
|
41692
42020
|
value,
|
|
41693
42021
|
"%"
|
|
41694
42022
|
] })
|
|
41695
42023
|
] }),
|
|
41696
|
-
/* @__PURE__ */ (0,
|
|
42024
|
+
/* @__PURE__ */ (0, import_jsx_runtime167.jsx)("span", { className: "text-lg text-gray700", children: gender.charAt(0).toUpperCase() + gender.slice(1) })
|
|
41697
42025
|
]
|
|
41698
42026
|
},
|
|
41699
42027
|
gender
|
|
@@ -41706,40 +42034,40 @@ function EngagedAudienceDemographics({
|
|
|
41706
42034
|
}
|
|
41707
42035
|
|
|
41708
42036
|
// src/molecules/creator-discovery/CreatorWidget/PlatformIcons.tsx
|
|
41709
|
-
var
|
|
42037
|
+
var import_jsx_runtime168 = require("react/jsx-runtime");
|
|
41710
42038
|
function InstagramIcon({ className }) {
|
|
41711
|
-
return /* @__PURE__ */ (0,
|
|
42039
|
+
return /* @__PURE__ */ (0, import_jsx_runtime168.jsx)(
|
|
41712
42040
|
"svg",
|
|
41713
42041
|
{
|
|
41714
42042
|
className,
|
|
41715
42043
|
viewBox: "0 0 24 24",
|
|
41716
42044
|
fill: "currentColor",
|
|
41717
42045
|
xmlns: "http://www.w3.org/2000/svg",
|
|
41718
|
-
children: /* @__PURE__ */ (0,
|
|
42046
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime168.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" })
|
|
41719
42047
|
}
|
|
41720
42048
|
);
|
|
41721
42049
|
}
|
|
41722
42050
|
function YouTubeIcon({ className }) {
|
|
41723
|
-
return /* @__PURE__ */ (0,
|
|
42051
|
+
return /* @__PURE__ */ (0, import_jsx_runtime168.jsx)(
|
|
41724
42052
|
"svg",
|
|
41725
42053
|
{
|
|
41726
42054
|
className,
|
|
41727
42055
|
viewBox: "0 0 24 24",
|
|
41728
42056
|
fill: "currentColor",
|
|
41729
42057
|
xmlns: "http://www.w3.org/2000/svg",
|
|
41730
|
-
children: /* @__PURE__ */ (0,
|
|
42058
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime168.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" })
|
|
41731
42059
|
}
|
|
41732
42060
|
);
|
|
41733
42061
|
}
|
|
41734
42062
|
function TikTokIcon3({ className }) {
|
|
41735
|
-
return /* @__PURE__ */ (0,
|
|
42063
|
+
return /* @__PURE__ */ (0, import_jsx_runtime168.jsx)(
|
|
41736
42064
|
"svg",
|
|
41737
42065
|
{
|
|
41738
42066
|
className,
|
|
41739
42067
|
viewBox: "0 0 24 24",
|
|
41740
42068
|
fill: "currentColor",
|
|
41741
42069
|
xmlns: "http://www.w3.org/2000/svg",
|
|
41742
|
-
children: /* @__PURE__ */ (0,
|
|
42070
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime168.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" })
|
|
41743
42071
|
}
|
|
41744
42072
|
);
|
|
41745
42073
|
}
|
|
@@ -41773,8 +42101,8 @@ function getPlatformIconColor(platform) {
|
|
|
41773
42101
|
}
|
|
41774
42102
|
|
|
41775
42103
|
// src/molecules/creator-discovery/CreatorWidget/PostCard.tsx
|
|
41776
|
-
var
|
|
41777
|
-
var
|
|
42104
|
+
var import_react83 = require("react");
|
|
42105
|
+
var import_jsx_runtime169 = require("react/jsx-runtime");
|
|
41778
42106
|
var formatFollowerCount = (count) => {
|
|
41779
42107
|
if (count >= 1e6) {
|
|
41780
42108
|
const millions = count / 1e6;
|
|
@@ -41787,15 +42115,15 @@ var formatFollowerCount = (count) => {
|
|
|
41787
42115
|
return Math.floor(count).toString();
|
|
41788
42116
|
};
|
|
41789
42117
|
function PostCard({ post, platformUsername }) {
|
|
41790
|
-
const [expanded, setExpanded] = (0,
|
|
41791
|
-
const [errored, setErrored] = (0,
|
|
42118
|
+
const [expanded, setExpanded] = (0, import_react83.useState)(false);
|
|
42119
|
+
const [errored, setErrored] = (0, import_react83.useState)(false);
|
|
41792
42120
|
const thumbnail = post.thumbnail_url || post.thumbnail || post.image || "";
|
|
41793
42121
|
const likes = post.engagement?.likes ?? post.likes ?? null;
|
|
41794
42122
|
const comments = post.engagement?.comments ?? post.comments ?? null;
|
|
41795
42123
|
const views = post.engagement?.views ?? post.engagement?.plays ?? post.views ?? post.plays ?? null;
|
|
41796
42124
|
const impressions = post.impressions ?? null;
|
|
41797
42125
|
const reach = post.reach ?? null;
|
|
41798
|
-
return /* @__PURE__ */ (0,
|
|
42126
|
+
return /* @__PURE__ */ (0, import_jsx_runtime169.jsxs)(
|
|
41799
42127
|
"div",
|
|
41800
42128
|
{
|
|
41801
42129
|
className: "rounded-xl overflow-hidden border border-gray500 bg-transparent shadow-sm cursor-pointer",
|
|
@@ -41804,7 +42132,7 @@ function PostCard({ post, platformUsername }) {
|
|
|
41804
42132
|
window.open(post.url, "_blank", "noopener,noreferrer");
|
|
41805
42133
|
},
|
|
41806
42134
|
children: [
|
|
41807
|
-
/* @__PURE__ */ (0,
|
|
42135
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.jsx)("div", { className: "w-full aspect-square relative bg-gray25", children: thumbnail && !errored ? /* @__PURE__ */ (0, import_jsx_runtime169.jsx)(
|
|
41808
42136
|
"img",
|
|
41809
42137
|
{
|
|
41810
42138
|
src: thumbnail,
|
|
@@ -41812,55 +42140,55 @@ function PostCard({ post, platformUsername }) {
|
|
|
41812
42140
|
className: "w-full h-full object-cover",
|
|
41813
42141
|
onError: () => setErrored(true)
|
|
41814
42142
|
}
|
|
41815
|
-
) : /* @__PURE__ */ (0,
|
|
41816
|
-
/* @__PURE__ */ (0,
|
|
41817
|
-
/* @__PURE__ */ (0,
|
|
41818
|
-
likes !== null && /* @__PURE__ */ (0,
|
|
41819
|
-
/* @__PURE__ */ (0,
|
|
42143
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime169.jsx)("div", { className: "w-full h-full flex items-center justify-center text-gray500 text-sm", children: "No preview" }) }),
|
|
42144
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.jsxs)("div", { className: "p-3", children: [
|
|
42145
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.jsxs)("div", { className: "flex items-center gap-4 text-sm text-gray600 mb-2", children: [
|
|
42146
|
+
likes !== null && /* @__PURE__ */ (0, import_jsx_runtime169.jsxs)("div", { className: "flex items-center gap-1", children: [
|
|
42147
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.jsx)("span", { children: formatFollowerCount(likes) }),
|
|
41820
42148
|
" ",
|
|
41821
|
-
/* @__PURE__ */ (0,
|
|
42149
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.jsx)(Heart, { size: 14 })
|
|
41822
42150
|
] }),
|
|
41823
|
-
comments !== null && /* @__PURE__ */ (0,
|
|
41824
|
-
/* @__PURE__ */ (0,
|
|
42151
|
+
comments !== null && /* @__PURE__ */ (0, import_jsx_runtime169.jsxs)("div", { className: "flex items-center gap-1", children: [
|
|
42152
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.jsx)("span", { children: formatFollowerCount(comments) }),
|
|
41825
42153
|
" ",
|
|
41826
|
-
/* @__PURE__ */ (0,
|
|
42154
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.jsx)(MessageCircle, { size: 14 })
|
|
41827
42155
|
] }),
|
|
41828
|
-
views !== null && /* @__PURE__ */ (0,
|
|
41829
|
-
/* @__PURE__ */ (0,
|
|
42156
|
+
views !== null && /* @__PURE__ */ (0, import_jsx_runtime169.jsxs)("div", { className: "flex items-center gap-1", children: [
|
|
42157
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.jsx)("span", { children: formatFollowerCount(views) }),
|
|
41830
42158
|
" ",
|
|
41831
|
-
/* @__PURE__ */ (0,
|
|
42159
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.jsx)(Eye, { size: 14 })
|
|
41832
42160
|
] })
|
|
41833
42161
|
] }),
|
|
41834
|
-
/* @__PURE__ */ (0,
|
|
41835
|
-
impressions !== null && /* @__PURE__ */ (0,
|
|
41836
|
-
/* @__PURE__ */ (0,
|
|
42162
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.jsxs)("div", { className: "flex gap-4 text-sm text-gray800 mb-2", children: [
|
|
42163
|
+
impressions !== null && /* @__PURE__ */ (0, import_jsx_runtime169.jsxs)("div", { children: [
|
|
42164
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.jsx)("span", { className: "text-gray500 font-bold", children: formatFollowerCount(impressions) }),
|
|
41837
42165
|
" ",
|
|
41838
42166
|
"est.Impressions"
|
|
41839
42167
|
] }),
|
|
41840
|
-
reach !== null && /* @__PURE__ */ (0,
|
|
41841
|
-
/* @__PURE__ */ (0,
|
|
42168
|
+
reach !== null && /* @__PURE__ */ (0, import_jsx_runtime169.jsxs)("div", { children: [
|
|
42169
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.jsx)("span", { className: "text-gray500 font-bold", children: formatFollowerCount(reach) }),
|
|
41842
42170
|
" ",
|
|
41843
42171
|
"est.Reach"
|
|
41844
42172
|
] })
|
|
41845
42173
|
] }),
|
|
41846
|
-
/* @__PURE__ */ (0,
|
|
41847
|
-
platformUsername && /* @__PURE__ */ (0,
|
|
42174
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.jsxs)("div", { className: "text-sm mb-1", children: [
|
|
42175
|
+
platformUsername && /* @__PURE__ */ (0, import_jsx_runtime169.jsxs)("div", { className: "text-md font-semibold text-gray500", children: [
|
|
41848
42176
|
"@",
|
|
41849
42177
|
platformUsername
|
|
41850
42178
|
] }),
|
|
41851
42179
|
["instagram", "tiktok"].includes(
|
|
41852
42180
|
post.platform?.toLowerCase() || ""
|
|
41853
|
-
) ? /* @__PURE__ */ (0,
|
|
42181
|
+
) ? /* @__PURE__ */ (0, import_jsx_runtime169.jsx)(import_jsx_runtime169.Fragment, { children: (() => {
|
|
41854
42182
|
const text = post.title || post.description || "";
|
|
41855
|
-
return /* @__PURE__ */ (0,
|
|
41856
|
-
/* @__PURE__ */ (0,
|
|
42183
|
+
return /* @__PURE__ */ (0, import_jsx_runtime169.jsxs)(import_jsx_runtime169.Fragment, { children: [
|
|
42184
|
+
/* @__PURE__ */ (0, import_jsx_runtime169.jsx)(
|
|
41857
42185
|
"div",
|
|
41858
42186
|
{
|
|
41859
42187
|
className: `text-gray900 font-light mt-2 text-sm ${!expanded ? "line-clamp-3" : ""}`,
|
|
41860
42188
|
children: text
|
|
41861
42189
|
}
|
|
41862
42190
|
),
|
|
41863
|
-
text.length > 100 && /* @__PURE__ */ (0,
|
|
42191
|
+
text.length > 100 && /* @__PURE__ */ (0, import_jsx_runtime169.jsx)(
|
|
41864
42192
|
"button",
|
|
41865
42193
|
{
|
|
41866
42194
|
onClick: (e) => {
|
|
@@ -41872,9 +42200,9 @@ function PostCard({ post, platformUsername }) {
|
|
|
41872
42200
|
}
|
|
41873
42201
|
)
|
|
41874
42202
|
] });
|
|
41875
|
-
})() }) : /* @__PURE__ */ (0,
|
|
41876
|
-
post.title && /* @__PURE__ */ (0,
|
|
41877
|
-
post.description && /* @__PURE__ */ (0,
|
|
42203
|
+
})() }) : /* @__PURE__ */ (0, import_jsx_runtime169.jsxs)(import_jsx_runtime169.Fragment, { children: [
|
|
42204
|
+
post.title && /* @__PURE__ */ (0, import_jsx_runtime169.jsx)("div", { className: "text-gray900 font-light", children: post.title }),
|
|
42205
|
+
post.description && /* @__PURE__ */ (0, import_jsx_runtime169.jsx)(
|
|
41878
42206
|
"div",
|
|
41879
42207
|
{
|
|
41880
42208
|
className: "mt-2 text-sm text-gray900 overflow-hidden font-light",
|
|
@@ -41882,7 +42210,7 @@ function PostCard({ post, platformUsername }) {
|
|
|
41882
42210
|
children: post.description
|
|
41883
42211
|
}
|
|
41884
42212
|
),
|
|
41885
|
-
post.description && post.description.length > 200 && /* @__PURE__ */ (0,
|
|
42213
|
+
post.description && post.description.length > 200 && /* @__PURE__ */ (0, import_jsx_runtime169.jsx)(
|
|
41886
42214
|
"button",
|
|
41887
42215
|
{
|
|
41888
42216
|
onClick: (e) => {
|
|
@@ -41902,7 +42230,7 @@ function PostCard({ post, platformUsername }) {
|
|
|
41902
42230
|
}
|
|
41903
42231
|
|
|
41904
42232
|
// src/molecules/creator-discovery/CreatorWidget/PlatformPostsSection.tsx
|
|
41905
|
-
var
|
|
42233
|
+
var import_jsx_runtime170 = require("react/jsx-runtime");
|
|
41906
42234
|
var formatFollowerCount2 = (count) => {
|
|
41907
42235
|
if (count >= 1e6) {
|
|
41908
42236
|
const millions = count / 1e6;
|
|
@@ -41926,18 +42254,18 @@ function PlatformMetricsBanner({
|
|
|
41926
42254
|
const platformName = getPlatformName(platform);
|
|
41927
42255
|
const bgColor = getPlatformBgColor(platform);
|
|
41928
42256
|
const IconComponent = getPlatformIcon(platform);
|
|
41929
|
-
return /* @__PURE__ */ (0,
|
|
42257
|
+
return /* @__PURE__ */ (0, import_jsx_runtime170.jsxs)(
|
|
41930
42258
|
"div",
|
|
41931
42259
|
{
|
|
41932
42260
|
className: "\n flex overflow-x-auto gap-6 rounded-l-xl py-4 px-4 shadow-sm\n md:grid md:grid-cols-[0.5fr_1fr_1fr_1fr_1fr] md:items-center md:gap-0 md:px-0 md:ml-8\n ",
|
|
41933
42261
|
style: { backgroundColor: bgColor },
|
|
41934
42262
|
children: [
|
|
41935
|
-
/* @__PURE__ */ (0,
|
|
41936
|
-
/* @__PURE__ */ (0,
|
|
41937
|
-
/* @__PURE__ */ (0,
|
|
42263
|
+
/* @__PURE__ */ (0, import_jsx_runtime170.jsxs)("div", { className: "flex flex-col items-center min-w-[90px] md:min-w-0", children: [
|
|
42264
|
+
/* @__PURE__ */ (0, import_jsx_runtime170.jsx)(IconComponent, { className: "w-5 h-5 md:w-6 md:h-6 text-gray900" }),
|
|
42265
|
+
/* @__PURE__ */ (0, import_jsx_runtime170.jsx)("span", { className: "text-lg md:text-xl font-bold text-gray900", children: platform === "youtubeMetrics" ? formatFollowerCount2(metrics.subscribers || 0) : formatFollowerCount2(metrics.followers || 0) })
|
|
41938
42266
|
] }),
|
|
41939
|
-
/* @__PURE__ */ (0,
|
|
41940
|
-
/* @__PURE__ */ (0,
|
|
42267
|
+
/* @__PURE__ */ (0, import_jsx_runtime170.jsxs)("div", { className: "flex flex-col items-start min-w-[130px] md:min-w-0", children: [
|
|
42268
|
+
/* @__PURE__ */ (0, import_jsx_runtime170.jsxs)(
|
|
41941
42269
|
"span",
|
|
41942
42270
|
{
|
|
41943
42271
|
className: "text-base md:text-lg dark:text-white max-w-[90%] truncate cursor-default",
|
|
@@ -41948,22 +42276,22 @@ function PlatformMetricsBanner({
|
|
|
41948
42276
|
]
|
|
41949
42277
|
}
|
|
41950
42278
|
),
|
|
41951
|
-
/* @__PURE__ */ (0,
|
|
42279
|
+
/* @__PURE__ */ (0, import_jsx_runtime170.jsx)("span", { className: "text-xs md:text-sm text-gray900 opacity-90", children: platformName })
|
|
41952
42280
|
] }),
|
|
41953
|
-
/* @__PURE__ */ (0,
|
|
41954
|
-
/* @__PURE__ */ (0,
|
|
42281
|
+
/* @__PURE__ */ (0, import_jsx_runtime170.jsxs)("div", { className: "flex flex-col items-start min-w-[100px] md:min-w-0", children: [
|
|
42282
|
+
/* @__PURE__ */ (0, import_jsx_runtime170.jsxs)("span", { className: "text-sm md:text-md font-semibold text-gray900", children: [
|
|
41955
42283
|
(metrics.engagementRate * 100).toFixed(2),
|
|
41956
42284
|
"%"
|
|
41957
42285
|
] }),
|
|
41958
|
-
/* @__PURE__ */ (0,
|
|
42286
|
+
/* @__PURE__ */ (0, import_jsx_runtime170.jsx)("span", { className: "text-xs text-gray900 opacity-80", children: "Engagement Rate" })
|
|
41959
42287
|
] }),
|
|
41960
|
-
/* @__PURE__ */ (0,
|
|
41961
|
-
/* @__PURE__ */ (0,
|
|
41962
|
-
/* @__PURE__ */ (0,
|
|
42288
|
+
/* @__PURE__ */ (0, import_jsx_runtime170.jsxs)("div", { className: "flex flex-col items-start min-w-[100px] md:min-w-0", children: [
|
|
42289
|
+
/* @__PURE__ */ (0, import_jsx_runtime170.jsx)("span", { className: "text-sm md:text-md font-semibold text-gray900", children: Math.round(metrics.avgLikes)?.toLocaleString() }),
|
|
42290
|
+
/* @__PURE__ */ (0, import_jsx_runtime170.jsx)("span", { className: "text-xs text-gray900 opacity-80", children: "Avg Likes" })
|
|
41963
42291
|
] }),
|
|
41964
|
-
/* @__PURE__ */ (0,
|
|
41965
|
-
/* @__PURE__ */ (0,
|
|
41966
|
-
/* @__PURE__ */ (0,
|
|
42292
|
+
/* @__PURE__ */ (0, import_jsx_runtime170.jsxs)("div", { className: "flex flex-col items-start min-w-[100px] md:min-w-0", children: [
|
|
42293
|
+
/* @__PURE__ */ (0, import_jsx_runtime170.jsx)("span", { className: "text-sm md:text-md font-semibold text-gray900", children: Math.round(metrics.avgComments)?.toLocaleString() }),
|
|
42294
|
+
/* @__PURE__ */ (0, import_jsx_runtime170.jsx)("span", { className: "text-xs text-gray900 opacity-80", children: "Avg Comments" })
|
|
41967
42295
|
] })
|
|
41968
42296
|
]
|
|
41969
42297
|
}
|
|
@@ -41974,16 +42302,16 @@ function PlatformPostsSection({
|
|
|
41974
42302
|
posts = []
|
|
41975
42303
|
}) {
|
|
41976
42304
|
if (!platformMetrics) return null;
|
|
41977
|
-
return /* @__PURE__ */ (0,
|
|
42305
|
+
return /* @__PURE__ */ (0, import_jsx_runtime170.jsx)("div", { className: "flex flex-col gap-4", children: /* @__PURE__ */ (0, import_jsx_runtime170.jsx)("div", { className: "flex flex-col gap-8", children: Object.entries(platformMetrics || {}).map(
|
|
41978
42306
|
([platform, metrics]) => {
|
|
41979
42307
|
if (!metrics) return null;
|
|
41980
42308
|
if (metrics.followers === 0 && metrics.subscribers === 0)
|
|
41981
42309
|
return null;
|
|
41982
42310
|
const platformPosts = filterPostsByPlatform(posts, platform);
|
|
41983
42311
|
const platformUsername = metrics.username ?? metrics.channelName ?? "";
|
|
41984
|
-
return /* @__PURE__ */ (0,
|
|
41985
|
-
/* @__PURE__ */ (0,
|
|
41986
|
-
platformPosts.length > 0 && /* @__PURE__ */ (0,
|
|
42312
|
+
return /* @__PURE__ */ (0, import_jsx_runtime170.jsxs)("div", { className: "w-full flex flex-col gap-8", children: [
|
|
42313
|
+
/* @__PURE__ */ (0, import_jsx_runtime170.jsx)(PlatformMetricsBanner, { platform, metrics }),
|
|
42314
|
+
platformPosts.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime170.jsx)("div", { className: "pr-6 sm:ml-8 sm:pr-7", children: /* @__PURE__ */ (0, import_jsx_runtime170.jsx)("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-4", children: platformPosts.map((post, idx) => /* @__PURE__ */ (0, import_jsx_runtime170.jsx)(
|
|
41987
42315
|
PostCard,
|
|
41988
42316
|
{
|
|
41989
42317
|
post,
|
|
@@ -41997,10 +42325,10 @@ function PlatformPostsSection({
|
|
|
41997
42325
|
}
|
|
41998
42326
|
|
|
41999
42327
|
// src/molecules/creator-discovery/CreatorWidget/BrandCollaborationsList.tsx
|
|
42000
|
-
var
|
|
42328
|
+
var import_react84 = require("react");
|
|
42001
42329
|
var import_react_dom = __toESM(require("react-dom"), 1);
|
|
42002
42330
|
var import_framer_motion3 = require("framer-motion");
|
|
42003
|
-
var
|
|
42331
|
+
var import_jsx_runtime171 = require("react/jsx-runtime");
|
|
42004
42332
|
var getSentimentRank = (score) => {
|
|
42005
42333
|
if (score >= 80) {
|
|
42006
42334
|
return {
|
|
@@ -42045,8 +42373,8 @@ function BrandMentionDetails({
|
|
|
42045
42373
|
) || [];
|
|
42046
42374
|
if (typeof window === "undefined") return null;
|
|
42047
42375
|
return import_react_dom.default.createPortal(
|
|
42048
|
-
/* @__PURE__ */ (0,
|
|
42049
|
-
/* @__PURE__ */ (0,
|
|
42376
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsx)(import_framer_motion3.AnimatePresence, { mode: "sync", children: open && /* @__PURE__ */ (0, import_jsx_runtime171.jsxs)(import_jsx_runtime171.Fragment, { children: [
|
|
42377
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsx)(
|
|
42050
42378
|
import_framer_motion3.motion.div,
|
|
42051
42379
|
{
|
|
42052
42380
|
initial: { opacity: 0 },
|
|
@@ -42061,7 +42389,7 @@ function BrandMentionDetails({
|
|
|
42061
42389
|
},
|
|
42062
42390
|
"brand-overlay"
|
|
42063
42391
|
),
|
|
42064
|
-
/* @__PURE__ */ (0,
|
|
42392
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsxs)(
|
|
42065
42393
|
import_framer_motion3.motion.div,
|
|
42066
42394
|
{
|
|
42067
42395
|
initial: { opacity: 0, scale: 0.95 },
|
|
@@ -42071,42 +42399,42 @@ function BrandMentionDetails({
|
|
|
42071
42399
|
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",
|
|
42072
42400
|
onClick: (e) => e.stopPropagation(),
|
|
42073
42401
|
children: [
|
|
42074
|
-
/* @__PURE__ */ (0,
|
|
42075
|
-
/* @__PURE__ */ (0,
|
|
42402
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsxs)("div", { className: "flex justify-between items-center p-4 border-b border-gray300", children: [
|
|
42403
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsxs)("h3", { className: "text-lg font-bold text-gray900", children: [
|
|
42076
42404
|
"Brand Mention Details: ",
|
|
42077
42405
|
selectedBrand
|
|
42078
42406
|
] }),
|
|
42079
|
-
/* @__PURE__ */ (0,
|
|
42407
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsx)(
|
|
42080
42408
|
"button",
|
|
42081
42409
|
{
|
|
42082
42410
|
onClick: onClose,
|
|
42083
42411
|
className: "p-1 rounded-full hover:bg-gray200 transition-colors",
|
|
42084
|
-
children: /* @__PURE__ */ (0,
|
|
42412
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime171.jsx)(X, { className: "w-4 h-4" })
|
|
42085
42413
|
}
|
|
42086
42414
|
)
|
|
42087
42415
|
] }),
|
|
42088
|
-
/* @__PURE__ */ (0,
|
|
42089
|
-
brandStats && /* @__PURE__ */ (0,
|
|
42090
|
-
/* @__PURE__ */ (0,
|
|
42091
|
-
/* @__PURE__ */ (0,
|
|
42092
|
-
/* @__PURE__ */ (0,
|
|
42093
|
-
/* @__PURE__ */ (0,
|
|
42094
|
-
/* @__PURE__ */ (0,
|
|
42416
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsxs)("div", { className: "flex flex-col gap-6 max-h-[70vh] overflow-y-auto p-4", children: [
|
|
42417
|
+
brandStats && /* @__PURE__ */ (0, import_jsx_runtime171.jsxs)("div", { className: "bg-gray25 border-2 border-gray200 rounded-xl p-4", children: [
|
|
42418
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsx)("h3", { className: "text-lg font-bold text-gray900 mb-4", children: "Overview" }),
|
|
42419
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsxs)("div", { className: "grid grid-cols-2 gap-4", children: [
|
|
42420
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsxs)("div", { className: "bg-background rounded-lg p-3", children: [
|
|
42421
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsx)("div", { className: "text-xs text-gray600", children: "Total Mentions" }),
|
|
42422
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsx)("div", { className: "text-2xl font-bold text-gray900", children: brandStats.mentions })
|
|
42095
42423
|
] }),
|
|
42096
|
-
/* @__PURE__ */ (0,
|
|
42097
|
-
/* @__PURE__ */ (0,
|
|
42098
|
-
/* @__PURE__ */ (0,
|
|
42424
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsxs)("div", { className: "bg-background rounded-lg p-3", children: [
|
|
42425
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsx)("div", { className: "text-xs text-gray600", children: "Posts Count" }),
|
|
42426
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsx)("div", { className: "text-2xl font-bold text-gray900", children: brandStats.postCount })
|
|
42099
42427
|
] }),
|
|
42100
|
-
/* @__PURE__ */ (0,
|
|
42101
|
-
/* @__PURE__ */ (0,
|
|
42102
|
-
/* @__PURE__ */ (0,
|
|
42428
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsxs)("div", { className: "bg-background rounded-lg p-3", children: [
|
|
42429
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsx)("div", { className: "text-xs text-gray600", children: "Avg Engagement" }),
|
|
42430
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsxs)("div", { className: "text-2xl font-bold text-gray900", children: [
|
|
42103
42431
|
brandStats.averageEngagementRate?.toFixed(2),
|
|
42104
42432
|
"%"
|
|
42105
42433
|
] })
|
|
42106
42434
|
] }),
|
|
42107
|
-
/* @__PURE__ */ (0,
|
|
42108
|
-
/* @__PURE__ */ (0,
|
|
42109
|
-
/* @__PURE__ */ (0,
|
|
42435
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsxs)("div", { className: "bg-background rounded-lg p-3", children: [
|
|
42436
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsx)("div", { className: "text-xs text-gray600", children: "Effectiveness" }),
|
|
42437
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsxs)(
|
|
42110
42438
|
"div",
|
|
42111
42439
|
{
|
|
42112
42440
|
className: `text-2xl font-bold ${getSentimentRank(brandStats.effectivenessPercent).scoreColor}`,
|
|
@@ -42118,8 +42446,8 @@ function BrandMentionDetails({
|
|
|
42118
42446
|
)
|
|
42119
42447
|
] })
|
|
42120
42448
|
] }),
|
|
42121
|
-
/* @__PURE__ */ (0,
|
|
42122
|
-
(type, idx) => /* @__PURE__ */ (0,
|
|
42449
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsx)("div", { className: "mt-3 flex gap-2 flex-wrap", children: brandStats.collaborationTypes?.map(
|
|
42450
|
+
(type, idx) => /* @__PURE__ */ (0, import_jsx_runtime171.jsx)(
|
|
42123
42451
|
"span",
|
|
42124
42452
|
{
|
|
42125
42453
|
className: "px-3 py-1 rounded-md text-xs font-medium bg-[#1D4324] text-[#72E285]",
|
|
@@ -42129,55 +42457,55 @@ function BrandMentionDetails({
|
|
|
42129
42457
|
)
|
|
42130
42458
|
) })
|
|
42131
42459
|
] }),
|
|
42132
|
-
/* @__PURE__ */ (0,
|
|
42133
|
-
/* @__PURE__ */ (0,
|
|
42460
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsxs)("div", { children: [
|
|
42461
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsxs)("h3", { className: "text-lg font-bold text-gray900 mb-3", children: [
|
|
42134
42462
|
"Individual Mentions (",
|
|
42135
42463
|
brandMentions.length,
|
|
42136
42464
|
")"
|
|
42137
42465
|
] }),
|
|
42138
|
-
/* @__PURE__ */ (0,
|
|
42466
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsx)("div", { className: "flex flex-col gap-3", children: brandMentions.map((mention, index) => {
|
|
42139
42467
|
const IconComponent = getPlatformIcon(mention?.platform);
|
|
42140
|
-
return /* @__PURE__ */ (0,
|
|
42468
|
+
return /* @__PURE__ */ (0, import_jsx_runtime171.jsxs)(
|
|
42141
42469
|
"div",
|
|
42142
42470
|
{
|
|
42143
42471
|
className: "bg-gray50 border-2 border-gray200 rounded-xl p-4 hover:border-purple100 transition-colors",
|
|
42144
42472
|
children: [
|
|
42145
|
-
/* @__PURE__ */ (0,
|
|
42146
|
-
/* @__PURE__ */ (0,
|
|
42147
|
-
/* @__PURE__ */ (0,
|
|
42148
|
-
/* @__PURE__ */ (0,
|
|
42473
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsxs)("div", { className: "flex items-center justify-between mb-3", children: [
|
|
42474
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
42475
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsx)(IconComponent, { className: "w-5 h-5 text-gray900" }),
|
|
42476
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsx)("span", { className: "text-sm font-medium text-gray700 capitalize", children: mention.platform })
|
|
42149
42477
|
] }),
|
|
42150
|
-
/* @__PURE__ */ (0,
|
|
42151
|
-
/* @__PURE__ */ (0,
|
|
42152
|
-
/* @__PURE__ */ (0,
|
|
42478
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
42479
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsx)("span", { className: "px-2 py-1 rounded-md text-xs font-medium bg-[#1D4324] text-[#72E285]", children: mention.collaborationType }),
|
|
42480
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsxs)("span", { className: "text-xs text-gray600", children: [
|
|
42153
42481
|
Math.round(mention.confidence * 100),
|
|
42154
42482
|
"% confidence"
|
|
42155
42483
|
] })
|
|
42156
42484
|
] })
|
|
42157
42485
|
] }),
|
|
42158
|
-
/* @__PURE__ */ (0,
|
|
42159
|
-
/* @__PURE__ */ (0,
|
|
42486
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsxs)("div", { className: "mb-2", children: [
|
|
42487
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsxs)("span", { className: "text-xs text-gray500", children: [
|
|
42160
42488
|
"Post ID:",
|
|
42161
42489
|
" "
|
|
42162
42490
|
] }),
|
|
42163
|
-
/* @__PURE__ */ (0,
|
|
42491
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsx)("span", { className: "text-xs font-mono text-gray700", children: mention.post_id })
|
|
42164
42492
|
] }),
|
|
42165
|
-
/* @__PURE__ */ (0,
|
|
42166
|
-
/* @__PURE__ */ (0,
|
|
42167
|
-
/* @__PURE__ */ (0,
|
|
42493
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsxs)("div", { className: "bg-background rounded-lg p-3 border border-gray300", children: [
|
|
42494
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsx)("div", { className: "text-xs text-gray600 mb-1", children: "Evidence:" }),
|
|
42495
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsxs)("p", { className: "text-sm text-gray800 italic", children: [
|
|
42168
42496
|
"\u201C",
|
|
42169
42497
|
mention.evidence,
|
|
42170
42498
|
"\u201D"
|
|
42171
42499
|
] })
|
|
42172
42500
|
] }),
|
|
42173
|
-
/* @__PURE__ */ (0,
|
|
42501
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsxs)("div", { className: "mt-2 text-xs text-gray500", children: [
|
|
42174
42502
|
"Source:",
|
|
42175
42503
|
" ",
|
|
42176
|
-
/* @__PURE__ */ (0,
|
|
42177
|
-
mention.handle && /* @__PURE__ */ (0,
|
|
42504
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsx)("span", { className: "font-medium", children: mention.source }),
|
|
42505
|
+
mention.handle && /* @__PURE__ */ (0, import_jsx_runtime171.jsxs)("span", { className: "ml-2", children: [
|
|
42178
42506
|
"Handle:",
|
|
42179
42507
|
" ",
|
|
42180
|
-
/* @__PURE__ */ (0,
|
|
42508
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsx)("span", { className: "font-medium", children: mention.handle })
|
|
42181
42509
|
] })
|
|
42182
42510
|
] })
|
|
42183
42511
|
]
|
|
@@ -42186,7 +42514,7 @@ function BrandMentionDetails({
|
|
|
42186
42514
|
);
|
|
42187
42515
|
}) })
|
|
42188
42516
|
] }),
|
|
42189
|
-
brandMentions.length === 0 && /* @__PURE__ */ (0,
|
|
42517
|
+
brandMentions.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime171.jsx)("div", { className: "text-center py-8 text-gray500", children: "No mentions found for this brand" })
|
|
42190
42518
|
] })
|
|
42191
42519
|
]
|
|
42192
42520
|
},
|
|
@@ -42199,16 +42527,16 @@ function BrandMentionDetails({
|
|
|
42199
42527
|
function BrandCollaborationsList({
|
|
42200
42528
|
brandBreakdown
|
|
42201
42529
|
}) {
|
|
42202
|
-
const [openDetails, setOpenDetails] = (0,
|
|
42203
|
-
const [selectedBrand, setSelectedBrand] = (0,
|
|
42530
|
+
const [openDetails, setOpenDetails] = (0, import_react84.useState)(false);
|
|
42531
|
+
const [selectedBrand, setSelectedBrand] = (0, import_react84.useState)("");
|
|
42204
42532
|
if (!brandBreakdown?.insights?.brandBreakdown || brandBreakdown.insights.brandBreakdown.length === 0) {
|
|
42205
42533
|
return null;
|
|
42206
42534
|
}
|
|
42207
|
-
return /* @__PURE__ */ (0,
|
|
42208
|
-
/* @__PURE__ */ (0,
|
|
42209
|
-
/* @__PURE__ */ (0,
|
|
42210
|
-
/* @__PURE__ */ (0,
|
|
42211
|
-
(item, index) => /* @__PURE__ */ (0,
|
|
42535
|
+
return /* @__PURE__ */ (0, import_jsx_runtime171.jsxs)(import_jsx_runtime171.Fragment, { children: [
|
|
42536
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsxs)("div", { children: [
|
|
42537
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsx)("div", { className: "text-purpleText text-xs mb-2", children: /* @__PURE__ */ (0, import_jsx_runtime171.jsx)("span", { className: "rounded-md bg-purple200 px-2 py-[4px] font-sans", children: "BRAND MENTIONS" }) }),
|
|
42538
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsx)("div", { className: "flex flex-col gap-2 max-h-[220px] overflow-y-auto", children: brandBreakdown.insights.brandBreakdown.map(
|
|
42539
|
+
(item, index) => /* @__PURE__ */ (0, import_jsx_runtime171.jsxs)(
|
|
42212
42540
|
"div",
|
|
42213
42541
|
{
|
|
42214
42542
|
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",
|
|
@@ -42218,17 +42546,17 @@ function BrandCollaborationsList({
|
|
|
42218
42546
|
setOpenDetails(true);
|
|
42219
42547
|
},
|
|
42220
42548
|
children: [
|
|
42221
|
-
/* @__PURE__ */ (0,
|
|
42222
|
-
/* @__PURE__ */ (0,
|
|
42223
|
-
/* @__PURE__ */ (0,
|
|
42224
|
-
/* @__PURE__ */ (0,
|
|
42225
|
-
/* @__PURE__ */ (0,
|
|
42226
|
-
/* @__PURE__ */ (0,
|
|
42549
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsx)("div", { className: "w-10 h-10 rounded-full bg-gray200 flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime171.jsx)("span", { className: "text-sm font-bold text-gray700", children: item.brand?.charAt(0)?.toUpperCase() || "?" }) }),
|
|
42550
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsxs)("div", { className: "flex flex-col gap-1", children: [
|
|
42551
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsx)("div", { className: "text-gray900 text-sm", children: item.brand }),
|
|
42552
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsxs)("div", { className: "flex gap-2 text-xs text-gray600", children: [
|
|
42553
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsxs)("div", { children: [
|
|
42554
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsx)("span", { className: "text-gray900", children: item?.mentions }),
|
|
42227
42555
|
" ",
|
|
42228
42556
|
"Mention"
|
|
42229
42557
|
] }),
|
|
42230
|
-
/* @__PURE__ */ (0,
|
|
42231
|
-
/* @__PURE__ */ (0,
|
|
42558
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsxs)("div", { children: [
|
|
42559
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsx)(
|
|
42232
42560
|
"span",
|
|
42233
42561
|
{
|
|
42234
42562
|
className: `${getSentimentRank(item.effectivenessPercent).scoreColor} font-bold`,
|
|
@@ -42246,7 +42574,7 @@ function BrandCollaborationsList({
|
|
|
42246
42574
|
)
|
|
42247
42575
|
) })
|
|
42248
42576
|
] }),
|
|
42249
|
-
/* @__PURE__ */ (0,
|
|
42577
|
+
/* @__PURE__ */ (0, import_jsx_runtime171.jsx)(
|
|
42250
42578
|
BrandMentionDetails,
|
|
42251
42579
|
{
|
|
42252
42580
|
open: openDetails,
|
|
@@ -42259,9 +42587,9 @@ function BrandCollaborationsList({
|
|
|
42259
42587
|
}
|
|
42260
42588
|
|
|
42261
42589
|
// src/molecules/creator-discovery/CreatorWidget/CreatorGridView.tsx
|
|
42262
|
-
var
|
|
42590
|
+
var import_react85 = require("react");
|
|
42263
42591
|
var import_framer_motion4 = require("framer-motion");
|
|
42264
|
-
var
|
|
42592
|
+
var import_jsx_runtime172 = require("react/jsx-runtime");
|
|
42265
42593
|
var formatFollowerCount3 = (count) => {
|
|
42266
42594
|
if (count >= 1e6) {
|
|
42267
42595
|
const millions = count / 1e6;
|
|
@@ -42308,25 +42636,25 @@ var itemsExplanation = [
|
|
|
42308
42636
|
{ key: "brandSafety", label: "Brand Safety" }
|
|
42309
42637
|
];
|
|
42310
42638
|
function CreatorGridViewCard({ creator }) {
|
|
42311
|
-
const [isExpanded, setIsExpanded] = (0,
|
|
42312
|
-
const [showFullDescription, setShowFullDescription] = (0,
|
|
42313
|
-
const [isDescriptionOverflowing, setIsDescriptionOverflowing] = (0,
|
|
42314
|
-
const descriptionRef = (0,
|
|
42315
|
-
const cardRef = (0,
|
|
42316
|
-
const checkDescriptionOverflow = (0,
|
|
42639
|
+
const [isExpanded, setIsExpanded] = (0, import_react85.useState)(false);
|
|
42640
|
+
const [showFullDescription, setShowFullDescription] = (0, import_react85.useState)(false);
|
|
42641
|
+
const [isDescriptionOverflowing, setIsDescriptionOverflowing] = (0, import_react85.useState)(false);
|
|
42642
|
+
const descriptionRef = (0, import_react85.useRef)(null);
|
|
42643
|
+
const cardRef = (0, import_react85.useRef)(null);
|
|
42644
|
+
const checkDescriptionOverflow = (0, import_react85.useCallback)(() => {
|
|
42317
42645
|
const el = descriptionRef.current;
|
|
42318
42646
|
if (!el) return;
|
|
42319
42647
|
setIsDescriptionOverflowing(el.scrollHeight > el.clientHeight + 1);
|
|
42320
42648
|
}, []);
|
|
42321
|
-
(0,
|
|
42649
|
+
(0, import_react85.useEffect)(() => {
|
|
42322
42650
|
checkDescriptionOverflow();
|
|
42323
42651
|
}, [checkDescriptionOverflow, isExpanded, showFullDescription]);
|
|
42324
|
-
(0,
|
|
42652
|
+
(0, import_react85.useEffect)(() => {
|
|
42325
42653
|
const onResize = () => checkDescriptionOverflow();
|
|
42326
42654
|
window.addEventListener("resize", onResize);
|
|
42327
42655
|
return () => window.removeEventListener("resize", onResize);
|
|
42328
42656
|
}, [checkDescriptionOverflow]);
|
|
42329
|
-
const platformStats = (0,
|
|
42657
|
+
const platformStats = (0, import_react85.useMemo)(() => {
|
|
42330
42658
|
return [
|
|
42331
42659
|
{
|
|
42332
42660
|
platform: "instagram",
|
|
@@ -42362,7 +42690,7 @@ function CreatorGridViewCard({ creator }) {
|
|
|
42362
42690
|
};
|
|
42363
42691
|
const iso2 = normalizeToIso2(creator.country);
|
|
42364
42692
|
const meta = codeToMeta[iso2];
|
|
42365
|
-
return /* @__PURE__ */ (0,
|
|
42693
|
+
return /* @__PURE__ */ (0, import_jsx_runtime172.jsx)(
|
|
42366
42694
|
import_framer_motion4.motion.div,
|
|
42367
42695
|
{
|
|
42368
42696
|
ref: cardRef,
|
|
@@ -42373,10 +42701,10 @@ function CreatorGridViewCard({ creator }) {
|
|
|
42373
42701
|
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" : ""}`,
|
|
42374
42702
|
style: isExpanded ? { gridColumn: "1 / -1" } : {},
|
|
42375
42703
|
onClick: toggleExpanded,
|
|
42376
|
-
children: /* @__PURE__ */ (0,
|
|
42377
|
-
/* @__PURE__ */ (0,
|
|
42378
|
-
/* @__PURE__ */ (0,
|
|
42379
|
-
creator.profile_pic ? /* @__PURE__ */ (0,
|
|
42704
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime172.jsxs)("div", { className: "flex", children: [
|
|
42705
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsxs)("div", { className: `${isExpanded ? "w-1/3" : "w-full"}`, children: [
|
|
42706
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsxs)("div", { className: "relative w-full aspect-square mb-2", children: [
|
|
42707
|
+
creator.profile_pic ? /* @__PURE__ */ (0, import_jsx_runtime172.jsx)(
|
|
42380
42708
|
"img",
|
|
42381
42709
|
{
|
|
42382
42710
|
src: creator.profile_pic,
|
|
@@ -42384,15 +42712,15 @@ function CreatorGridViewCard({ creator }) {
|
|
|
42384
42712
|
className: "w-full h-full object-cover bg-primary/10",
|
|
42385
42713
|
style: { borderRadius: "10px 10px 0 0" }
|
|
42386
42714
|
}
|
|
42387
|
-
) : /* @__PURE__ */ (0,
|
|
42715
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime172.jsx)(
|
|
42388
42716
|
"div",
|
|
42389
42717
|
{
|
|
42390
42718
|
className: "w-full h-full bg-primary/10 flex items-center justify-center",
|
|
42391
42719
|
style: { borderRadius: "10px 10px 0 0" },
|
|
42392
|
-
children: /* @__PURE__ */ (0,
|
|
42720
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime172.jsx)("span", { className: "text-2xl text-primary", children: creator.name?.charAt(0) || "?" })
|
|
42393
42721
|
}
|
|
42394
42722
|
),
|
|
42395
|
-
/* @__PURE__ */ (0,
|
|
42723
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsx)(
|
|
42396
42724
|
"div",
|
|
42397
42725
|
{
|
|
42398
42726
|
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`,
|
|
@@ -42400,34 +42728,34 @@ function CreatorGridViewCard({ creator }) {
|
|
|
42400
42728
|
}
|
|
42401
42729
|
)
|
|
42402
42730
|
] }),
|
|
42403
|
-
/* @__PURE__ */ (0,
|
|
42404
|
-
/* @__PURE__ */ (0,
|
|
42405
|
-
/* @__PURE__ */ (0,
|
|
42731
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsxs)("div", { className: "px-3 pb-1", children: [
|
|
42732
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsxs)("div", { children: [
|
|
42733
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsx)(
|
|
42406
42734
|
"h3",
|
|
42407
42735
|
{
|
|
42408
42736
|
className: `${isExpanded ? "text-md" : "text-sm"} font-normal text-gray900 mb-1 line-clamp-2 text-start`,
|
|
42409
42737
|
children: creator.name || "Unnamed"
|
|
42410
42738
|
}
|
|
42411
42739
|
),
|
|
42412
|
-
/* @__PURE__ */ (0,
|
|
42740
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsxs)(
|
|
42413
42741
|
"div",
|
|
42414
42742
|
{
|
|
42415
42743
|
className: `${isExpanded ? "text-sm" : "text-xs"} text-gray700 mb-1 text-start flex items-center gap-1`,
|
|
42416
42744
|
children: [
|
|
42417
|
-
/* @__PURE__ */ (0,
|
|
42418
|
-
/* @__PURE__ */ (0,
|
|
42745
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsx)("span", { className: "text-base", children: meta?.flag }),
|
|
42746
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsx)("span", { children: meta?.name || creator.country || "Unknown" })
|
|
42419
42747
|
]
|
|
42420
42748
|
}
|
|
42421
42749
|
),
|
|
42422
|
-
isExpanded && creator?.sentiment?.detailedScores && /* @__PURE__ */ (0,
|
|
42750
|
+
isExpanded && creator?.sentiment?.detailedScores && /* @__PURE__ */ (0, import_jsx_runtime172.jsx)("div", { className: "overflow-x-auto", children: /* @__PURE__ */ (0, import_jsx_runtime172.jsx)("div", { className: "mt-2 w-[150px] flex gap-2", children: Object.entries(creator.sentiment.detailedScores).map(
|
|
42423
42751
|
([key, value]) => {
|
|
42424
42752
|
const itemRank = getSentimentRank2(value);
|
|
42425
|
-
return /* @__PURE__ */ (0,
|
|
42753
|
+
return /* @__PURE__ */ (0, import_jsx_runtime172.jsxs)(
|
|
42426
42754
|
"div",
|
|
42427
42755
|
{
|
|
42428
42756
|
className: "flex flex-col items-center w-[100px]",
|
|
42429
42757
|
children: [
|
|
42430
|
-
/* @__PURE__ */ (0,
|
|
42758
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsxs)(
|
|
42431
42759
|
"span",
|
|
42432
42760
|
{
|
|
42433
42761
|
className: `text-[14px] font-bold ${itemRank.scoreColor}`,
|
|
@@ -42437,7 +42765,7 @@ function CreatorGridViewCard({ creator }) {
|
|
|
42437
42765
|
]
|
|
42438
42766
|
}
|
|
42439
42767
|
),
|
|
42440
|
-
/* @__PURE__ */ (0,
|
|
42768
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsx)("div", { className: "flex items-center justify-center gap-1 w-full", children: /* @__PURE__ */ (0, import_jsx_runtime172.jsx)("span", { className: "text-xs dark:text-gray500 text-center px-1", children: itemsExplanation.find(
|
|
42441
42769
|
(item) => item.key === key
|
|
42442
42770
|
)?.label }) })
|
|
42443
42771
|
]
|
|
@@ -42447,20 +42775,20 @@ function CreatorGridViewCard({ creator }) {
|
|
|
42447
42775
|
}
|
|
42448
42776
|
) }) })
|
|
42449
42777
|
] }),
|
|
42450
|
-
!isExpanded && /* @__PURE__ */ (0,
|
|
42451
|
-
({ platform, icon: Icon3, followers }) => /* @__PURE__ */ (0,
|
|
42778
|
+
!isExpanded && /* @__PURE__ */ (0, import_jsx_runtime172.jsx)("div", { className: "flex gap-2 justify-between", children: platformStats.map(
|
|
42779
|
+
({ platform, icon: Icon3, followers }) => /* @__PURE__ */ (0, import_jsx_runtime172.jsxs)(
|
|
42452
42780
|
"div",
|
|
42453
42781
|
{
|
|
42454
42782
|
className: "flex flex-col items-center gap-1",
|
|
42455
42783
|
title: `${formatFollowerCount3(followers)} followers`,
|
|
42456
42784
|
children: [
|
|
42457
|
-
/* @__PURE__ */ (0,
|
|
42785
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsx)(
|
|
42458
42786
|
Icon3,
|
|
42459
42787
|
{
|
|
42460
42788
|
className: `w-5 h-5 ${getPlatformIconColor(platform)}`
|
|
42461
42789
|
}
|
|
42462
42790
|
),
|
|
42463
|
-
/* @__PURE__ */ (0,
|
|
42791
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsx)("span", { className: "text-xs dark:text-gray500", children: followers > 0 && formatFollowerCount3(followers) })
|
|
42464
42792
|
]
|
|
42465
42793
|
},
|
|
42466
42794
|
platform
|
|
@@ -42468,20 +42796,20 @@ function CreatorGridViewCard({ creator }) {
|
|
|
42468
42796
|
) })
|
|
42469
42797
|
] })
|
|
42470
42798
|
] }),
|
|
42471
|
-
isExpanded && /* @__PURE__ */ (0,
|
|
42472
|
-
/* @__PURE__ */ (0,
|
|
42473
|
-
/* @__PURE__ */ (0,
|
|
42799
|
+
isExpanded && /* @__PURE__ */ (0, import_jsx_runtime172.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_runtime172.jsxs)("div", { className: "space-y-4", children: [
|
|
42800
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsxs)("div", { children: [
|
|
42801
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsxs)(
|
|
42474
42802
|
"div",
|
|
42475
42803
|
{
|
|
42476
42804
|
ref: descriptionRef,
|
|
42477
42805
|
className: `${showFullDescription ? "" : "max-h-[80px] overflow-hidden"} relative`,
|
|
42478
42806
|
children: [
|
|
42479
|
-
/* @__PURE__ */ (0,
|
|
42480
|
-
!showFullDescription && isDescriptionOverflowing && /* @__PURE__ */ (0,
|
|
42807
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsx)("p", { className: "text-sm text-gray700 leading-relaxed", children: creator.description || "No description provided." }),
|
|
42808
|
+
!showFullDescription && isDescriptionOverflowing && /* @__PURE__ */ (0, import_jsx_runtime172.jsx)("div", { className: "pointer-events-none absolute bottom-0 left-0 right-0 h-10 bg-gradient-to-t from-gray25 to-transparent" })
|
|
42481
42809
|
]
|
|
42482
42810
|
}
|
|
42483
42811
|
),
|
|
42484
|
-
(isDescriptionOverflowing || showFullDescription) && /* @__PURE__ */ (0,
|
|
42812
|
+
(isDescriptionOverflowing || showFullDescription) && /* @__PURE__ */ (0, import_jsx_runtime172.jsx)(
|
|
42485
42813
|
"button",
|
|
42486
42814
|
{
|
|
42487
42815
|
onClick: (e) => {
|
|
@@ -42493,38 +42821,38 @@ function CreatorGridViewCard({ creator }) {
|
|
|
42493
42821
|
}
|
|
42494
42822
|
)
|
|
42495
42823
|
] }),
|
|
42496
|
-
/* @__PURE__ */ (0,
|
|
42497
|
-
({ platform, icon: Icon3, followers, engagement }) => /* @__PURE__ */ (0,
|
|
42498
|
-
/* @__PURE__ */ (0,
|
|
42824
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsx)("div", { className: "flex gap-6 justify-start items-center", children: platformStats.map(
|
|
42825
|
+
({ platform, icon: Icon3, followers, engagement }) => /* @__PURE__ */ (0, import_jsx_runtime172.jsxs)("div", { className: "flex items-center gap-3", children: [
|
|
42826
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsxs)(
|
|
42499
42827
|
"div",
|
|
42500
42828
|
{
|
|
42501
42829
|
className: "flex items-center gap-1",
|
|
42502
42830
|
title: `${formatFollowerCount3(followers)} followers`,
|
|
42503
42831
|
children: [
|
|
42504
|
-
/* @__PURE__ */ (0,
|
|
42832
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsx)(
|
|
42505
42833
|
Icon3,
|
|
42506
42834
|
{
|
|
42507
42835
|
className: `w-5 h-5 ${getPlatformIconColor(platform)}`
|
|
42508
42836
|
}
|
|
42509
42837
|
),
|
|
42510
|
-
/* @__PURE__ */ (0,
|
|
42838
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsx)("span", { className: "text-xs dark:text-gray500", children: followers > 0 ? formatFollowerCount3(followers) : "0" })
|
|
42511
42839
|
]
|
|
42512
42840
|
}
|
|
42513
42841
|
),
|
|
42514
|
-
/* @__PURE__ */ (0,
|
|
42515
|
-
/* @__PURE__ */ (0,
|
|
42516
|
-
/* @__PURE__ */ (0,
|
|
42842
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsxs)("div", { className: "flex items-center gap-1", children: [
|
|
42843
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsx)(ChartColumn, { className: "w-5 h-5 dark:text-gray500" }),
|
|
42844
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsxs)("span", { className: "text-sm dark:text-gray500 w-[40px]", children: [
|
|
42517
42845
|
(engagement * 100).toFixed(1),
|
|
42518
42846
|
"%"
|
|
42519
42847
|
] })
|
|
42520
42848
|
] })
|
|
42521
42849
|
] }, platform)
|
|
42522
42850
|
) }),
|
|
42523
|
-
creator.posts?.length > 0 && /* @__PURE__ */ (0,
|
|
42524
|
-
/* @__PURE__ */ (0,
|
|
42525
|
-
/* @__PURE__ */ (0,
|
|
42851
|
+
creator.posts?.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime172.jsxs)("div", { className: "w-full overflow-hidden", children: [
|
|
42852
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsx)("h3", { className: "mb-2 text-sm font-medium text-gray900", children: "Recent Posts" }),
|
|
42853
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsx)("div", { className: "flex gap-3 overflow-x-auto", children: creator.posts.filter(
|
|
42526
42854
|
(post) => post.thumbnail || post.thumbnail_url
|
|
42527
|
-
).slice(0, 8).map((post, idx) => /* @__PURE__ */ (0,
|
|
42855
|
+
).slice(0, 8).map((post, idx) => /* @__PURE__ */ (0, import_jsx_runtime172.jsx)(
|
|
42528
42856
|
"a",
|
|
42529
42857
|
{
|
|
42530
42858
|
href: post.url || "#",
|
|
@@ -42532,7 +42860,7 @@ function CreatorGridViewCard({ creator }) {
|
|
|
42532
42860
|
rel: "noopener noreferrer",
|
|
42533
42861
|
className: "block flex-shrink-0",
|
|
42534
42862
|
onClick: (e) => e.stopPropagation(),
|
|
42535
|
-
children: /* @__PURE__ */ (0,
|
|
42863
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime172.jsx)(
|
|
42536
42864
|
"img",
|
|
42537
42865
|
{
|
|
42538
42866
|
src: post.thumbnail_url || post.thumbnail,
|
|
@@ -42544,9 +42872,9 @@ function CreatorGridViewCard({ creator }) {
|
|
|
42544
42872
|
idx
|
|
42545
42873
|
)) })
|
|
42546
42874
|
] }),
|
|
42547
|
-
creator?.sentiment?.aiReasoning && /* @__PURE__ */ (0,
|
|
42548
|
-
/* @__PURE__ */ (0,
|
|
42549
|
-
/* @__PURE__ */ (0,
|
|
42875
|
+
creator?.sentiment?.aiReasoning && /* @__PURE__ */ (0, import_jsx_runtime172.jsxs)("div", { className: "text-gray700 max-h-[200px] overflow-auto", children: [
|
|
42876
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsx)("h4", { className: "font-semibold text-sm", children: "AI Analysis" }),
|
|
42877
|
+
/* @__PURE__ */ (0, import_jsx_runtime172.jsx)("p", { className: "text-sm", children: creator.sentiment.aiReasoning })
|
|
42550
42878
|
] })
|
|
42551
42879
|
] }) })
|
|
42552
42880
|
] })
|
|
@@ -42556,11 +42884,11 @@ function CreatorGridViewCard({ creator }) {
|
|
|
42556
42884
|
function CreatorGridView({
|
|
42557
42885
|
creatorData
|
|
42558
42886
|
}) {
|
|
42559
|
-
return /* @__PURE__ */ (0,
|
|
42887
|
+
return /* @__PURE__ */ (0, import_jsx_runtime172.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_runtime172.jsx)(CreatorGridViewCard, { creator }, creator._id)) });
|
|
42560
42888
|
}
|
|
42561
42889
|
|
|
42562
42890
|
// src/molecules/creator-discovery/CreatorWidget/CreatorExpandedPanel.tsx
|
|
42563
|
-
var
|
|
42891
|
+
var import_jsx_runtime173 = require("react/jsx-runtime");
|
|
42564
42892
|
var formatFollowerCount4 = (count) => {
|
|
42565
42893
|
if (count >= 1e6) {
|
|
42566
42894
|
const millions = count / 1e6;
|
|
@@ -42654,12 +42982,12 @@ function SearchSpecDisplay({ spec }) {
|
|
|
42654
42982
|
{
|
|
42655
42983
|
key: "platforms",
|
|
42656
42984
|
title: "Platforms",
|
|
42657
|
-
content: /* @__PURE__ */ (0,
|
|
42985
|
+
content: /* @__PURE__ */ (0, import_jsx_runtime173.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_runtime173.jsx)("span", { className: `${tagClass} flex items-center justify-center`, children: p.charAt(0).toUpperCase() + p.slice(1).toLowerCase() }, idx)) })
|
|
42658
42986
|
},
|
|
42659
42987
|
{
|
|
42660
42988
|
key: "follower_range",
|
|
42661
42989
|
title: "Follower Range",
|
|
42662
|
-
content: /* @__PURE__ */ (0,
|
|
42990
|
+
content: /* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { className: `inline-block ${tagClass} font-grotesk`, children: [
|
|
42663
42991
|
formatFollowerCount4(spec?.follower_range?.min ?? 0),
|
|
42664
42992
|
" -",
|
|
42665
42993
|
" ",
|
|
@@ -42669,7 +42997,7 @@ function SearchSpecDisplay({ spec }) {
|
|
|
42669
42997
|
{
|
|
42670
42998
|
key: "geography",
|
|
42671
42999
|
title: "Geography",
|
|
42672
|
-
content: /* @__PURE__ */ (0,
|
|
43000
|
+
content: /* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: `inline-block ${tagClass} font-grotesk`, children: /* @__PURE__ */ (0, import_jsx_runtime173.jsx)(
|
|
42673
43001
|
"div",
|
|
42674
43002
|
{
|
|
42675
43003
|
className: "max-w-[200px] overflow-x-auto whitespace-nowrap",
|
|
@@ -42683,7 +43011,7 @@ function SearchSpecDisplay({ spec }) {
|
|
|
42683
43011
|
e.currentTarget.style.overflow = "hidden";
|
|
42684
43012
|
e.currentTarget.scrollLeft = 0;
|
|
42685
43013
|
},
|
|
42686
|
-
children: (spec.geography || []).map((g, idx) => /* @__PURE__ */ (0,
|
|
43014
|
+
children: (spec.geography || []).map((g, idx) => /* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("span", { children: [
|
|
42687
43015
|
g,
|
|
42688
43016
|
idx < spec.geography.length - 1 ? ", " : ""
|
|
42689
43017
|
] }, idx))
|
|
@@ -42693,13 +43021,13 @@ function SearchSpecDisplay({ spec }) {
|
|
|
42693
43021
|
{
|
|
42694
43022
|
key: "keyword_bundles",
|
|
42695
43023
|
title: "Keyword",
|
|
42696
|
-
content: /* @__PURE__ */ (0,
|
|
43024
|
+
content: /* @__PURE__ */ (0, import_jsx_runtime173.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_runtime173.jsx)("div", { className: `${textClass} text-white/70`, children: "No priority 1 keywords" }) : priorityOneBundles.map((kw, idx) => /* @__PURE__ */ (0, import_jsx_runtime173.jsx)("span", { className: tagClass, children: kw }, idx)) })
|
|
42697
43025
|
}
|
|
42698
43026
|
];
|
|
42699
43027
|
const itemsToShow = ["platforms", "follower_range", "geography", "keyword_bundles"];
|
|
42700
|
-
return /* @__PURE__ */ (0,
|
|
42701
|
-
/* @__PURE__ */ (0,
|
|
42702
|
-
/* @__PURE__ */ (0,
|
|
43028
|
+
return /* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "mt-3", children: /* @__PURE__ */ (0, import_jsx_runtime173.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_runtime173.jsxs)("div", { className: "flex-none p-5 bg-paperBackground rounded-lg", children: [
|
|
43029
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "text-purpleText text-sm mb-4", children: /* @__PURE__ */ (0, import_jsx_runtime173.jsx)("span", { className: "rounded-md bg-purple200 px-2 py-[4px] font-sans", children: title.toUpperCase() }) }),
|
|
43030
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: `flex text-gray900 ${textClass}`, children: content })
|
|
42703
43031
|
] }, key)) }) });
|
|
42704
43032
|
}
|
|
42705
43033
|
function SentimentScoreRank({
|
|
@@ -42708,16 +43036,16 @@ function SentimentScoreRank({
|
|
|
42708
43036
|
showMinialView = false
|
|
42709
43037
|
}) {
|
|
42710
43038
|
const sentimentScoreRank = getSentimentRank3(score);
|
|
42711
|
-
return /* @__PURE__ */ (0,
|
|
42712
|
-
score !== void 0 && /* @__PURE__ */ (0,
|
|
43039
|
+
return /* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "flex flex-col items-center", children: /* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { className: `flex flex-col justify-end ${showMinialView ? "w-[120px]" : "w-[150px]"} text-sm`, children: [
|
|
43040
|
+
score !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "flex justify-center items-center mb-2", children: /* @__PURE__ */ (0, import_jsx_runtime173.jsx)(
|
|
42713
43041
|
"span",
|
|
42714
43042
|
{
|
|
42715
43043
|
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]"}`,
|
|
42716
43044
|
children: isValidationComplete ? sentimentScoreRank.rank : "Unranked"
|
|
42717
43045
|
}
|
|
42718
43046
|
) }),
|
|
42719
|
-
/* @__PURE__ */ (0,
|
|
42720
|
-
!showMinialView && /* @__PURE__ */ (0,
|
|
43047
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.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_runtime173.jsx)("div", { className: "flex items-center justify-center py-2", children: /* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "w-6 h-6 border-2 border-purple100 border-t-transparent rounded-full animate-spin" }) }) }),
|
|
43048
|
+
!showMinialView && /* @__PURE__ */ (0, import_jsx_runtime173.jsx)("p", { className: "text-gray600 dark:text-gray500 text-center", children: "Match Score" })
|
|
42721
43049
|
] }) });
|
|
42722
43050
|
}
|
|
42723
43051
|
function BrandMentionPerformance({ creator }) {
|
|
@@ -42732,14 +43060,14 @@ function BrandMentionPerformance({ creator }) {
|
|
|
42732
43060
|
{ title: "Effectiveness", subtitle: "compared to all posts", value: `${insights?.effectivenessPercent || 0} %` },
|
|
42733
43061
|
{ title: "Saturation Rate", subtitle: "on brand mention", value: `${insights?.saturationRate || 0} %` }
|
|
42734
43062
|
];
|
|
42735
|
-
return /* @__PURE__ */ (0,
|
|
42736
|
-
/* @__PURE__ */ (0,
|
|
42737
|
-
/* @__PURE__ */ (0,
|
|
42738
|
-
/* @__PURE__ */ (0,
|
|
42739
|
-
/* @__PURE__ */ (0,
|
|
42740
|
-
/* @__PURE__ */ (0,
|
|
43063
|
+
return /* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { children: [
|
|
43064
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "text-purpleText text-xs mb-4", children: /* @__PURE__ */ (0, import_jsx_runtime173.jsx)("span", { className: "rounded-md bg-purple200 px-2 py-[4px] font-sans", children: "BRAND MENTION PERFORMANCE" }) }),
|
|
43065
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "flex flex-col gap-3", children: metrics.map((item) => /* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { className: "flex justify-between items-center text-gray700 text-sm", children: [
|
|
43066
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { className: "flex flex-col gap-1", children: [
|
|
43067
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("h5", { children: item.title }),
|
|
43068
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("p", { className: "text-xs", children: item.subtitle })
|
|
42741
43069
|
] }),
|
|
42742
|
-
/* @__PURE__ */ (0,
|
|
43070
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("p", { className: "text-purpleText text-lg", children: item.value })
|
|
42743
43071
|
] }, item.title)) })
|
|
42744
43072
|
] });
|
|
42745
43073
|
}
|
|
@@ -42747,19 +43075,19 @@ function CreatorFitSummary({ creator, showBrandPerformance }) {
|
|
|
42747
43075
|
const hasDeepAnalysis = creator?.sentiment?.deepAnalysis?.deepAnalysis;
|
|
42748
43076
|
const title = hasDeepAnalysis ? "CREATOR DEEP ANALYSIS" : "CREATOR FIT SUMMARY";
|
|
42749
43077
|
const content = hasDeepAnalysis ? creator.sentiment.deepAnalysis.deepAnalysis : creator?.sentiment?.aiReasoning || "No data available.";
|
|
42750
|
-
return /* @__PURE__ */ (0,
|
|
42751
|
-
/* @__PURE__ */ (0,
|
|
42752
|
-
/* @__PURE__ */ (0,
|
|
43078
|
+
return /* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { className: showBrandPerformance ? "col-span-1" : "col-span-2", children: [
|
|
43079
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "text-purpleText text-xs mb-4", children: /* @__PURE__ */ (0, import_jsx_runtime173.jsx)("span", { className: "rounded-md bg-purple200 px-2 py-[4px] font-sans", children: title }) }),
|
|
43080
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "max-h-[140px] overflow-y-auto slim-scrollbar", children: /* @__PURE__ */ (0, import_jsx_runtime173.jsx)("p", { className: "text-gray700 text-sm", children: content }) })
|
|
42753
43081
|
] });
|
|
42754
43082
|
}
|
|
42755
43083
|
function ProfileSection({ creator, isValidationComplete }) {
|
|
42756
43084
|
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}` : "";
|
|
42757
43085
|
const iso2 = normalizeToIso2(creator.country);
|
|
42758
43086
|
const meta = codeToMeta[iso2];
|
|
42759
|
-
return /* @__PURE__ */ (0,
|
|
42760
|
-
/* @__PURE__ */ (0,
|
|
42761
|
-
/* @__PURE__ */ (0,
|
|
42762
|
-
/* @__PURE__ */ (0,
|
|
43087
|
+
return /* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { className: "flex items-start gap-1 md:gap-6", children: [
|
|
43088
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { className: "flex flex-col items-center gap-6", children: [
|
|
43089
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.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_runtime173.jsxs)(import_jsx_runtime173.Fragment, { children: [
|
|
43090
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)(
|
|
42763
43091
|
"img",
|
|
42764
43092
|
{
|
|
42765
43093
|
src: creator.profile_pic,
|
|
@@ -42767,24 +43095,24 @@ function ProfileSection({ creator, isValidationComplete }) {
|
|
|
42767
43095
|
className: "object-cover w-[5rem] h-[5rem] rounded-[15px]"
|
|
42768
43096
|
}
|
|
42769
43097
|
),
|
|
42770
|
-
creator?.profile?.isVerified && /* @__PURE__ */ (0,
|
|
43098
|
+
creator?.profile?.isVerified && /* @__PURE__ */ (0, import_jsx_runtime173.jsx)(
|
|
42771
43099
|
BadgeCheck,
|
|
42772
43100
|
{
|
|
42773
43101
|
size: 35,
|
|
42774
43102
|
className: "absolute -top-2 -right-2 text-blue-500 drop-shadow-sm fill-blue-300"
|
|
42775
43103
|
}
|
|
42776
43104
|
)
|
|
42777
|
-
] }) : /* @__PURE__ */ (0,
|
|
42778
|
-
/* @__PURE__ */ (0,
|
|
43105
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime173.jsx)("span", { className: "text-2xl text-primary", children: creator.name?.charAt(0) || "?" }) }),
|
|
43106
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "block sm:hidden", children: /* @__PURE__ */ (0, import_jsx_runtime173.jsx)(SentimentScoreRank, { score: creator?.sentiment?.matchScore || -1, isValidationComplete, showMinialView: true }) })
|
|
42779
43107
|
] }),
|
|
42780
|
-
/* @__PURE__ */ (0,
|
|
42781
|
-
/* @__PURE__ */ (0,
|
|
42782
|
-
username && /* @__PURE__ */ (0,
|
|
42783
|
-
/* @__PURE__ */ (0,
|
|
42784
|
-
/* @__PURE__ */ (0,
|
|
42785
|
-
/* @__PURE__ */ (0,
|
|
43108
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { className: "flex flex-col gap-3 truncate", children: [
|
|
43109
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "flex items-center gap-2", children: /* @__PURE__ */ (0, import_jsx_runtime173.jsx)("h4", { className: "text-lg text-gray900 max-w-[150px]", title: creator.name, children: truncateName2(creator.name, 100) }) }),
|
|
43110
|
+
username && /* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "text-xs text-gray700", children: username }),
|
|
43111
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { className: "text-sm text-gray700 flex items-center gap-2", children: [
|
|
43112
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("span", { className: "text-base", children: meta?.flag }),
|
|
43113
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("span", { children: meta?.name || creator.country || "Unknown" })
|
|
42786
43114
|
] }),
|
|
42787
|
-
/* @__PURE__ */ (0,
|
|
43115
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "text-xs text-gray700 text-wrap", children: truncateName2(creator.description, 100) })
|
|
42788
43116
|
] })
|
|
42789
43117
|
] });
|
|
42790
43118
|
}
|
|
@@ -42792,7 +43120,7 @@ function CreatorCardExpandedSection({
|
|
|
42792
43120
|
creator
|
|
42793
43121
|
}) {
|
|
42794
43122
|
const hasBrandBreakdown = creator?.brandCollaborations?.insights?.brandBreakdown && creator?.sentiment?.deepAnalysis;
|
|
42795
|
-
return /* @__PURE__ */ (0,
|
|
43123
|
+
return /* @__PURE__ */ (0, import_jsx_runtime173.jsxs)(
|
|
42796
43124
|
import_framer_motion5.motion.div,
|
|
42797
43125
|
{
|
|
42798
43126
|
initial: { y: 20, opacity: 0 },
|
|
@@ -42800,21 +43128,21 @@ function CreatorCardExpandedSection({
|
|
|
42800
43128
|
transition: { duration: 0.3, delay: 0.1 },
|
|
42801
43129
|
className: "md:mt-6 space-y-5",
|
|
42802
43130
|
children: [
|
|
42803
|
-
/* @__PURE__ */ (0,
|
|
42804
|
-
/* @__PURE__ */ (0,
|
|
43131
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { className: "md:grid md:grid-cols-[1.3fr_1fr_2fr_120px] gap-8 py-4 pr-7", children: [
|
|
43132
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "col-span-4 sm:col-span-1", children: hasBrandBreakdown ? /* @__PURE__ */ (0, import_jsx_runtime173.jsx)(
|
|
42805
43133
|
BrandCollaborationsList,
|
|
42806
43134
|
{
|
|
42807
43135
|
brandBreakdown: creator?.brandCollaborations
|
|
42808
43136
|
}
|
|
42809
|
-
) : /* @__PURE__ */ (0,
|
|
42810
|
-
/* @__PURE__ */ (0,
|
|
43137
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "hidden sm:block" }) }),
|
|
43138
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "col-span-4 sm:col-span-3", children: creator?.audienceDemographics ? /* @__PURE__ */ (0, import_jsx_runtime173.jsx)(
|
|
42811
43139
|
EngagedAudienceDemographics,
|
|
42812
43140
|
{
|
|
42813
43141
|
audienceDemographics: creator.audienceDemographics
|
|
42814
43142
|
}
|
|
42815
43143
|
) : null })
|
|
42816
43144
|
] }),
|
|
42817
|
-
/* @__PURE__ */ (0,
|
|
43145
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)(
|
|
42818
43146
|
PlatformPostsSection,
|
|
42819
43147
|
{
|
|
42820
43148
|
platformMetrics: creator.platformMetrics,
|
|
@@ -42829,14 +43157,14 @@ function CreatorCard({
|
|
|
42829
43157
|
creator,
|
|
42830
43158
|
isValidationComplete
|
|
42831
43159
|
}) {
|
|
42832
|
-
const [detailsExpanded, setDetailsExpanded] = (0,
|
|
43160
|
+
const [detailsExpanded, setDetailsExpanded] = (0, import_react86.useState)(false);
|
|
42833
43161
|
const hasValidBrandMention = (() => {
|
|
42834
43162
|
const insights = creator?.brandCollaborations?.insights;
|
|
42835
43163
|
if (!insights) return false;
|
|
42836
43164
|
const isValid2 = (val) => val !== null && val !== void 0 && val !== 0 && val !== "0" && val !== "" && !Number.isNaN(val);
|
|
42837
43165
|
return isValid2(insights.averageBrandEngagementRate) || isValid2(insights.effectivenessPercent) || isValid2(insights.saturationRate);
|
|
42838
43166
|
})();
|
|
42839
|
-
return /* @__PURE__ */ (0,
|
|
43167
|
+
return /* @__PURE__ */ (0, import_jsx_runtime173.jsxs)(
|
|
42840
43168
|
import_framer_motion5.motion.div,
|
|
42841
43169
|
{
|
|
42842
43170
|
layout: true,
|
|
@@ -42847,20 +43175,20 @@ function CreatorCard({
|
|
|
42847
43175
|
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"}`,
|
|
42848
43176
|
onClick: () => setDetailsExpanded((prev) => !prev),
|
|
42849
43177
|
children: [
|
|
42850
|
-
/* @__PURE__ */ (0,
|
|
42851
|
-
/* @__PURE__ */ (0,
|
|
42852
|
-
hasValidBrandMention && /* @__PURE__ */ (0,
|
|
42853
|
-
/* @__PURE__ */ (0,
|
|
42854
|
-
/* @__PURE__ */ (0,
|
|
43178
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { className: "flex flex-col gap-4 sm:grid sm:grid-cols-[1.3fr_1fr_2fr_120px] gap-8 items-start w-full pr-7", children: [
|
|
43179
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)(ProfileSection, { creator, isValidationComplete }),
|
|
43180
|
+
hasValidBrandMention && /* @__PURE__ */ (0, import_jsx_runtime173.jsx)(BrandMentionPerformance, { creator }),
|
|
43181
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)(CreatorFitSummary, { creator, showBrandPerformance: hasValidBrandMention }),
|
|
43182
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "hidden md:block", children: /* @__PURE__ */ (0, import_jsx_runtime173.jsx)(SentimentScoreRank, { score: creator?.sentiment?.matchScore || -1, isValidationComplete }) })
|
|
42855
43183
|
] }),
|
|
42856
|
-
/* @__PURE__ */ (0,
|
|
43184
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)(import_framer_motion5.AnimatePresence, { children: detailsExpanded && /* @__PURE__ */ (0, import_jsx_runtime173.jsx)(
|
|
42857
43185
|
import_framer_motion5.motion.div,
|
|
42858
43186
|
{
|
|
42859
43187
|
initial: { height: 0, opacity: 0 },
|
|
42860
43188
|
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 } } },
|
|
42861
43189
|
exit: { height: 0, opacity: 0, transition: { height: { duration: 0.3, ease: [0.04, 0.62, 0.23, 0.98] }, opacity: { duration: 0.2 } } },
|
|
42862
43190
|
className: "overflow-hidden mt-4",
|
|
42863
|
-
children: /* @__PURE__ */ (0,
|
|
43191
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime173.jsx)(CreatorCardExpandedSection, { creator })
|
|
42864
43192
|
}
|
|
42865
43193
|
) })
|
|
42866
43194
|
]
|
|
@@ -42871,19 +43199,19 @@ function CreatorDisplay({
|
|
|
42871
43199
|
creators,
|
|
42872
43200
|
isValidationComplete
|
|
42873
43201
|
}) {
|
|
42874
|
-
const [viewMode, setViewMode] = (0,
|
|
42875
|
-
return /* @__PURE__ */ (0,
|
|
42876
|
-
/* @__PURE__ */ (0,
|
|
42877
|
-
/* @__PURE__ */ (0,
|
|
43202
|
+
const [viewMode, setViewMode] = (0, import_react86.useState)("list");
|
|
43203
|
+
return /* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { className: "px-4", children: [
|
|
43204
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { className: "flex justify-end items-center my-3 gap-1", children: [
|
|
43205
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("span", { className: "text-xs text-gray600 mr-2", children: [
|
|
42878
43206
|
creators.length,
|
|
42879
43207
|
" creators"
|
|
42880
43208
|
] }),
|
|
42881
|
-
/* @__PURE__ */ (0,
|
|
43209
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)(
|
|
42882
43210
|
"button",
|
|
42883
43211
|
{
|
|
42884
43212
|
className: `h-7 w-7 flex items-center justify-center rounded ${viewMode === "list" ? "bg-gray200" : ""}`,
|
|
42885
43213
|
onClick: () => setViewMode("list"),
|
|
42886
|
-
children: /* @__PURE__ */ (0,
|
|
43214
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime173.jsx)(
|
|
42887
43215
|
AlignJustify,
|
|
42888
43216
|
{
|
|
42889
43217
|
className: `h-5 w-5 ${viewMode === "list" ? "text-gray900 dark:text-white" : "text-gray500"}`
|
|
@@ -42891,12 +43219,12 @@ function CreatorDisplay({
|
|
|
42891
43219
|
)
|
|
42892
43220
|
}
|
|
42893
43221
|
),
|
|
42894
|
-
/* @__PURE__ */ (0,
|
|
43222
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)(
|
|
42895
43223
|
"button",
|
|
42896
43224
|
{
|
|
42897
43225
|
className: `h-7 w-7 flex items-center justify-center rounded ${viewMode === "grid" ? "bg-gray200" : ""}`,
|
|
42898
43226
|
onClick: () => setViewMode("grid"),
|
|
42899
|
-
children: /* @__PURE__ */ (0,
|
|
43227
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime173.jsx)(
|
|
42900
43228
|
LayoutGrid,
|
|
42901
43229
|
{
|
|
42902
43230
|
className: `h-5 w-5 ${viewMode === "grid" ? "text-gray900 dark:text-white" : "text-gray500"}`
|
|
@@ -42905,43 +43233,43 @@ function CreatorDisplay({
|
|
|
42905
43233
|
}
|
|
42906
43234
|
)
|
|
42907
43235
|
] }),
|
|
42908
|
-
creators.length > 0 ? viewMode === "list" ? /* @__PURE__ */ (0,
|
|
42909
|
-
/* @__PURE__ */ (0,
|
|
42910
|
-
/* @__PURE__ */ (0,
|
|
42911
|
-
/* @__PURE__ */ (0,
|
|
43236
|
+
creators.length > 0 ? viewMode === "list" ? /* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "space-y-4", children: creators.map((creator) => /* @__PURE__ */ (0, import_jsx_runtime173.jsx)(CreatorCard, { creator, isValidationComplete }, creator._id)) }) : /* @__PURE__ */ (0, import_jsx_runtime173.jsx)(CreatorGridView, { creatorData: creators }) : /* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { className: "text-center py-8 bg-gray100 rounded-lg border border-gray300", children: [
|
|
43237
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.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_runtime173.jsx)(Users, { className: "w-6 h-6 text-primary" }) }),
|
|
43238
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("h3", { className: "text-base font-medium text-gray900", children: "No creators found" }),
|
|
43239
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("p", { className: "mt-1 text-sm text-gray600", children: "Try adjusting your search criteria" })
|
|
42912
43240
|
] })
|
|
42913
43241
|
] });
|
|
42914
43242
|
}
|
|
42915
43243
|
function CreatorCardSkeleton() {
|
|
42916
|
-
return /* @__PURE__ */ (0,
|
|
42917
|
-
/* @__PURE__ */ (0,
|
|
42918
|
-
/* @__PURE__ */ (0,
|
|
42919
|
-
/* @__PURE__ */ (0,
|
|
42920
|
-
/* @__PURE__ */ (0,
|
|
42921
|
-
/* @__PURE__ */ (0,
|
|
42922
|
-
/* @__PURE__ */ (0,
|
|
42923
|
-
/* @__PURE__ */ (0,
|
|
43244
|
+
return /* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "bg-paperBackground rounded-[25px] py-5 pl-7 pr-7 border-2 border-gray300 shadow-sm", children: /* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { className: "flex flex-col gap-4 sm:grid sm:grid-cols-[1.3fr_1fr_2fr_120px] gap-8 items-start w-full", children: [
|
|
43245
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { className: "flex items-start gap-1 md:gap-6", children: [
|
|
43246
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "w-[5rem] h-[5rem] rounded-[10px] bg-gray200 animate-pulse" }),
|
|
43247
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { className: "flex flex-col gap-3", children: [
|
|
43248
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "h-5 w-36 rounded bg-gray200 animate-pulse" }),
|
|
43249
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "h-3 w-24 rounded bg-gray200 animate-pulse" }),
|
|
43250
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "h-3 w-32 rounded bg-gray200 animate-pulse" }),
|
|
43251
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "h-3 w-44 rounded bg-gray200 animate-pulse" })
|
|
42924
43252
|
] })
|
|
42925
43253
|
] }),
|
|
42926
|
-
/* @__PURE__ */ (0,
|
|
42927
|
-
/* @__PURE__ */ (0,
|
|
42928
|
-
/* @__PURE__ */ (0,
|
|
42929
|
-
/* @__PURE__ */ (0,
|
|
43254
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { className: "space-y-3 w-full", children: [
|
|
43255
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "h-4 w-32 rounded bg-gray200 animate-pulse" }),
|
|
43256
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "h-4 w-28 rounded bg-gray200 animate-pulse" }),
|
|
43257
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "h-4 w-24 rounded bg-gray200 animate-pulse" })
|
|
42930
43258
|
] }),
|
|
42931
|
-
/* @__PURE__ */ (0,
|
|
42932
|
-
/* @__PURE__ */ (0,
|
|
42933
|
-
/* @__PURE__ */ (0,
|
|
42934
|
-
/* @__PURE__ */ (0,
|
|
42935
|
-
/* @__PURE__ */ (0,
|
|
43259
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { className: "space-y-3 w-full", children: [
|
|
43260
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "h-4 w-40 rounded bg-gray200 animate-pulse" }),
|
|
43261
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "h-3 w-full rounded bg-gray200 animate-pulse" }),
|
|
43262
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "h-3 w-[90%] rounded bg-gray200 animate-pulse" }),
|
|
43263
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "h-3 w-[75%] rounded bg-gray200 animate-pulse" })
|
|
42936
43264
|
] }),
|
|
42937
|
-
/* @__PURE__ */ (0,
|
|
42938
|
-
/* @__PURE__ */ (0,
|
|
42939
|
-
/* @__PURE__ */ (0,
|
|
43265
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { className: "hidden md:flex flex-col items-center justify-center gap-3", children: [
|
|
43266
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "h-6 w-16 rounded bg-gray200 animate-pulse" }),
|
|
43267
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "h-4 w-20 rounded bg-gray200 animate-pulse" })
|
|
42940
43268
|
] })
|
|
42941
43269
|
] }) });
|
|
42942
43270
|
}
|
|
42943
43271
|
function CreatorDisplaySkeleton() {
|
|
42944
|
-
return /* @__PURE__ */ (0,
|
|
43272
|
+
return /* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "px-4 py-4 space-y-4", children: Array.from({ length: 3 }).map((_, idx) => /* @__PURE__ */ (0, import_jsx_runtime173.jsx)(CreatorCardSkeleton, {}, idx)) });
|
|
42945
43273
|
}
|
|
42946
43274
|
function CreatorExpandedPanel({
|
|
42947
43275
|
isOpen,
|
|
@@ -42952,10 +43280,10 @@ function CreatorExpandedPanel({
|
|
|
42952
43280
|
searchSpec,
|
|
42953
43281
|
fetchCreatorDetails
|
|
42954
43282
|
}) {
|
|
42955
|
-
const [creators, setCreators] = (0,
|
|
42956
|
-
const [loading, setLoading] = (0,
|
|
43283
|
+
const [creators, setCreators] = (0, import_react86.useState)([]);
|
|
43284
|
+
const [loading, setLoading] = (0, import_react86.useState)(false);
|
|
42957
43285
|
const fetcher = fetchCreatorDetails ?? defaultFetchCreatorDetails;
|
|
42958
|
-
const loadCreators = (0,
|
|
43286
|
+
const loadCreators = (0, import_react86.useCallback)(async () => {
|
|
42959
43287
|
if (!creatorIds.length) return;
|
|
42960
43288
|
setLoading(true);
|
|
42961
43289
|
try {
|
|
@@ -42967,15 +43295,15 @@ function CreatorExpandedPanel({
|
|
|
42967
43295
|
setLoading(false);
|
|
42968
43296
|
}
|
|
42969
43297
|
}, [creatorIds, sessionId, version, fetcher]);
|
|
42970
|
-
(0,
|
|
43298
|
+
(0, import_react86.useEffect)(() => {
|
|
42971
43299
|
if (isOpen && creatorIds.length > 0) {
|
|
42972
43300
|
loadCreators();
|
|
42973
43301
|
}
|
|
42974
43302
|
}, [isOpen, loadCreators]);
|
|
42975
43303
|
if (typeof window === "undefined") return null;
|
|
42976
43304
|
return import_react_dom2.default.createPortal(
|
|
42977
|
-
/* @__PURE__ */ (0,
|
|
42978
|
-
/* @__PURE__ */ (0,
|
|
43305
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)(import_framer_motion5.AnimatePresence, { mode: "sync", children: isOpen && /* @__PURE__ */ (0, import_jsx_runtime173.jsxs)(import_jsx_runtime173.Fragment, { children: [
|
|
43306
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)(
|
|
42979
43307
|
import_framer_motion5.motion.div,
|
|
42980
43308
|
{
|
|
42981
43309
|
initial: { opacity: 0 },
|
|
@@ -42990,7 +43318,7 @@ function CreatorExpandedPanel({
|
|
|
42990
43318
|
},
|
|
42991
43319
|
"overlay"
|
|
42992
43320
|
),
|
|
42993
|
-
/* @__PURE__ */ (0,
|
|
43321
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)(
|
|
42994
43322
|
import_framer_motion5.motion.div,
|
|
42995
43323
|
{
|
|
42996
43324
|
initial: { x: "100%" },
|
|
@@ -42998,19 +43326,19 @@ function CreatorExpandedPanel({
|
|
|
42998
43326
|
exit: { x: "100%" },
|
|
42999
43327
|
transition: { type: "spring", damping: 30, stiffness: 400 },
|
|
43000
43328
|
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",
|
|
43001
|
-
children: /* @__PURE__ */ (0,
|
|
43002
|
-
/* @__PURE__ */ (0,
|
|
43003
|
-
/* @__PURE__ */ (0,
|
|
43004
|
-
/* @__PURE__ */ (0,
|
|
43005
|
-
/* @__PURE__ */ (0,
|
|
43006
|
-
/* @__PURE__ */ (0,
|
|
43007
|
-
/* @__PURE__ */ (0,
|
|
43329
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { className: "py-4 font-noto", children: [
|
|
43330
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { className: "flex justify-between items-center w-full mb-4 pl-2", children: [
|
|
43331
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("button", { onClick: onClose, className: "p-2 rounded-full transition-colors", children: /* @__PURE__ */ (0, import_jsx_runtime173.jsx)(X, { className: "w-5 h-5" }) }),
|
|
43332
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { className: "flex-1 flex flex-col w-[80%]", children: [
|
|
43333
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "flex flex-col md:flex-row justify-between gap-2 md:gap-0 md:items-center pr-16", children: /* @__PURE__ */ (0, import_jsx_runtime173.jsxs)("div", { className: "flex flex-col", children: [
|
|
43334
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "w-fit rounded-md bg-purple200 px-2 py-[4px] mb-2", children: /* @__PURE__ */ (0, import_jsx_runtime173.jsx)("h4", { className: "text-xs font-medium text-purpleText", children: "VERIFIED SEARCH RESULTS" }) }),
|
|
43335
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("h2", { className: "text-xl font-bold mb-1", children: "Creators Search Results" })
|
|
43008
43336
|
] }) }),
|
|
43009
|
-
searchSpec && /* @__PURE__ */ (0,
|
|
43337
|
+
searchSpec && /* @__PURE__ */ (0, import_jsx_runtime173.jsx)(SearchSpecDisplay, { spec: searchSpec })
|
|
43010
43338
|
] })
|
|
43011
43339
|
] }),
|
|
43012
|
-
/* @__PURE__ */ (0,
|
|
43013
|
-
loading ? /* @__PURE__ */ (0,
|
|
43340
|
+
/* @__PURE__ */ (0, import_jsx_runtime173.jsx)("div", { className: "border-b border-gray300" }),
|
|
43341
|
+
loading ? /* @__PURE__ */ (0, import_jsx_runtime173.jsx)(CreatorDisplaySkeleton, {}) : /* @__PURE__ */ (0, import_jsx_runtime173.jsx)(CreatorDisplay, { creators, isValidationComplete: version !== void 0 })
|
|
43014
43342
|
] })
|
|
43015
43343
|
},
|
|
43016
43344
|
"creator-panel"
|
|
@@ -43021,7 +43349,7 @@ function CreatorExpandedPanel({
|
|
|
43021
43349
|
}
|
|
43022
43350
|
|
|
43023
43351
|
// src/molecules/creator-discovery/CreatorWidget/useCreatorWidgetPolling.ts
|
|
43024
|
-
var
|
|
43352
|
+
var import_react87 = require("react");
|
|
43025
43353
|
var DEFAULT_POLLING_CONFIG = {
|
|
43026
43354
|
pollInterval: 5e3,
|
|
43027
43355
|
maxDuration: 15 * 60 * 1e3,
|
|
@@ -43038,22 +43366,22 @@ function useCreatorWidgetPolling({
|
|
|
43038
43366
|
}) {
|
|
43039
43367
|
const fetchVersions = fetchVersionsProp ?? defaultFetchVersions;
|
|
43040
43368
|
const fetchStatus = fetchStatusProp ?? defaultFetchStatus;
|
|
43041
|
-
const config = (0,
|
|
43369
|
+
const config = (0, import_react87.useMemo)(
|
|
43042
43370
|
() => ({ ...DEFAULT_POLLING_CONFIG, ...pollingConfig }),
|
|
43043
43371
|
[pollingConfig]
|
|
43044
43372
|
);
|
|
43045
|
-
const [versionData, setVersionData] = (0,
|
|
43046
|
-
const [totalVersions, setTotalVersions] = (0,
|
|
43047
|
-
const [selectedVersion, setSelectedVersion] = (0,
|
|
43048
|
-
const [isLoadingVersion, setIsLoadingVersion] = (0,
|
|
43049
|
-
const [isValidationComplete, setIsValidationComplete] = (0,
|
|
43050
|
-
const [versionStatus, setVersionStatus] = (0,
|
|
43051
|
-
const [statusDetails, setStatusDetails] = (0,
|
|
43052
|
-
const [timeDisplay, setTimeDisplay] = (0,
|
|
43053
|
-
const [loadingStatus, setLoadingStatus] = (0,
|
|
43054
|
-
const remainingTimeRef = (0,
|
|
43373
|
+
const [versionData, setVersionData] = (0, import_react87.useState)(null);
|
|
43374
|
+
const [totalVersions, setTotalVersions] = (0, import_react87.useState)(0);
|
|
43375
|
+
const [selectedVersion, setSelectedVersion] = (0, import_react87.useState)();
|
|
43376
|
+
const [isLoadingVersion, setIsLoadingVersion] = (0, import_react87.useState)(false);
|
|
43377
|
+
const [isValidationComplete, setIsValidationComplete] = (0, import_react87.useState)(false);
|
|
43378
|
+
const [versionStatus, setVersionStatus] = (0, import_react87.useState)("checking");
|
|
43379
|
+
const [statusDetails, setStatusDetails] = (0, import_react87.useState)();
|
|
43380
|
+
const [timeDisplay, setTimeDisplay] = (0, import_react87.useState)("");
|
|
43381
|
+
const [loadingStatus, setLoadingStatus] = (0, import_react87.useState)(true);
|
|
43382
|
+
const remainingTimeRef = (0, import_react87.useRef)(0);
|
|
43055
43383
|
const requestedVersion = selectedVersion ?? currentVersion ?? versionData?.currentVersion;
|
|
43056
|
-
const fetchVersionData = (0,
|
|
43384
|
+
const fetchVersionData = (0, import_react87.useCallback)(async () => {
|
|
43057
43385
|
if (!sessionId) return;
|
|
43058
43386
|
if (!versionData) setIsLoadingVersion(true);
|
|
43059
43387
|
try {
|
|
@@ -43074,17 +43402,17 @@ function useCreatorWidgetPolling({
|
|
|
43074
43402
|
setIsLoadingVersion(false);
|
|
43075
43403
|
}
|
|
43076
43404
|
}, [sessionId, requestedVersion, isValidationComplete, fetchVersions, versionData]);
|
|
43077
|
-
(0,
|
|
43405
|
+
(0, import_react87.useEffect)(() => {
|
|
43078
43406
|
fetchVersionData();
|
|
43079
43407
|
}, [sessionId, requestedVersion, isValidationComplete]);
|
|
43080
|
-
(0,
|
|
43408
|
+
(0, import_react87.useEffect)(() => {
|
|
43081
43409
|
if (totalVersions > 0 || !sessionId) return;
|
|
43082
43410
|
const interval = setInterval(() => {
|
|
43083
43411
|
if (totalVersions === 0) fetchVersionData();
|
|
43084
43412
|
}, config.pollInterval);
|
|
43085
43413
|
return () => clearInterval(interval);
|
|
43086
43414
|
}, [totalVersions, sessionId, fetchVersionData, config.pollInterval]);
|
|
43087
|
-
(0,
|
|
43415
|
+
(0, import_react87.useEffect)(() => {
|
|
43088
43416
|
if (!selectedVersion && !requestedVersion) return;
|
|
43089
43417
|
const activeVersion = selectedVersion ?? requestedVersion;
|
|
43090
43418
|
let isMounted = true;
|
|
@@ -43167,7 +43495,7 @@ function useCreatorWidgetPolling({
|
|
|
43167
43495
|
stopPolling();
|
|
43168
43496
|
};
|
|
43169
43497
|
}, [selectedVersion, requestedVersion, sessionId]);
|
|
43170
|
-
const versionNumbers = (0,
|
|
43498
|
+
const versionNumbers = (0, import_react87.useMemo)(() => {
|
|
43171
43499
|
if (!totalVersions) return [];
|
|
43172
43500
|
return Array.from({ length: totalVersions }, (_, i) => i + 1);
|
|
43173
43501
|
}, [totalVersions]);
|
|
@@ -43194,7 +43522,7 @@ function useCreatorWidgetPolling({
|
|
|
43194
43522
|
}
|
|
43195
43523
|
|
|
43196
43524
|
// src/molecules/creator-discovery/CreatorWidget/CreatorWidget.tsx
|
|
43197
|
-
var
|
|
43525
|
+
var import_jsx_runtime174 = require("react/jsx-runtime");
|
|
43198
43526
|
function CreatorWidgetInner({
|
|
43199
43527
|
sessionId,
|
|
43200
43528
|
currentVersion,
|
|
@@ -43207,7 +43535,7 @@ function CreatorWidgetInner({
|
|
|
43207
43535
|
onAction,
|
|
43208
43536
|
className
|
|
43209
43537
|
}) {
|
|
43210
|
-
const [isExpanded, setIsExpanded] = (0,
|
|
43538
|
+
const [isExpanded, setIsExpanded] = (0, import_react88.useState)(false);
|
|
43211
43539
|
const {
|
|
43212
43540
|
versionNumbers,
|
|
43213
43541
|
selectedVersion,
|
|
@@ -43228,11 +43556,11 @@ function CreatorWidgetInner({
|
|
|
43228
43556
|
pollingConfig,
|
|
43229
43557
|
onStatusChange
|
|
43230
43558
|
});
|
|
43231
|
-
const handleVersionSelect = (0,
|
|
43559
|
+
const handleVersionSelect = (0, import_react88.useCallback)(
|
|
43232
43560
|
(version) => setSelectedVersion(version),
|
|
43233
43561
|
[setSelectedVersion]
|
|
43234
43562
|
);
|
|
43235
|
-
const handleViewCreators = (0,
|
|
43563
|
+
const handleViewCreators = (0, import_react88.useCallback)(() => {
|
|
43236
43564
|
setIsExpanded(true);
|
|
43237
43565
|
onAction?.({
|
|
43238
43566
|
type: "view-creators",
|
|
@@ -43242,8 +43570,8 @@ function CreatorWidgetInner({
|
|
|
43242
43570
|
searchSpec
|
|
43243
43571
|
});
|
|
43244
43572
|
}, [onAction, sessionId, creatorIds, selectedVersion, searchSpec]);
|
|
43245
|
-
return /* @__PURE__ */ (0,
|
|
43246
|
-
/* @__PURE__ */ (0,
|
|
43573
|
+
return /* @__PURE__ */ (0, import_jsx_runtime174.jsxs)("div", { className, children: [
|
|
43574
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsx)(
|
|
43247
43575
|
CreatorCompactView,
|
|
43248
43576
|
{
|
|
43249
43577
|
versions: versionNumbers,
|
|
@@ -43259,7 +43587,7 @@ function CreatorWidgetInner({
|
|
|
43259
43587
|
isLoading
|
|
43260
43588
|
}
|
|
43261
43589
|
),
|
|
43262
|
-
/* @__PURE__ */ (0,
|
|
43590
|
+
/* @__PURE__ */ (0, import_jsx_runtime174.jsx)(
|
|
43263
43591
|
CreatorExpandedPanel,
|
|
43264
43592
|
{
|
|
43265
43593
|
isOpen: isExpanded,
|
|
@@ -43273,7 +43601,7 @@ function CreatorWidgetInner({
|
|
|
43273
43601
|
)
|
|
43274
43602
|
] });
|
|
43275
43603
|
}
|
|
43276
|
-
var CreatorWidget = (0,
|
|
43604
|
+
var CreatorWidget = (0, import_react88.memo)(CreatorWidgetInner);
|
|
43277
43605
|
|
|
43278
43606
|
// src/components/ui/index.ts
|
|
43279
43607
|
var ui_exports = {};
|
|
@@ -43567,7 +43895,7 @@ __export(ui_exports, {
|
|
|
43567
43895
|
// src/components/ui/button-group.tsx
|
|
43568
43896
|
var import_react_slot4 = require("@radix-ui/react-slot");
|
|
43569
43897
|
var import_class_variance_authority8 = require("class-variance-authority");
|
|
43570
|
-
var
|
|
43898
|
+
var import_jsx_runtime175 = require("react/jsx-runtime");
|
|
43571
43899
|
var buttonGroupVariants = (0, import_class_variance_authority8.cva)(
|
|
43572
43900
|
"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",
|
|
43573
43901
|
{
|
|
@@ -43587,7 +43915,7 @@ function ButtonGroup({
|
|
|
43587
43915
|
orientation,
|
|
43588
43916
|
...props
|
|
43589
43917
|
}) {
|
|
43590
|
-
return /* @__PURE__ */ (0,
|
|
43918
|
+
return /* @__PURE__ */ (0, import_jsx_runtime175.jsx)(
|
|
43591
43919
|
"div",
|
|
43592
43920
|
{
|
|
43593
43921
|
role: "group",
|
|
@@ -43604,7 +43932,7 @@ function ButtonGroupText({
|
|
|
43604
43932
|
...props
|
|
43605
43933
|
}) {
|
|
43606
43934
|
const Comp = asChild ? import_react_slot4.Slot : "div";
|
|
43607
|
-
return /* @__PURE__ */ (0,
|
|
43935
|
+
return /* @__PURE__ */ (0, import_jsx_runtime175.jsx)(
|
|
43608
43936
|
Comp,
|
|
43609
43937
|
{
|
|
43610
43938
|
className: cn(
|
|
@@ -43620,7 +43948,7 @@ function ButtonGroupSeparator({
|
|
|
43620
43948
|
orientation = "vertical",
|
|
43621
43949
|
...props
|
|
43622
43950
|
}) {
|
|
43623
|
-
return /* @__PURE__ */ (0,
|
|
43951
|
+
return /* @__PURE__ */ (0, import_jsx_runtime175.jsx)(
|
|
43624
43952
|
Separator2,
|
|
43625
43953
|
{
|
|
43626
43954
|
"data-slot": "button-group-separator",
|
|
@@ -43636,9 +43964,9 @@ function ButtonGroupSeparator({
|
|
|
43636
43964
|
|
|
43637
43965
|
// src/components/ui/empty.tsx
|
|
43638
43966
|
var import_class_variance_authority9 = require("class-variance-authority");
|
|
43639
|
-
var
|
|
43967
|
+
var import_jsx_runtime176 = require("react/jsx-runtime");
|
|
43640
43968
|
function Empty({ className, ...props }) {
|
|
43641
|
-
return /* @__PURE__ */ (0,
|
|
43969
|
+
return /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(
|
|
43642
43970
|
"div",
|
|
43643
43971
|
{
|
|
43644
43972
|
"data-slot": "empty",
|
|
@@ -43651,7 +43979,7 @@ function Empty({ className, ...props }) {
|
|
|
43651
43979
|
);
|
|
43652
43980
|
}
|
|
43653
43981
|
function EmptyHeader({ className, ...props }) {
|
|
43654
|
-
return /* @__PURE__ */ (0,
|
|
43982
|
+
return /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(
|
|
43655
43983
|
"div",
|
|
43656
43984
|
{
|
|
43657
43985
|
"data-slot": "empty-header",
|
|
@@ -43682,7 +44010,7 @@ function EmptyMedia({
|
|
|
43682
44010
|
variant = "default",
|
|
43683
44011
|
...props
|
|
43684
44012
|
}) {
|
|
43685
|
-
return /* @__PURE__ */ (0,
|
|
44013
|
+
return /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(
|
|
43686
44014
|
"div",
|
|
43687
44015
|
{
|
|
43688
44016
|
"data-slot": "empty-icon",
|
|
@@ -43693,7 +44021,7 @@ function EmptyMedia({
|
|
|
43693
44021
|
);
|
|
43694
44022
|
}
|
|
43695
44023
|
function EmptyTitle({ className, ...props }) {
|
|
43696
|
-
return /* @__PURE__ */ (0,
|
|
44024
|
+
return /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(
|
|
43697
44025
|
"div",
|
|
43698
44026
|
{
|
|
43699
44027
|
"data-slot": "empty-title",
|
|
@@ -43703,7 +44031,7 @@ function EmptyTitle({ className, ...props }) {
|
|
|
43703
44031
|
);
|
|
43704
44032
|
}
|
|
43705
44033
|
function EmptyDescription({ className, ...props }) {
|
|
43706
|
-
return /* @__PURE__ */ (0,
|
|
44034
|
+
return /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(
|
|
43707
44035
|
"div",
|
|
43708
44036
|
{
|
|
43709
44037
|
"data-slot": "empty-description",
|
|
@@ -43716,7 +44044,7 @@ function EmptyDescription({ className, ...props }) {
|
|
|
43716
44044
|
);
|
|
43717
44045
|
}
|
|
43718
44046
|
function EmptyContent({ className, ...props }) {
|
|
43719
|
-
return /* @__PURE__ */ (0,
|
|
44047
|
+
return /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(
|
|
43720
44048
|
"div",
|
|
43721
44049
|
{
|
|
43722
44050
|
"data-slot": "empty-content",
|
|
@@ -43730,11 +44058,11 @@ function EmptyContent({ className, ...props }) {
|
|
|
43730
44058
|
}
|
|
43731
44059
|
|
|
43732
44060
|
// src/components/ui/field.tsx
|
|
43733
|
-
var
|
|
44061
|
+
var import_react89 = require("react");
|
|
43734
44062
|
var import_class_variance_authority10 = require("class-variance-authority");
|
|
43735
|
-
var
|
|
44063
|
+
var import_jsx_runtime177 = require("react/jsx-runtime");
|
|
43736
44064
|
function FieldSet({ className, ...props }) {
|
|
43737
|
-
return /* @__PURE__ */ (0,
|
|
44065
|
+
return /* @__PURE__ */ (0, import_jsx_runtime177.jsx)(
|
|
43738
44066
|
"fieldset",
|
|
43739
44067
|
{
|
|
43740
44068
|
"data-slot": "field-set",
|
|
@@ -43752,7 +44080,7 @@ function FieldLegend({
|
|
|
43752
44080
|
variant = "legend",
|
|
43753
44081
|
...props
|
|
43754
44082
|
}) {
|
|
43755
|
-
return /* @__PURE__ */ (0,
|
|
44083
|
+
return /* @__PURE__ */ (0, import_jsx_runtime177.jsx)(
|
|
43756
44084
|
"legend",
|
|
43757
44085
|
{
|
|
43758
44086
|
"data-slot": "field-legend",
|
|
@@ -43768,7 +44096,7 @@ function FieldLegend({
|
|
|
43768
44096
|
);
|
|
43769
44097
|
}
|
|
43770
44098
|
function FieldGroup({ className, ...props }) {
|
|
43771
|
-
return /* @__PURE__ */ (0,
|
|
44099
|
+
return /* @__PURE__ */ (0, import_jsx_runtime177.jsx)(
|
|
43772
44100
|
"div",
|
|
43773
44101
|
{
|
|
43774
44102
|
"data-slot": "field-group",
|
|
@@ -43808,7 +44136,7 @@ function Field({
|
|
|
43808
44136
|
orientation = "vertical",
|
|
43809
44137
|
...props
|
|
43810
44138
|
}) {
|
|
43811
|
-
return /* @__PURE__ */ (0,
|
|
44139
|
+
return /* @__PURE__ */ (0, import_jsx_runtime177.jsx)(
|
|
43812
44140
|
"div",
|
|
43813
44141
|
{
|
|
43814
44142
|
role: "group",
|
|
@@ -43820,7 +44148,7 @@ function Field({
|
|
|
43820
44148
|
);
|
|
43821
44149
|
}
|
|
43822
44150
|
function FieldContent({ className, ...props }) {
|
|
43823
|
-
return /* @__PURE__ */ (0,
|
|
44151
|
+
return /* @__PURE__ */ (0, import_jsx_runtime177.jsx)(
|
|
43824
44152
|
"div",
|
|
43825
44153
|
{
|
|
43826
44154
|
"data-slot": "field-content",
|
|
@@ -43836,7 +44164,7 @@ function FieldLabel({
|
|
|
43836
44164
|
className,
|
|
43837
44165
|
...props
|
|
43838
44166
|
}) {
|
|
43839
|
-
return /* @__PURE__ */ (0,
|
|
44167
|
+
return /* @__PURE__ */ (0, import_jsx_runtime177.jsx)(
|
|
43840
44168
|
Label,
|
|
43841
44169
|
{
|
|
43842
44170
|
"data-slot": "field-label",
|
|
@@ -43851,7 +44179,7 @@ function FieldLabel({
|
|
|
43851
44179
|
);
|
|
43852
44180
|
}
|
|
43853
44181
|
function FieldTitle({ className, ...props }) {
|
|
43854
|
-
return /* @__PURE__ */ (0,
|
|
44182
|
+
return /* @__PURE__ */ (0, import_jsx_runtime177.jsx)(
|
|
43855
44183
|
"div",
|
|
43856
44184
|
{
|
|
43857
44185
|
"data-slot": "field-label",
|
|
@@ -43864,7 +44192,7 @@ function FieldTitle({ className, ...props }) {
|
|
|
43864
44192
|
);
|
|
43865
44193
|
}
|
|
43866
44194
|
function FieldDescription({ className, ...props }) {
|
|
43867
|
-
return /* @__PURE__ */ (0,
|
|
44195
|
+
return /* @__PURE__ */ (0, import_jsx_runtime177.jsx)(
|
|
43868
44196
|
"p",
|
|
43869
44197
|
{
|
|
43870
44198
|
"data-slot": "field-description",
|
|
@@ -43883,7 +44211,7 @@ function FieldSeparator({
|
|
|
43883
44211
|
className,
|
|
43884
44212
|
...props
|
|
43885
44213
|
}) {
|
|
43886
|
-
return /* @__PURE__ */ (0,
|
|
44214
|
+
return /* @__PURE__ */ (0, import_jsx_runtime177.jsxs)(
|
|
43887
44215
|
"div",
|
|
43888
44216
|
{
|
|
43889
44217
|
"data-slot": "field-separator",
|
|
@@ -43894,8 +44222,8 @@ function FieldSeparator({
|
|
|
43894
44222
|
),
|
|
43895
44223
|
...props,
|
|
43896
44224
|
children: [
|
|
43897
|
-
/* @__PURE__ */ (0,
|
|
43898
|
-
children && /* @__PURE__ */ (0,
|
|
44225
|
+
/* @__PURE__ */ (0, import_jsx_runtime177.jsx)(Separator2, { className: "absolute inset-0 top-1/2" }),
|
|
44226
|
+
children && /* @__PURE__ */ (0, import_jsx_runtime177.jsx)(
|
|
43899
44227
|
"span",
|
|
43900
44228
|
{
|
|
43901
44229
|
className: "bg-background text-muted-foreground relative mx-auto block w-fit px-2",
|
|
@@ -43913,7 +44241,7 @@ function FieldError({
|
|
|
43913
44241
|
errors,
|
|
43914
44242
|
...props
|
|
43915
44243
|
}) {
|
|
43916
|
-
const content = (0,
|
|
44244
|
+
const content = (0, import_react89.useMemo)(() => {
|
|
43917
44245
|
if (children) {
|
|
43918
44246
|
return children;
|
|
43919
44247
|
}
|
|
@@ -43923,14 +44251,14 @@ function FieldError({
|
|
|
43923
44251
|
if (errors?.length === 1 && errors[0]?.message) {
|
|
43924
44252
|
return errors[0].message;
|
|
43925
44253
|
}
|
|
43926
|
-
return /* @__PURE__ */ (0,
|
|
43927
|
-
(error, index) => error?.message && /* @__PURE__ */ (0,
|
|
44254
|
+
return /* @__PURE__ */ (0, import_jsx_runtime177.jsx)("ul", { className: "ml-4 flex list-disc flex-col gap-1", children: errors.map(
|
|
44255
|
+
(error, index) => error?.message && /* @__PURE__ */ (0, import_jsx_runtime177.jsx)("li", { children: error.message }, index)
|
|
43928
44256
|
) });
|
|
43929
44257
|
}, [children, errors]);
|
|
43930
44258
|
if (!content) {
|
|
43931
44259
|
return null;
|
|
43932
44260
|
}
|
|
43933
|
-
return /* @__PURE__ */ (0,
|
|
44261
|
+
return /* @__PURE__ */ (0, import_jsx_runtime177.jsx)(
|
|
43934
44262
|
"div",
|
|
43935
44263
|
{
|
|
43936
44264
|
role: "alert",
|
|
@@ -43944,9 +44272,9 @@ function FieldError({
|
|
|
43944
44272
|
|
|
43945
44273
|
// src/components/ui/input-group.tsx
|
|
43946
44274
|
var import_class_variance_authority11 = require("class-variance-authority");
|
|
43947
|
-
var
|
|
44275
|
+
var import_jsx_runtime178 = require("react/jsx-runtime");
|
|
43948
44276
|
function InputGroup({ className, ...props }) {
|
|
43949
|
-
return /* @__PURE__ */ (0,
|
|
44277
|
+
return /* @__PURE__ */ (0, import_jsx_runtime178.jsx)(
|
|
43950
44278
|
"div",
|
|
43951
44279
|
{
|
|
43952
44280
|
"data-slot": "input-group",
|
|
@@ -43990,7 +44318,7 @@ function InputGroupAddon({
|
|
|
43990
44318
|
align = "inline-start",
|
|
43991
44319
|
...props
|
|
43992
44320
|
}) {
|
|
43993
|
-
return /* @__PURE__ */ (0,
|
|
44321
|
+
return /* @__PURE__ */ (0, import_jsx_runtime178.jsx)(
|
|
43994
44322
|
"div",
|
|
43995
44323
|
{
|
|
43996
44324
|
role: "group",
|
|
@@ -44030,7 +44358,7 @@ function InputGroupButton({
|
|
|
44030
44358
|
size = "xs",
|
|
44031
44359
|
...props
|
|
44032
44360
|
}) {
|
|
44033
|
-
return /* @__PURE__ */ (0,
|
|
44361
|
+
return /* @__PURE__ */ (0, import_jsx_runtime178.jsx)(
|
|
44034
44362
|
Button,
|
|
44035
44363
|
{
|
|
44036
44364
|
type,
|
|
@@ -44042,7 +44370,7 @@ function InputGroupButton({
|
|
|
44042
44370
|
);
|
|
44043
44371
|
}
|
|
44044
44372
|
function InputGroupText({ className, ...props }) {
|
|
44045
|
-
return /* @__PURE__ */ (0,
|
|
44373
|
+
return /* @__PURE__ */ (0, import_jsx_runtime178.jsx)(
|
|
44046
44374
|
"span",
|
|
44047
44375
|
{
|
|
44048
44376
|
className: cn(
|
|
@@ -44057,7 +44385,7 @@ function InputGroupInput({
|
|
|
44057
44385
|
className,
|
|
44058
44386
|
...props
|
|
44059
44387
|
}) {
|
|
44060
|
-
return /* @__PURE__ */ (0,
|
|
44388
|
+
return /* @__PURE__ */ (0, import_jsx_runtime178.jsx)(
|
|
44061
44389
|
Input,
|
|
44062
44390
|
{
|
|
44063
44391
|
"data-slot": "input-group-control",
|
|
@@ -44073,7 +44401,7 @@ function InputGroupTextarea({
|
|
|
44073
44401
|
className,
|
|
44074
44402
|
...props
|
|
44075
44403
|
}) {
|
|
44076
|
-
return /* @__PURE__ */ (0,
|
|
44404
|
+
return /* @__PURE__ */ (0, import_jsx_runtime178.jsx)(
|
|
44077
44405
|
Textarea,
|
|
44078
44406
|
{
|
|
44079
44407
|
"data-slot": "input-group-control",
|
|
@@ -44089,9 +44417,9 @@ function InputGroupTextarea({
|
|
|
44089
44417
|
// src/components/ui/item.tsx
|
|
44090
44418
|
var import_react_slot5 = require("@radix-ui/react-slot");
|
|
44091
44419
|
var import_class_variance_authority12 = require("class-variance-authority");
|
|
44092
|
-
var
|
|
44420
|
+
var import_jsx_runtime179 = require("react/jsx-runtime");
|
|
44093
44421
|
function ItemGroup({ className, ...props }) {
|
|
44094
|
-
return /* @__PURE__ */ (0,
|
|
44422
|
+
return /* @__PURE__ */ (0, import_jsx_runtime179.jsx)(
|
|
44095
44423
|
"div",
|
|
44096
44424
|
{
|
|
44097
44425
|
role: "list",
|
|
@@ -44105,7 +44433,7 @@ function ItemSeparator({
|
|
|
44105
44433
|
className,
|
|
44106
44434
|
...props
|
|
44107
44435
|
}) {
|
|
44108
|
-
return /* @__PURE__ */ (0,
|
|
44436
|
+
return /* @__PURE__ */ (0, import_jsx_runtime179.jsx)(
|
|
44109
44437
|
Separator2,
|
|
44110
44438
|
{
|
|
44111
44439
|
"data-slot": "item-separator",
|
|
@@ -44143,7 +44471,7 @@ function Item8({
|
|
|
44143
44471
|
...props
|
|
44144
44472
|
}) {
|
|
44145
44473
|
const Comp = asChild ? import_react_slot5.Slot : "div";
|
|
44146
|
-
return /* @__PURE__ */ (0,
|
|
44474
|
+
return /* @__PURE__ */ (0, import_jsx_runtime179.jsx)(
|
|
44147
44475
|
Comp,
|
|
44148
44476
|
{
|
|
44149
44477
|
"data-slot": "item",
|
|
@@ -44174,7 +44502,7 @@ function ItemMedia({
|
|
|
44174
44502
|
variant = "default",
|
|
44175
44503
|
...props
|
|
44176
44504
|
}) {
|
|
44177
|
-
return /* @__PURE__ */ (0,
|
|
44505
|
+
return /* @__PURE__ */ (0, import_jsx_runtime179.jsx)(
|
|
44178
44506
|
"div",
|
|
44179
44507
|
{
|
|
44180
44508
|
"data-slot": "item-media",
|
|
@@ -44185,7 +44513,7 @@ function ItemMedia({
|
|
|
44185
44513
|
);
|
|
44186
44514
|
}
|
|
44187
44515
|
function ItemContent({ className, ...props }) {
|
|
44188
|
-
return /* @__PURE__ */ (0,
|
|
44516
|
+
return /* @__PURE__ */ (0, import_jsx_runtime179.jsx)(
|
|
44189
44517
|
"div",
|
|
44190
44518
|
{
|
|
44191
44519
|
"data-slot": "item-content",
|
|
@@ -44198,7 +44526,7 @@ function ItemContent({ className, ...props }) {
|
|
|
44198
44526
|
);
|
|
44199
44527
|
}
|
|
44200
44528
|
function ItemTitle({ className, ...props }) {
|
|
44201
|
-
return /* @__PURE__ */ (0,
|
|
44529
|
+
return /* @__PURE__ */ (0, import_jsx_runtime179.jsx)(
|
|
44202
44530
|
"div",
|
|
44203
44531
|
{
|
|
44204
44532
|
"data-slot": "item-title",
|
|
@@ -44211,7 +44539,7 @@ function ItemTitle({ className, ...props }) {
|
|
|
44211
44539
|
);
|
|
44212
44540
|
}
|
|
44213
44541
|
function ItemDescription({ className, ...props }) {
|
|
44214
|
-
return /* @__PURE__ */ (0,
|
|
44542
|
+
return /* @__PURE__ */ (0, import_jsx_runtime179.jsx)(
|
|
44215
44543
|
"p",
|
|
44216
44544
|
{
|
|
44217
44545
|
"data-slot": "item-description",
|
|
@@ -44225,7 +44553,7 @@ function ItemDescription({ className, ...props }) {
|
|
|
44225
44553
|
);
|
|
44226
44554
|
}
|
|
44227
44555
|
function ItemActions({ className, ...props }) {
|
|
44228
|
-
return /* @__PURE__ */ (0,
|
|
44556
|
+
return /* @__PURE__ */ (0, import_jsx_runtime179.jsx)(
|
|
44229
44557
|
"div",
|
|
44230
44558
|
{
|
|
44231
44559
|
"data-slot": "item-actions",
|
|
@@ -44235,7 +44563,7 @@ function ItemActions({ className, ...props }) {
|
|
|
44235
44563
|
);
|
|
44236
44564
|
}
|
|
44237
44565
|
function ItemHeader({ className, ...props }) {
|
|
44238
|
-
return /* @__PURE__ */ (0,
|
|
44566
|
+
return /* @__PURE__ */ (0, import_jsx_runtime179.jsx)(
|
|
44239
44567
|
"div",
|
|
44240
44568
|
{
|
|
44241
44569
|
"data-slot": "item-header",
|
|
@@ -44248,7 +44576,7 @@ function ItemHeader({ className, ...props }) {
|
|
|
44248
44576
|
);
|
|
44249
44577
|
}
|
|
44250
44578
|
function ItemFooter({ className, ...props }) {
|
|
44251
|
-
return /* @__PURE__ */ (0,
|
|
44579
|
+
return /* @__PURE__ */ (0, import_jsx_runtime179.jsx)(
|
|
44252
44580
|
"div",
|
|
44253
44581
|
{
|
|
44254
44582
|
"data-slot": "item-footer",
|
|
@@ -44262,9 +44590,9 @@ function ItemFooter({ className, ...props }) {
|
|
|
44262
44590
|
}
|
|
44263
44591
|
|
|
44264
44592
|
// src/components/ui/kbd.tsx
|
|
44265
|
-
var
|
|
44593
|
+
var import_jsx_runtime180 = require("react/jsx-runtime");
|
|
44266
44594
|
function Kbd({ className, ...props }) {
|
|
44267
|
-
return /* @__PURE__ */ (0,
|
|
44595
|
+
return /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(
|
|
44268
44596
|
"kbd",
|
|
44269
44597
|
{
|
|
44270
44598
|
"data-slot": "kbd",
|
|
@@ -44279,7 +44607,7 @@ function Kbd({ className, ...props }) {
|
|
|
44279
44607
|
);
|
|
44280
44608
|
}
|
|
44281
44609
|
function KbdGroup({ className, ...props }) {
|
|
44282
|
-
return /* @__PURE__ */ (0,
|
|
44610
|
+
return /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(
|
|
44283
44611
|
"kbd",
|
|
44284
44612
|
{
|
|
44285
44613
|
"data-slot": "kbd-group",
|
|
@@ -44290,16 +44618,16 @@ function KbdGroup({ className, ...props }) {
|
|
|
44290
44618
|
}
|
|
44291
44619
|
|
|
44292
44620
|
// src/components/ui/sidebar.tsx
|
|
44293
|
-
var
|
|
44621
|
+
var React112 = __toESM(require("react"), 1);
|
|
44294
44622
|
var import_react_slot6 = require("@radix-ui/react-slot");
|
|
44295
44623
|
var import_class_variance_authority13 = require("class-variance-authority");
|
|
44296
44624
|
|
|
44297
44625
|
// src/hooks/use-mobile.tsx
|
|
44298
|
-
var
|
|
44626
|
+
var React111 = __toESM(require("react"), 1);
|
|
44299
44627
|
var MOBILE_BREAKPOINT = 768;
|
|
44300
44628
|
function useIsMobile() {
|
|
44301
|
-
const [isMobile, setIsMobile] =
|
|
44302
|
-
|
|
44629
|
+
const [isMobile, setIsMobile] = React111.useState(void 0);
|
|
44630
|
+
React111.useEffect(() => {
|
|
44303
44631
|
const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
|
|
44304
44632
|
const onChange = () => {
|
|
44305
44633
|
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
@@ -44312,22 +44640,22 @@ function useIsMobile() {
|
|
|
44312
44640
|
}
|
|
44313
44641
|
|
|
44314
44642
|
// src/components/ui/sidebar.tsx
|
|
44315
|
-
var
|
|
44643
|
+
var import_jsx_runtime181 = require("react/jsx-runtime");
|
|
44316
44644
|
var SIDEBAR_COOKIE_NAME = "sidebar_state";
|
|
44317
44645
|
var SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
|
|
44318
44646
|
var SIDEBAR_WIDTH = "16rem";
|
|
44319
44647
|
var SIDEBAR_WIDTH_MOBILE = "18rem";
|
|
44320
44648
|
var SIDEBAR_WIDTH_ICON = "3rem";
|
|
44321
44649
|
var SIDEBAR_KEYBOARD_SHORTCUT = "b";
|
|
44322
|
-
var SidebarContext =
|
|
44650
|
+
var SidebarContext = React112.createContext(null);
|
|
44323
44651
|
function useSidebar() {
|
|
44324
|
-
const context =
|
|
44652
|
+
const context = React112.useContext(SidebarContext);
|
|
44325
44653
|
if (!context) {
|
|
44326
44654
|
throw new Error("useSidebar must be used within a SidebarProvider.");
|
|
44327
44655
|
}
|
|
44328
44656
|
return context;
|
|
44329
44657
|
}
|
|
44330
|
-
var SidebarProvider =
|
|
44658
|
+
var SidebarProvider = React112.forwardRef(
|
|
44331
44659
|
({
|
|
44332
44660
|
defaultOpen = true,
|
|
44333
44661
|
open: openProp,
|
|
@@ -44338,10 +44666,10 @@ var SidebarProvider = React111.forwardRef(
|
|
|
44338
44666
|
...props
|
|
44339
44667
|
}, ref) => {
|
|
44340
44668
|
const isMobile = useIsMobile();
|
|
44341
|
-
const [openMobile, setOpenMobile] =
|
|
44342
|
-
const [_open, _setOpen] =
|
|
44669
|
+
const [openMobile, setOpenMobile] = React112.useState(false);
|
|
44670
|
+
const [_open, _setOpen] = React112.useState(defaultOpen);
|
|
44343
44671
|
const open = openProp ?? _open;
|
|
44344
|
-
const setOpen =
|
|
44672
|
+
const setOpen = React112.useCallback(
|
|
44345
44673
|
(value) => {
|
|
44346
44674
|
const openState = typeof value === "function" ? value(open) : value;
|
|
44347
44675
|
if (setOpenProp) {
|
|
@@ -44353,10 +44681,10 @@ var SidebarProvider = React111.forwardRef(
|
|
|
44353
44681
|
},
|
|
44354
44682
|
[setOpenProp, open]
|
|
44355
44683
|
);
|
|
44356
|
-
const toggleSidebar =
|
|
44684
|
+
const toggleSidebar = React112.useCallback(() => {
|
|
44357
44685
|
return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
|
|
44358
44686
|
}, [isMobile, setOpen, setOpenMobile]);
|
|
44359
|
-
|
|
44687
|
+
React112.useEffect(() => {
|
|
44360
44688
|
const handleKeyDown = (event) => {
|
|
44361
44689
|
if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
|
|
44362
44690
|
event.preventDefault();
|
|
@@ -44367,7 +44695,7 @@ var SidebarProvider = React111.forwardRef(
|
|
|
44367
44695
|
return () => window.removeEventListener("keydown", handleKeyDown);
|
|
44368
44696
|
}, [toggleSidebar]);
|
|
44369
44697
|
const state = open ? "expanded" : "collapsed";
|
|
44370
|
-
const contextValue =
|
|
44698
|
+
const contextValue = React112.useMemo(
|
|
44371
44699
|
() => ({
|
|
44372
44700
|
state,
|
|
44373
44701
|
open,
|
|
@@ -44379,7 +44707,7 @@ var SidebarProvider = React111.forwardRef(
|
|
|
44379
44707
|
}),
|
|
44380
44708
|
[state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]
|
|
44381
44709
|
);
|
|
44382
|
-
return /* @__PURE__ */ (0,
|
|
44710
|
+
return /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
|
|
44383
44711
|
"div",
|
|
44384
44712
|
{
|
|
44385
44713
|
style: {
|
|
@@ -44399,7 +44727,7 @@ var SidebarProvider = React111.forwardRef(
|
|
|
44399
44727
|
}
|
|
44400
44728
|
);
|
|
44401
44729
|
SidebarProvider.displayName = "SidebarProvider";
|
|
44402
|
-
var Sidebar =
|
|
44730
|
+
var Sidebar = React112.forwardRef(
|
|
44403
44731
|
({
|
|
44404
44732
|
side = "left",
|
|
44405
44733
|
variant = "sidebar",
|
|
@@ -44410,7 +44738,7 @@ var Sidebar = React111.forwardRef(
|
|
|
44410
44738
|
}, ref) => {
|
|
44411
44739
|
const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
|
|
44412
44740
|
if (collapsible === "none") {
|
|
44413
|
-
return /* @__PURE__ */ (0,
|
|
44741
|
+
return /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
|
|
44414
44742
|
"div",
|
|
44415
44743
|
{
|
|
44416
44744
|
className: cn(
|
|
@@ -44424,7 +44752,7 @@ var Sidebar = React111.forwardRef(
|
|
|
44424
44752
|
);
|
|
44425
44753
|
}
|
|
44426
44754
|
if (isMobile) {
|
|
44427
|
-
return /* @__PURE__ */ (0,
|
|
44755
|
+
return /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(Sheet2, { open: openMobile, onOpenChange: setOpenMobile, ...props, children: /* @__PURE__ */ (0, import_jsx_runtime181.jsxs)(
|
|
44428
44756
|
SheetContent,
|
|
44429
44757
|
{
|
|
44430
44758
|
"data-sidebar": "sidebar",
|
|
@@ -44435,16 +44763,16 @@ var Sidebar = React111.forwardRef(
|
|
|
44435
44763
|
},
|
|
44436
44764
|
side,
|
|
44437
44765
|
children: [
|
|
44438
|
-
/* @__PURE__ */ (0,
|
|
44439
|
-
/* @__PURE__ */ (0,
|
|
44440
|
-
/* @__PURE__ */ (0,
|
|
44766
|
+
/* @__PURE__ */ (0, import_jsx_runtime181.jsxs)(SheetHeader, { className: "sr-only", children: [
|
|
44767
|
+
/* @__PURE__ */ (0, import_jsx_runtime181.jsx)(SheetTitle, { children: "Sidebar" }),
|
|
44768
|
+
/* @__PURE__ */ (0, import_jsx_runtime181.jsx)(SheetDescription, { children: "Displays the mobile sidebar." })
|
|
44441
44769
|
] }),
|
|
44442
|
-
/* @__PURE__ */ (0,
|
|
44770
|
+
/* @__PURE__ */ (0, import_jsx_runtime181.jsx)("div", { className: "flex h-full w-full flex-col", children })
|
|
44443
44771
|
]
|
|
44444
44772
|
}
|
|
44445
44773
|
) });
|
|
44446
44774
|
}
|
|
44447
|
-
return /* @__PURE__ */ (0,
|
|
44775
|
+
return /* @__PURE__ */ (0, import_jsx_runtime181.jsxs)(
|
|
44448
44776
|
"div",
|
|
44449
44777
|
{
|
|
44450
44778
|
ref,
|
|
@@ -44454,7 +44782,7 @@ var Sidebar = React111.forwardRef(
|
|
|
44454
44782
|
"data-variant": variant,
|
|
44455
44783
|
"data-side": side,
|
|
44456
44784
|
children: [
|
|
44457
|
-
/* @__PURE__ */ (0,
|
|
44785
|
+
/* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
|
|
44458
44786
|
"div",
|
|
44459
44787
|
{
|
|
44460
44788
|
className: cn(
|
|
@@ -44465,7 +44793,7 @@ var Sidebar = React111.forwardRef(
|
|
|
44465
44793
|
)
|
|
44466
44794
|
}
|
|
44467
44795
|
),
|
|
44468
|
-
/* @__PURE__ */ (0,
|
|
44796
|
+
/* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
|
|
44469
44797
|
"div",
|
|
44470
44798
|
{
|
|
44471
44799
|
className: cn(
|
|
@@ -44476,7 +44804,7 @@ var Sidebar = React111.forwardRef(
|
|
|
44476
44804
|
className
|
|
44477
44805
|
),
|
|
44478
44806
|
...props,
|
|
44479
|
-
children: /* @__PURE__ */ (0,
|
|
44807
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
|
|
44480
44808
|
"div",
|
|
44481
44809
|
{
|
|
44482
44810
|
"data-sidebar": "sidebar",
|
|
@@ -44492,9 +44820,9 @@ var Sidebar = React111.forwardRef(
|
|
|
44492
44820
|
}
|
|
44493
44821
|
);
|
|
44494
44822
|
Sidebar.displayName = "Sidebar";
|
|
44495
|
-
var SidebarTrigger =
|
|
44823
|
+
var SidebarTrigger = React112.forwardRef(({ className, onClick, ...props }, ref) => {
|
|
44496
44824
|
const { toggleSidebar } = useSidebar();
|
|
44497
|
-
return /* @__PURE__ */ (0,
|
|
44825
|
+
return /* @__PURE__ */ (0, import_jsx_runtime181.jsxs)(
|
|
44498
44826
|
Button,
|
|
44499
44827
|
{
|
|
44500
44828
|
ref,
|
|
@@ -44508,16 +44836,16 @@ var SidebarTrigger = React111.forwardRef(({ className, onClick, ...props }, ref)
|
|
|
44508
44836
|
},
|
|
44509
44837
|
...props,
|
|
44510
44838
|
children: [
|
|
44511
|
-
/* @__PURE__ */ (0,
|
|
44512
|
-
/* @__PURE__ */ (0,
|
|
44839
|
+
/* @__PURE__ */ (0, import_jsx_runtime181.jsx)(PanelLeft, {}),
|
|
44840
|
+
/* @__PURE__ */ (0, import_jsx_runtime181.jsx)("span", { className: "sr-only", children: "Toggle Sidebar" })
|
|
44513
44841
|
]
|
|
44514
44842
|
}
|
|
44515
44843
|
);
|
|
44516
44844
|
});
|
|
44517
44845
|
SidebarTrigger.displayName = "SidebarTrigger";
|
|
44518
|
-
var SidebarRail =
|
|
44846
|
+
var SidebarRail = React112.forwardRef(({ className, ...props }, ref) => {
|
|
44519
44847
|
const { toggleSidebar } = useSidebar();
|
|
44520
|
-
return /* @__PURE__ */ (0,
|
|
44848
|
+
return /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
|
|
44521
44849
|
"button",
|
|
44522
44850
|
{
|
|
44523
44851
|
ref,
|
|
@@ -44540,8 +44868,8 @@ var SidebarRail = React111.forwardRef(({ className, ...props }, ref) => {
|
|
|
44540
44868
|
);
|
|
44541
44869
|
});
|
|
44542
44870
|
SidebarRail.displayName = "SidebarRail";
|
|
44543
|
-
var SidebarInset =
|
|
44544
|
-
return /* @__PURE__ */ (0,
|
|
44871
|
+
var SidebarInset = React112.forwardRef(({ className, ...props }, ref) => {
|
|
44872
|
+
return /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
|
|
44545
44873
|
"main",
|
|
44546
44874
|
{
|
|
44547
44875
|
ref,
|
|
@@ -44555,8 +44883,8 @@ var SidebarInset = React111.forwardRef(({ className, ...props }, ref) => {
|
|
|
44555
44883
|
);
|
|
44556
44884
|
});
|
|
44557
44885
|
SidebarInset.displayName = "SidebarInset";
|
|
44558
|
-
var SidebarInput =
|
|
44559
|
-
return /* @__PURE__ */ (0,
|
|
44886
|
+
var SidebarInput = React112.forwardRef(({ className, ...props }, ref) => {
|
|
44887
|
+
return /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
|
|
44560
44888
|
Input,
|
|
44561
44889
|
{
|
|
44562
44890
|
ref,
|
|
@@ -44570,8 +44898,8 @@ var SidebarInput = React111.forwardRef(({ className, ...props }, ref) => {
|
|
|
44570
44898
|
);
|
|
44571
44899
|
});
|
|
44572
44900
|
SidebarInput.displayName = "SidebarInput";
|
|
44573
|
-
var SidebarHeader =
|
|
44574
|
-
return /* @__PURE__ */ (0,
|
|
44901
|
+
var SidebarHeader = React112.forwardRef(({ className, ...props }, ref) => {
|
|
44902
|
+
return /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
|
|
44575
44903
|
"div",
|
|
44576
44904
|
{
|
|
44577
44905
|
ref,
|
|
@@ -44582,8 +44910,8 @@ var SidebarHeader = React111.forwardRef(({ className, ...props }, ref) => {
|
|
|
44582
44910
|
);
|
|
44583
44911
|
});
|
|
44584
44912
|
SidebarHeader.displayName = "SidebarHeader";
|
|
44585
|
-
var SidebarFooter =
|
|
44586
|
-
return /* @__PURE__ */ (0,
|
|
44913
|
+
var SidebarFooter = React112.forwardRef(({ className, ...props }, ref) => {
|
|
44914
|
+
return /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
|
|
44587
44915
|
"div",
|
|
44588
44916
|
{
|
|
44589
44917
|
ref,
|
|
@@ -44594,8 +44922,8 @@ var SidebarFooter = React111.forwardRef(({ className, ...props }, ref) => {
|
|
|
44594
44922
|
);
|
|
44595
44923
|
});
|
|
44596
44924
|
SidebarFooter.displayName = "SidebarFooter";
|
|
44597
|
-
var SidebarSeparator =
|
|
44598
|
-
return /* @__PURE__ */ (0,
|
|
44925
|
+
var SidebarSeparator = React112.forwardRef(({ className, ...props }, ref) => {
|
|
44926
|
+
return /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
|
|
44599
44927
|
Separator2,
|
|
44600
44928
|
{
|
|
44601
44929
|
ref,
|
|
@@ -44606,8 +44934,8 @@ var SidebarSeparator = React111.forwardRef(({ className, ...props }, ref) => {
|
|
|
44606
44934
|
);
|
|
44607
44935
|
});
|
|
44608
44936
|
SidebarSeparator.displayName = "SidebarSeparator";
|
|
44609
|
-
var SidebarContent =
|
|
44610
|
-
return /* @__PURE__ */ (0,
|
|
44937
|
+
var SidebarContent = React112.forwardRef(({ className, ...props }, ref) => {
|
|
44938
|
+
return /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
|
|
44611
44939
|
"div",
|
|
44612
44940
|
{
|
|
44613
44941
|
ref,
|
|
@@ -44621,8 +44949,8 @@ var SidebarContent = React111.forwardRef(({ className, ...props }, ref) => {
|
|
|
44621
44949
|
);
|
|
44622
44950
|
});
|
|
44623
44951
|
SidebarContent.displayName = "SidebarContent";
|
|
44624
|
-
var SidebarGroup =
|
|
44625
|
-
return /* @__PURE__ */ (0,
|
|
44952
|
+
var SidebarGroup = React112.forwardRef(({ className, ...props }, ref) => {
|
|
44953
|
+
return /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
|
|
44626
44954
|
"div",
|
|
44627
44955
|
{
|
|
44628
44956
|
ref,
|
|
@@ -44633,9 +44961,9 @@ var SidebarGroup = React111.forwardRef(({ className, ...props }, ref) => {
|
|
|
44633
44961
|
);
|
|
44634
44962
|
});
|
|
44635
44963
|
SidebarGroup.displayName = "SidebarGroup";
|
|
44636
|
-
var SidebarGroupLabel =
|
|
44964
|
+
var SidebarGroupLabel = React112.forwardRef(({ className, asChild = false, ...props }, ref) => {
|
|
44637
44965
|
const Comp = asChild ? import_react_slot6.Slot : "div";
|
|
44638
|
-
return /* @__PURE__ */ (0,
|
|
44966
|
+
return /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
|
|
44639
44967
|
Comp,
|
|
44640
44968
|
{
|
|
44641
44969
|
ref,
|
|
@@ -44650,9 +44978,9 @@ var SidebarGroupLabel = React111.forwardRef(({ className, asChild = false, ...pr
|
|
|
44650
44978
|
);
|
|
44651
44979
|
});
|
|
44652
44980
|
SidebarGroupLabel.displayName = "SidebarGroupLabel";
|
|
44653
|
-
var SidebarGroupAction =
|
|
44981
|
+
var SidebarGroupAction = React112.forwardRef(({ className, asChild = false, ...props }, ref) => {
|
|
44654
44982
|
const Comp = asChild ? import_react_slot6.Slot : "button";
|
|
44655
|
-
return /* @__PURE__ */ (0,
|
|
44983
|
+
return /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
|
|
44656
44984
|
Comp,
|
|
44657
44985
|
{
|
|
44658
44986
|
ref,
|
|
@@ -44669,7 +44997,7 @@ var SidebarGroupAction = React111.forwardRef(({ className, asChild = false, ...p
|
|
|
44669
44997
|
);
|
|
44670
44998
|
});
|
|
44671
44999
|
SidebarGroupAction.displayName = "SidebarGroupAction";
|
|
44672
|
-
var SidebarGroupContent =
|
|
45000
|
+
var SidebarGroupContent = React112.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
|
|
44673
45001
|
"div",
|
|
44674
45002
|
{
|
|
44675
45003
|
ref,
|
|
@@ -44679,7 +45007,7 @@ var SidebarGroupContent = React111.forwardRef(({ className, ...props }, ref) =>
|
|
|
44679
45007
|
}
|
|
44680
45008
|
));
|
|
44681
45009
|
SidebarGroupContent.displayName = "SidebarGroupContent";
|
|
44682
|
-
var SidebarMenu =
|
|
45010
|
+
var SidebarMenu = React112.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
|
|
44683
45011
|
"ul",
|
|
44684
45012
|
{
|
|
44685
45013
|
ref,
|
|
@@ -44689,7 +45017,7 @@ var SidebarMenu = React111.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
44689
45017
|
}
|
|
44690
45018
|
));
|
|
44691
45019
|
SidebarMenu.displayName = "SidebarMenu";
|
|
44692
|
-
var SidebarMenuItem =
|
|
45020
|
+
var SidebarMenuItem = React112.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
|
|
44693
45021
|
"li",
|
|
44694
45022
|
{
|
|
44695
45023
|
ref,
|
|
@@ -44719,7 +45047,7 @@ var sidebarMenuButtonVariants = (0, import_class_variance_authority13.cva)(
|
|
|
44719
45047
|
}
|
|
44720
45048
|
}
|
|
44721
45049
|
);
|
|
44722
|
-
var SidebarMenuButton =
|
|
45050
|
+
var SidebarMenuButton = React112.forwardRef(
|
|
44723
45051
|
({
|
|
44724
45052
|
asChild = false,
|
|
44725
45053
|
isActive = false,
|
|
@@ -44731,7 +45059,7 @@ var SidebarMenuButton = React111.forwardRef(
|
|
|
44731
45059
|
}, ref) => {
|
|
44732
45060
|
const Comp = asChild ? import_react_slot6.Slot : "button";
|
|
44733
45061
|
const { isMobile, state } = useSidebar();
|
|
44734
|
-
const button = /* @__PURE__ */ (0,
|
|
45062
|
+
const button = /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
|
|
44735
45063
|
Comp,
|
|
44736
45064
|
{
|
|
44737
45065
|
ref,
|
|
@@ -44750,9 +45078,9 @@ var SidebarMenuButton = React111.forwardRef(
|
|
|
44750
45078
|
children: tooltip
|
|
44751
45079
|
};
|
|
44752
45080
|
}
|
|
44753
|
-
return /* @__PURE__ */ (0,
|
|
44754
|
-
/* @__PURE__ */ (0,
|
|
44755
|
-
/* @__PURE__ */ (0,
|
|
45081
|
+
return /* @__PURE__ */ (0, import_jsx_runtime181.jsxs)(Tooltip, { children: [
|
|
45082
|
+
/* @__PURE__ */ (0, import_jsx_runtime181.jsx)(TooltipTrigger, { asChild: true, children: button }),
|
|
45083
|
+
/* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
|
|
44756
45084
|
TooltipContent,
|
|
44757
45085
|
{
|
|
44758
45086
|
side: "right",
|
|
@@ -44765,9 +45093,9 @@ var SidebarMenuButton = React111.forwardRef(
|
|
|
44765
45093
|
}
|
|
44766
45094
|
);
|
|
44767
45095
|
SidebarMenuButton.displayName = "SidebarMenuButton";
|
|
44768
|
-
var SidebarMenuAction =
|
|
45096
|
+
var SidebarMenuAction = React112.forwardRef(({ className, asChild = false, showOnHover = false, ...props }, ref) => {
|
|
44769
45097
|
const Comp = asChild ? import_react_slot6.Slot : "button";
|
|
44770
|
-
return /* @__PURE__ */ (0,
|
|
45098
|
+
return /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
|
|
44771
45099
|
Comp,
|
|
44772
45100
|
{
|
|
44773
45101
|
ref,
|
|
@@ -44788,7 +45116,7 @@ var SidebarMenuAction = React111.forwardRef(({ className, asChild = false, showO
|
|
|
44788
45116
|
);
|
|
44789
45117
|
});
|
|
44790
45118
|
SidebarMenuAction.displayName = "SidebarMenuAction";
|
|
44791
|
-
var SidebarMenuBadge =
|
|
45119
|
+
var SidebarMenuBadge = React112.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
|
|
44792
45120
|
"div",
|
|
44793
45121
|
{
|
|
44794
45122
|
ref,
|
|
@@ -44806,11 +45134,11 @@ var SidebarMenuBadge = React111.forwardRef(({ className, ...props }, ref) => /*
|
|
|
44806
45134
|
}
|
|
44807
45135
|
));
|
|
44808
45136
|
SidebarMenuBadge.displayName = "SidebarMenuBadge";
|
|
44809
|
-
var SidebarMenuSkeleton =
|
|
44810
|
-
const width =
|
|
45137
|
+
var SidebarMenuSkeleton = React112.forwardRef(({ className, showIcon = false, ...props }, ref) => {
|
|
45138
|
+
const width = React112.useMemo(() => {
|
|
44811
45139
|
return `${Math.floor(Math.random() * 40) + 50}%`;
|
|
44812
45140
|
}, []);
|
|
44813
|
-
return /* @__PURE__ */ (0,
|
|
45141
|
+
return /* @__PURE__ */ (0, import_jsx_runtime181.jsxs)(
|
|
44814
45142
|
"div",
|
|
44815
45143
|
{
|
|
44816
45144
|
ref,
|
|
@@ -44818,14 +45146,14 @@ var SidebarMenuSkeleton = React111.forwardRef(({ className, showIcon = false, ..
|
|
|
44818
45146
|
className: cn("flex h-8 items-center gap-2 rounded-md px-2", className),
|
|
44819
45147
|
...props,
|
|
44820
45148
|
children: [
|
|
44821
|
-
showIcon && /* @__PURE__ */ (0,
|
|
45149
|
+
showIcon && /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
|
|
44822
45150
|
Skeleton,
|
|
44823
45151
|
{
|
|
44824
45152
|
className: "size-4 rounded-md",
|
|
44825
45153
|
"data-sidebar": "menu-skeleton-icon"
|
|
44826
45154
|
}
|
|
44827
45155
|
),
|
|
44828
|
-
/* @__PURE__ */ (0,
|
|
45156
|
+
/* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
|
|
44829
45157
|
Skeleton,
|
|
44830
45158
|
{
|
|
44831
45159
|
className: "h-4 max-w-[--skeleton-width] flex-1",
|
|
@@ -44840,7 +45168,7 @@ var SidebarMenuSkeleton = React111.forwardRef(({ className, showIcon = false, ..
|
|
|
44840
45168
|
);
|
|
44841
45169
|
});
|
|
44842
45170
|
SidebarMenuSkeleton.displayName = "SidebarMenuSkeleton";
|
|
44843
|
-
var SidebarMenuSub =
|
|
45171
|
+
var SidebarMenuSub = React112.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
|
|
44844
45172
|
"ul",
|
|
44845
45173
|
{
|
|
44846
45174
|
ref,
|
|
@@ -44854,11 +45182,11 @@ var SidebarMenuSub = React111.forwardRef(({ className, ...props }, ref) => /* @_
|
|
|
44854
45182
|
}
|
|
44855
45183
|
));
|
|
44856
45184
|
SidebarMenuSub.displayName = "SidebarMenuSub";
|
|
44857
|
-
var SidebarMenuSubItem =
|
|
45185
|
+
var SidebarMenuSubItem = React112.forwardRef(({ ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime181.jsx)("li", { ref, ...props }));
|
|
44858
45186
|
SidebarMenuSubItem.displayName = "SidebarMenuSubItem";
|
|
44859
|
-
var SidebarMenuSubButton =
|
|
45187
|
+
var SidebarMenuSubButton = React112.forwardRef(({ asChild = false, size = "md", isActive, className, ...props }, ref) => {
|
|
44860
45188
|
const Comp = asChild ? import_react_slot6.Slot : "a";
|
|
44861
|
-
return /* @__PURE__ */ (0,
|
|
45189
|
+
return /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
|
|
44862
45190
|
Comp,
|
|
44863
45191
|
{
|
|
44864
45192
|
ref,
|
|
@@ -44882,20 +45210,20 @@ SidebarMenuSubButton.displayName = "SidebarMenuSubButton";
|
|
|
44882
45210
|
// src/components/ui/sonner.tsx
|
|
44883
45211
|
var import_next_themes = require("next-themes");
|
|
44884
45212
|
var import_sonner = require("sonner");
|
|
44885
|
-
var
|
|
45213
|
+
var import_jsx_runtime182 = require("react/jsx-runtime");
|
|
44886
45214
|
var Toaster = ({ ...props }) => {
|
|
44887
45215
|
const { theme = "system" } = (0, import_next_themes.useTheme)();
|
|
44888
|
-
return /* @__PURE__ */ (0,
|
|
45216
|
+
return /* @__PURE__ */ (0, import_jsx_runtime182.jsx)(
|
|
44889
45217
|
import_sonner.Toaster,
|
|
44890
45218
|
{
|
|
44891
45219
|
theme,
|
|
44892
45220
|
className: "toaster group",
|
|
44893
45221
|
icons: {
|
|
44894
|
-
success: /* @__PURE__ */ (0,
|
|
44895
|
-
info: /* @__PURE__ */ (0,
|
|
44896
|
-
warning: /* @__PURE__ */ (0,
|
|
44897
|
-
error: /* @__PURE__ */ (0,
|
|
44898
|
-
loading: /* @__PURE__ */ (0,
|
|
45222
|
+
success: /* @__PURE__ */ (0, import_jsx_runtime182.jsx)(CircleCheck, { className: "h-4 w-4" }),
|
|
45223
|
+
info: /* @__PURE__ */ (0, import_jsx_runtime182.jsx)(Info, { className: "h-4 w-4" }),
|
|
45224
|
+
warning: /* @__PURE__ */ (0, import_jsx_runtime182.jsx)(TriangleAlert, { className: "h-4 w-4" }),
|
|
45225
|
+
error: /* @__PURE__ */ (0, import_jsx_runtime182.jsx)(OctagonX, { className: "h-4 w-4" }),
|
|
45226
|
+
loading: /* @__PURE__ */ (0, import_jsx_runtime182.jsx)(LoaderCircle, { className: "h-4 w-4 animate-spin" })
|
|
44899
45227
|
},
|
|
44900
45228
|
toastOptions: {
|
|
44901
45229
|
classNames: {
|
|
@@ -44911,26 +45239,26 @@ var Toaster = ({ ...props }) => {
|
|
|
44911
45239
|
};
|
|
44912
45240
|
|
|
44913
45241
|
// src/components/ui/toggle-group.tsx
|
|
44914
|
-
var
|
|
45242
|
+
var React113 = __toESM(require("react"), 1);
|
|
44915
45243
|
var ToggleGroupPrimitive = __toESM(require("@radix-ui/react-toggle-group"), 1);
|
|
44916
|
-
var
|
|
44917
|
-
var ToggleGroupContext =
|
|
45244
|
+
var import_jsx_runtime183 = require("react/jsx-runtime");
|
|
45245
|
+
var ToggleGroupContext = React113.createContext({
|
|
44918
45246
|
size: "default",
|
|
44919
45247
|
variant: "default"
|
|
44920
45248
|
});
|
|
44921
|
-
var ToggleGroup =
|
|
45249
|
+
var ToggleGroup = React113.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime183.jsx)(
|
|
44922
45250
|
ToggleGroupPrimitive.Root,
|
|
44923
45251
|
{
|
|
44924
45252
|
ref,
|
|
44925
45253
|
className: cn("flex items-center justify-center gap-1", className),
|
|
44926
45254
|
...props,
|
|
44927
|
-
children: /* @__PURE__ */ (0,
|
|
45255
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime183.jsx)(ToggleGroupContext.Provider, { value: { variant, size }, children })
|
|
44928
45256
|
}
|
|
44929
45257
|
));
|
|
44930
45258
|
ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
|
|
44931
|
-
var ToggleGroupItem =
|
|
44932
|
-
const context =
|
|
44933
|
-
return /* @__PURE__ */ (0,
|
|
45259
|
+
var ToggleGroupItem = React113.forwardRef(({ className, children, variant, size, ...props }, ref) => {
|
|
45260
|
+
const context = React113.useContext(ToggleGroupContext);
|
|
45261
|
+
return /* @__PURE__ */ (0, import_jsx_runtime183.jsx)(
|
|
44934
45262
|
ToggleGroupPrimitive.Item,
|
|
44935
45263
|
{
|
|
44936
45264
|
ref,
|
|
@@ -44949,7 +45277,7 @@ var ToggleGroupItem = React112.forwardRef(({ className, children, variant, size,
|
|
|
44949
45277
|
ToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;
|
|
44950
45278
|
|
|
44951
45279
|
// src/render/PXEngineRenderer.tsx
|
|
44952
|
-
var
|
|
45280
|
+
var import_jsx_runtime184 = require("react/jsx-runtime");
|
|
44953
45281
|
var CONTEXT_DEPENDENT_COMPONENTS = /* @__PURE__ */ new Set([
|
|
44954
45282
|
// Form components - require FormField + FormItem context
|
|
44955
45283
|
"FormLabel",
|
|
@@ -45054,24 +45382,24 @@ var REGISTERED_COMPONENTS = /* @__PURE__ */ new Set([
|
|
|
45054
45382
|
]);
|
|
45055
45383
|
var renderContextDependentError = (componentName, normalizedName, key) => {
|
|
45056
45384
|
const suggestion = COMPONENT_SUGGESTIONS[normalizedName] || `${componentName}Atom (if available)`;
|
|
45057
|
-
return /* @__PURE__ */ (0,
|
|
45385
|
+
return /* @__PURE__ */ (0, import_jsx_runtime184.jsxs)(
|
|
45058
45386
|
"div",
|
|
45059
45387
|
{
|
|
45060
45388
|
className: "p-4 border-2 border-amber-500/50 rounded-lg bg-amber-50/80 space-y-2 my-2",
|
|
45061
45389
|
children: [
|
|
45062
|
-
/* @__PURE__ */ (0,
|
|
45063
|
-
/* @__PURE__ */ (0,
|
|
45064
|
-
/* @__PURE__ */ (0,
|
|
45065
|
-
/* @__PURE__ */ (0,
|
|
45390
|
+
/* @__PURE__ */ (0, import_jsx_runtime184.jsxs)("div", { className: "flex items-start gap-2", children: [
|
|
45391
|
+
/* @__PURE__ */ (0, import_jsx_runtime184.jsx)("span", { className: "text-amber-600 font-bold text-lg", children: "\u26A0\uFE0F" }),
|
|
45392
|
+
/* @__PURE__ */ (0, import_jsx_runtime184.jsxs)("div", { className: "flex-1", children: [
|
|
45393
|
+
/* @__PURE__ */ (0, import_jsx_runtime184.jsxs)("p", { className: "text-sm font-semibold text-amber-900", children: [
|
|
45066
45394
|
"Invalid Component: ",
|
|
45067
45395
|
componentName
|
|
45068
45396
|
] }),
|
|
45069
|
-
/* @__PURE__ */ (0,
|
|
45397
|
+
/* @__PURE__ */ (0, import_jsx_runtime184.jsx)("p", { className: "text-xs text-amber-700 mt-1", children: "This component requires React Context and cannot be rendered directly in schemas." })
|
|
45070
45398
|
] })
|
|
45071
45399
|
] }),
|
|
45072
|
-
/* @__PURE__ */ (0,
|
|
45073
|
-
/* @__PURE__ */ (0,
|
|
45074
|
-
/* @__PURE__ */ (0,
|
|
45400
|
+
/* @__PURE__ */ (0, import_jsx_runtime184.jsxs)("div", { className: "bg-white/60 p-3 rounded border border-amber-200", children: [
|
|
45401
|
+
/* @__PURE__ */ (0, import_jsx_runtime184.jsx)("p", { className: "text-xs font-semibold text-gray-700 mb-1.5", children: "\u2713 Use instead:" }),
|
|
45402
|
+
/* @__PURE__ */ (0, import_jsx_runtime184.jsx)("code", { className: "text-xs text-blue-700 bg-blue-50 px-2 py-1 rounded", children: suggestion })
|
|
45075
45403
|
] })
|
|
45076
45404
|
]
|
|
45077
45405
|
},
|
|
@@ -45149,12 +45477,12 @@ var PXEngineRenderer = ({
|
|
|
45149
45477
|
const root = schema.root || schema;
|
|
45150
45478
|
const renderRecursive = (component, index) => {
|
|
45151
45479
|
if (Array.isArray(component)) {
|
|
45152
|
-
return /* @__PURE__ */ (0,
|
|
45480
|
+
return /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(import_react90.default.Fragment, { children: component.map((child, idx) => renderRecursive(child, idx)) }, index !== void 0 ? `array-${index}` : "array-root");
|
|
45153
45481
|
}
|
|
45154
45482
|
if (typeof component === "string" || typeof component === "number") {
|
|
45155
45483
|
return component;
|
|
45156
45484
|
}
|
|
45157
|
-
if (
|
|
45485
|
+
if (import_react90.default.isValidElement(component)) {
|
|
45158
45486
|
return component;
|
|
45159
45487
|
}
|
|
45160
45488
|
if (!component || typeof component !== "object") return null;
|
|
@@ -45233,7 +45561,7 @@ var PXEngineRenderer = ({
|
|
|
45233
45561
|
const isAtomWithRenderProp = ATOMS_WITH_RENDER.has(atomName);
|
|
45234
45562
|
const finalStyle = { ...dynamicStyle, ...finalProps.style || {} };
|
|
45235
45563
|
if (isAtomWithRenderProp) {
|
|
45236
|
-
return /* @__PURE__ */ (0,
|
|
45564
|
+
return /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(
|
|
45237
45565
|
TargetComponent,
|
|
45238
45566
|
{
|
|
45239
45567
|
...finalProps,
|
|
@@ -45245,7 +45573,7 @@ var PXEngineRenderer = ({
|
|
|
45245
45573
|
uniqueKey
|
|
45246
45574
|
);
|
|
45247
45575
|
} else {
|
|
45248
|
-
return /* @__PURE__ */ (0,
|
|
45576
|
+
return /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(
|
|
45249
45577
|
TargetComponent,
|
|
45250
45578
|
{
|
|
45251
45579
|
...finalProps,
|
|
@@ -45257,7 +45585,7 @@ var PXEngineRenderer = ({
|
|
|
45257
45585
|
);
|
|
45258
45586
|
}
|
|
45259
45587
|
};
|
|
45260
|
-
return /* @__PURE__ */ (0,
|
|
45588
|
+
return /* @__PURE__ */ (0, import_jsx_runtime184.jsx)("div", { className: "px-engine-root relative w-full h-full", children: renderRecursive(root) });
|
|
45261
45589
|
};
|
|
45262
45590
|
// Annotate the CommonJS export names for ESM import in node:
|
|
45263
45591
|
0 && (module.exports = {
|
|
@@ -45484,6 +45812,7 @@ var PXEngineRenderer = ({
|
|
|
45484
45812
|
PopoverAtom,
|
|
45485
45813
|
PopoverContent,
|
|
45486
45814
|
PopoverTrigger,
|
|
45815
|
+
PresentationJobCard,
|
|
45487
45816
|
PriorityActionsCard,
|
|
45488
45817
|
Progress,
|
|
45489
45818
|
ProgressAtom,
|