pxengine 0.1.24 → 0.1.27
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 +151 -45
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +30 -4
- package/dist/index.d.ts +30 -4
- package/dist/index.mjs +151 -45
- package/dist/index.mjs.map +1 -1
- package/dist/registry.json +36 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -34049,11 +34049,10 @@ var EditableField = import_react54.default.memo(
|
|
|
34049
34049
|
"h4",
|
|
34050
34050
|
{
|
|
34051
34051
|
className: "px-2 py-1 tracking-widest bg-background bg-purple200 text-purpleText dark:text-purple-400 text-[10px] font-bold rounded uppercase",
|
|
34052
|
-
style: { fontFamily: "Noto Sans, sans-serif" },
|
|
34053
34052
|
children: label
|
|
34054
34053
|
}
|
|
34055
34054
|
),
|
|
34056
|
-
!isEditingProp && /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)("span", { className: "inline-flex items-center gap-1 text-[10px] font-medium text-green-
|
|
34055
|
+
!isEditingProp && /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)("span", { className: "inline-flex items-center gap-1 text-[10px] font-medium text-green-500 dark:text-green-500", children: [
|
|
34057
34056
|
"Suggested by an Agent",
|
|
34058
34057
|
/* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
|
|
34059
34058
|
Pencil,
|
|
@@ -34231,7 +34230,7 @@ var FormCard = import_react56.default.memo(
|
|
|
34231
34230
|
"div",
|
|
34232
34231
|
{
|
|
34233
34232
|
className: cn(
|
|
34234
|
-
"relative w-full rounded-[20px] bg-background dark:bg-gray100 border border-gray400 shadow-lg overflow-hidden mb-6",
|
|
34233
|
+
"relative w-full rounded-[20px] bg-background dark:bg-gray100 border border-gray400 shadow-lg overflow-hidden mb-6 font-noto",
|
|
34235
34234
|
className
|
|
34236
34235
|
),
|
|
34237
34236
|
onMouseEnter: () => setShowCopyButton(true),
|
|
@@ -34251,7 +34250,6 @@ var FormCard = import_react56.default.memo(
|
|
|
34251
34250
|
"h3",
|
|
34252
34251
|
{
|
|
34253
34252
|
className: "text-gray900 mb-12",
|
|
34254
|
-
style: { fontFamily: "Noto Sans, sans-serif" },
|
|
34255
34253
|
children: title
|
|
34256
34254
|
}
|
|
34257
34255
|
),
|
|
@@ -35378,14 +35376,24 @@ var CampaignSeedCard = import_react60.default.memo(
|
|
|
35378
35376
|
({
|
|
35379
35377
|
selectionStatus,
|
|
35380
35378
|
isLatestMessage = true,
|
|
35379
|
+
hasUserResponded = false,
|
|
35381
35380
|
className,
|
|
35382
35381
|
fields: providedFields,
|
|
35383
35382
|
data,
|
|
35383
|
+
onAction,
|
|
35384
35384
|
...formCardProps
|
|
35385
35385
|
}) => {
|
|
35386
35386
|
const fields = (0, import_react60.useMemo)(() => {
|
|
35387
35387
|
return providedFields || buildCampaignSeedFields(data);
|
|
35388
35388
|
}, [providedFields, data]);
|
|
35389
|
+
const handleProceed = () => {
|
|
35390
|
+
onAction?.({
|
|
35391
|
+
type: "brief_confirmation",
|
|
35392
|
+
value: "Continue to concepts",
|
|
35393
|
+
data
|
|
35394
|
+
});
|
|
35395
|
+
};
|
|
35396
|
+
const effectiveIsLatest = isLatestMessage && !hasUserResponded;
|
|
35389
35397
|
return /* @__PURE__ */ (0, import_jsx_runtime107.jsx)("div", { className: "flex flex-col gap-2", children: /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(
|
|
35390
35398
|
FormCard,
|
|
35391
35399
|
{
|
|
@@ -35393,9 +35401,12 @@ var CampaignSeedCard = import_react60.default.memo(
|
|
|
35393
35401
|
data,
|
|
35394
35402
|
title: formCardProps.title || "Campaign Brief",
|
|
35395
35403
|
fields,
|
|
35404
|
+
proceedLabel: "Continue to concepts",
|
|
35405
|
+
onProceed: handleProceed,
|
|
35396
35406
|
showTimeline: true,
|
|
35407
|
+
isLatestMessage: effectiveIsLatest,
|
|
35397
35408
|
className: cn("font-noto", className),
|
|
35398
|
-
footer: !
|
|
35409
|
+
footer: !effectiveIsLatest && (selectionStatus || hasUserResponded) ? /* @__PURE__ */ (0, import_jsx_runtime107.jsxs)("div", { className: "flex justify-end items-center gap-1.5 text-green-600 text-[10px] font-semibold py-4 pr-6", children: [
|
|
35399
35410
|
/* @__PURE__ */ (0, import_jsx_runtime107.jsx)(CircleCheck, { className: "h-3.5 w-3.5" }),
|
|
35400
35411
|
/* @__PURE__ */ (0, import_jsx_runtime107.jsx)("span", { children: selectionStatus === "agent" ? "Suggested by Agent" : "Selected by you" })
|
|
35401
35412
|
] }) : formCardProps.footer
|
|
@@ -35470,16 +35481,26 @@ var SearchSpecCard = import_react61.default.memo(
|
|
|
35470
35481
|
({
|
|
35471
35482
|
selectionStatus,
|
|
35472
35483
|
isLatestMessage = true,
|
|
35484
|
+
hasUserResponded = false,
|
|
35473
35485
|
className,
|
|
35474
35486
|
fields: providedFields,
|
|
35475
35487
|
data,
|
|
35476
35488
|
specData,
|
|
35489
|
+
onAction,
|
|
35477
35490
|
...formCardProps
|
|
35478
35491
|
}) => {
|
|
35479
35492
|
const resolvedData = data || specData;
|
|
35480
35493
|
const fields = (0, import_react61.useMemo)(() => {
|
|
35481
35494
|
return providedFields || buildSearchSpecFields(resolvedData ?? {});
|
|
35482
35495
|
}, [providedFields, resolvedData]);
|
|
35496
|
+
const handleProceed = () => {
|
|
35497
|
+
onAction?.({
|
|
35498
|
+
type: "search_spec_confirmation",
|
|
35499
|
+
value: "Continue with search",
|
|
35500
|
+
data: resolvedData
|
|
35501
|
+
});
|
|
35502
|
+
};
|
|
35503
|
+
const effectiveIsLatest = isLatestMessage && !hasUserResponded;
|
|
35483
35504
|
return /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(
|
|
35484
35505
|
FormCard,
|
|
35485
35506
|
{
|
|
@@ -35487,8 +35508,11 @@ var SearchSpecCard = import_react61.default.memo(
|
|
|
35487
35508
|
data: resolvedData ?? {},
|
|
35488
35509
|
title: formCardProps.title || "Search Specification",
|
|
35489
35510
|
fields,
|
|
35511
|
+
proceedLabel: "Continue with search",
|
|
35512
|
+
onProceed: handleProceed,
|
|
35513
|
+
isLatestMessage: effectiveIsLatest,
|
|
35490
35514
|
className,
|
|
35491
|
-
footer: !
|
|
35515
|
+
footer: !effectiveIsLatest && (selectionStatus || hasUserResponded) ? /* @__PURE__ */ (0, import_jsx_runtime108.jsxs)("div", { className: "flex justify-end items-center gap-1.5 text-green-600 text-xs font-semibold py-1", children: [
|
|
35492
35516
|
/* @__PURE__ */ (0, import_jsx_runtime108.jsx)(CircleCheck, { className: "h-4 w-4" }),
|
|
35493
35517
|
/* @__PURE__ */ (0, import_jsx_runtime108.jsx)("span", { children: selectionStatus === "agent" ? "Selected by Agent" : "Selected by User" })
|
|
35494
35518
|
] }) : formCardProps.footer
|
|
@@ -35512,11 +35536,15 @@ var MCQCard = import_react62.default.memo(
|
|
|
35512
35536
|
isLatestMessage = true,
|
|
35513
35537
|
isLoading = false,
|
|
35514
35538
|
className,
|
|
35515
|
-
selectionStatus,
|
|
35539
|
+
// selectionStatus,
|
|
35516
35540
|
onAction,
|
|
35517
|
-
disabled = false
|
|
35541
|
+
disabled = false,
|
|
35542
|
+
disableContinueInDiscovery
|
|
35543
|
+
// optional prop
|
|
35518
35544
|
}) => {
|
|
35519
|
-
const [selectedOption, setSelectedOption] = import_react62.default.useState(
|
|
35545
|
+
const [selectedOption, setSelectedOption] = import_react62.default.useState(
|
|
35546
|
+
propsSelectedOption
|
|
35547
|
+
);
|
|
35520
35548
|
const [isProceeded, setIsProceeded] = import_react62.default.useState(false);
|
|
35521
35549
|
import_react62.default.useEffect(() => {
|
|
35522
35550
|
if (propsSelectedOption) {
|
|
@@ -35524,6 +35552,7 @@ var MCQCard = import_react62.default.memo(
|
|
|
35524
35552
|
setIsProceeded(true);
|
|
35525
35553
|
}
|
|
35526
35554
|
}, [propsSelectedOption]);
|
|
35555
|
+
const isDiscovery = disableContinueInDiscovery !== void 0 ? disableContinueInDiscovery : typeof window !== "undefined" && window.location.pathname.includes("creator-discovery");
|
|
35527
35556
|
const handleOptionClick = (key, e) => {
|
|
35528
35557
|
e.preventDefault();
|
|
35529
35558
|
e.stopPropagation();
|
|
@@ -35542,11 +35571,13 @@ var MCQCard = import_react62.default.memo(
|
|
|
35542
35571
|
onAction?.({
|
|
35543
35572
|
type: "mcq_selection",
|
|
35544
35573
|
value: result,
|
|
35545
|
-
label: options[result] || result
|
|
35574
|
+
label: options && options[result] || result
|
|
35546
35575
|
});
|
|
35547
35576
|
}
|
|
35548
35577
|
};
|
|
35549
|
-
const
|
|
35578
|
+
const isOptionsDisabled = disabled || !isLatestMessage || isProceeded && !disableContinueInDiscovery;
|
|
35579
|
+
const isContinueDisabled = disabled || !isLatestMessage || isProceeded || isDiscovery;
|
|
35580
|
+
const optionsEntries = options ? Object.entries(options) : [];
|
|
35550
35581
|
return /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(
|
|
35551
35582
|
"div",
|
|
35552
35583
|
{
|
|
@@ -35556,7 +35587,7 @@ var MCQCard = import_react62.default.memo(
|
|
|
35556
35587
|
),
|
|
35557
35588
|
children: [
|
|
35558
35589
|
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)("div", { className: "mb-4", children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)("h4", { className: "font-medium text-foreground px-3 py-1 rounded-md inline-block mb-2", children: question }) }),
|
|
35559
|
-
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)("div", { className: "mb-6", children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)("div", { className: "space-y-4", children:
|
|
35590
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)("div", { className: "mb-6", children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)("div", { className: "space-y-4", children: optionsEntries.map(([key, label]) => {
|
|
35560
35591
|
const isSelected = selectedOption === key;
|
|
35561
35592
|
const isRecommended = key === recommended;
|
|
35562
35593
|
return /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(
|
|
@@ -35566,8 +35597,8 @@ var MCQCard = import_react62.default.memo(
|
|
|
35566
35597
|
className: cn(
|
|
35567
35598
|
"cursor-pointer rounded-xl p-3 transition-colors relative",
|
|
35568
35599
|
"border border-transparent bg-paperBackground",
|
|
35569
|
-
!selectedOption && !
|
|
35570
|
-
(isLoading ||
|
|
35600
|
+
!selectedOption && !isOptionsDisabled && "hover:border-gray500",
|
|
35601
|
+
(isLoading || isOptionsDisabled) && "opacity-50 cursor-not-allowed"
|
|
35571
35602
|
),
|
|
35572
35603
|
children: [
|
|
35573
35604
|
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)("div", { className: "absolute top-1/2 left-4 transform -translate-y-1/2", children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
|
|
@@ -35577,7 +35608,7 @@ var MCQCard = import_react62.default.memo(
|
|
|
35577
35608
|
"w-5 h-5 rounded-full border flex items-center justify-center transition-colors",
|
|
35578
35609
|
isSelected ? "border-purple100 bg-gray300" : cn(
|
|
35579
35610
|
"border-gray300 bg-background",
|
|
35580
|
-
!selectedOption && !
|
|
35611
|
+
!selectedOption && !isOptionsDisabled && "hover:border-purple100"
|
|
35581
35612
|
)
|
|
35582
35613
|
),
|
|
35583
35614
|
children: isSelected && /* @__PURE__ */ (0, import_jsx_runtime109.jsx)("div", { className: "w-2.5 h-2.5 rounded-full bg-purple100" })
|
|
@@ -35609,8 +35640,8 @@ var MCQCard = import_react62.default.memo(
|
|
|
35609
35640
|
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
|
|
35610
35641
|
"button",
|
|
35611
35642
|
{
|
|
35612
|
-
onClick:
|
|
35613
|
-
disabled:
|
|
35643
|
+
onClick: handleProceed,
|
|
35644
|
+
disabled: isContinueDisabled || isLoading || !selectedOption && !recommended,
|
|
35614
35645
|
className: cn(
|
|
35615
35646
|
"flex-3 px-4 py-2 border rounded-full text-sm disabled:opacity-50 disabled:cursor-not-allowed transition-colors",
|
|
35616
35647
|
"bg-purpleLight dark:bg-purple200 hover:bg-purpleText1 dark:hover:bg-purple100 text-purpleText2 dark:text-purpleText border-purpleText1 dark:border-purple-border dark:hover:text-white"
|
|
@@ -35618,10 +35649,7 @@ var MCQCard = import_react62.default.memo(
|
|
|
35618
35649
|
children: isLoading ? "Sending..." : "Continue"
|
|
35619
35650
|
}
|
|
35620
35651
|
),
|
|
35621
|
-
|
|
35622
|
-
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)("span", { className: "whitespace-nowrap", children: "Suggested by an Agent," }),
|
|
35623
|
-
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)("span", { className: "whitespace-nowrap", children: "Approved by You" })
|
|
35624
|
-
] }) : /* @__PURE__ */ (0, import_jsx_runtime109.jsx)("span", { children: "Selected by you" }) })
|
|
35652
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)("div", { className: "flex-1" })
|
|
35625
35653
|
] })
|
|
35626
35654
|
]
|
|
35627
35655
|
}
|
|
@@ -36204,10 +36232,12 @@ var CampaignConceptCard = import_react64.default.memo(
|
|
|
36204
36232
|
onToggle,
|
|
36205
36233
|
data,
|
|
36206
36234
|
fields: providedFields,
|
|
36207
|
-
title,
|
|
36235
|
+
title: propsTitle,
|
|
36208
36236
|
selectionStatus,
|
|
36209
36237
|
isLatestMessage = true,
|
|
36238
|
+
hasUserResponded = false,
|
|
36210
36239
|
className,
|
|
36240
|
+
onAction,
|
|
36211
36241
|
...formCardProps
|
|
36212
36242
|
}) => {
|
|
36213
36243
|
const [internalIsOpen, setInternalIsOpen] = (0, import_react64.useState)(false);
|
|
@@ -36219,38 +36249,102 @@ var CampaignConceptCard = import_react64.default.memo(
|
|
|
36219
36249
|
setInternalIsOpen(!internalIsOpen);
|
|
36220
36250
|
}
|
|
36221
36251
|
};
|
|
36252
|
+
const cardTitle = propsTitle || data.title || data.name || data.concept_name || data.conceptName || "Campaign Concept";
|
|
36253
|
+
const handleProceed = () => {
|
|
36254
|
+
onAction?.({
|
|
36255
|
+
type: "concept_selection",
|
|
36256
|
+
value: typeof cardTitle === "string" ? cardTitle : JSON.stringify(cardTitle),
|
|
36257
|
+
data
|
|
36258
|
+
});
|
|
36259
|
+
};
|
|
36260
|
+
const effectiveIsLatest = isLatestMessage && !hasUserResponded;
|
|
36222
36261
|
const fields = (0, import_react64.useMemo)(() => {
|
|
36223
36262
|
const baseFields = providedFields || generateFieldsFromData(data);
|
|
36224
36263
|
return baseFields.map((field) => {
|
|
36225
|
-
if (field.key === "budgetAllocation") {
|
|
36264
|
+
if (field.key === "budgetAllocation" || field.key === "budget_allocation") {
|
|
36226
36265
|
return {
|
|
36227
36266
|
...field,
|
|
36267
|
+
label: "Budget Allocation",
|
|
36228
36268
|
renderDisplay: (val) => {
|
|
36229
|
-
if (
|
|
36230
|
-
|
|
36231
|
-
|
|
36232
|
-
|
|
36233
|
-
|
|
36234
|
-
|
|
36235
|
-
|
|
36236
|
-
|
|
36237
|
-
|
|
36238
|
-
|
|
36269
|
+
if (val && typeof val === "object" && !Array.isArray(val)) {
|
|
36270
|
+
return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)("div", { className: "flex flex-wrap gap-2 pt-1", children: Object.entries(val).map(([k, v]) => /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(
|
|
36271
|
+
"div",
|
|
36272
|
+
{
|
|
36273
|
+
className: "flex items-center gap-1.5 bg-background bg-gray400 border border-white/10 px-2 py-1 rounded shadow-sm",
|
|
36274
|
+
children: [
|
|
36275
|
+
/* @__PURE__ */ (0, import_jsx_runtime121.jsxs)("span", { className: "text-[10px] text-gray-400 font-bold uppercase tracking-tight", children: [
|
|
36276
|
+
k.replace(/_/g, " "),
|
|
36277
|
+
":"
|
|
36278
|
+
] }),
|
|
36279
|
+
/* @__PURE__ */ (0, import_jsx_runtime121.jsx)("span", { className: "text-xs text-white font-medium", children: String(v) })
|
|
36280
|
+
]
|
|
36281
|
+
},
|
|
36282
|
+
k
|
|
36283
|
+
)) });
|
|
36284
|
+
}
|
|
36285
|
+
if (Array.isArray(val)) {
|
|
36286
|
+
return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)("div", { className: "flex flex-wrap gap-2 pt-1", children: val.map((item, idx) => /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(
|
|
36287
|
+
"div",
|
|
36288
|
+
{
|
|
36289
|
+
className: "flex items-center gap-1.5 bg-background bg-gray400 border border-white/10 px-2 py-1 rounded shadow-sm",
|
|
36290
|
+
children: [
|
|
36291
|
+
item.label && /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)("span", { className: "text-[10px] text-gray-400 font-bold uppercase tracking-tight", children: [
|
|
36292
|
+
item.label,
|
|
36293
|
+
":"
|
|
36294
|
+
] }),
|
|
36295
|
+
/* @__PURE__ */ (0, import_jsx_runtime121.jsx)("span", { className: "text-xs text-white font-medium", children: String(item.value || item) })
|
|
36296
|
+
]
|
|
36297
|
+
},
|
|
36298
|
+
idx
|
|
36299
|
+
)) });
|
|
36300
|
+
}
|
|
36301
|
+
return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)("span", { className: "text-gray-300 text-sm", children: val ? String(val) : "-" });
|
|
36239
36302
|
}
|
|
36240
36303
|
};
|
|
36241
36304
|
}
|
|
36242
|
-
if (field.key === "estimatedCreators") {
|
|
36305
|
+
if (field.key === "estimatedCreators" || field.key === "estimated_creators") {
|
|
36243
36306
|
return {
|
|
36244
36307
|
...field,
|
|
36308
|
+
label: "Estimated Creators",
|
|
36245
36309
|
renderDisplay: (val) => {
|
|
36246
|
-
if (
|
|
36247
|
-
|
|
36310
|
+
if (Array.isArray(val)) {
|
|
36311
|
+
return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)("div", { className: "flex gap-2 pt-1", children: val.map((v, idx) => /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
|
|
36312
|
+
"div",
|
|
36313
|
+
{
|
|
36314
|
+
className: "bg-background bg-purple200 border border-purple100/20 px-2 py-0.5 rounded text-white text-xs font-medium",
|
|
36315
|
+
children: String(v)
|
|
36316
|
+
},
|
|
36317
|
+
idx
|
|
36318
|
+
)) });
|
|
36319
|
+
}
|
|
36320
|
+
return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)("span", { className: "text-white font-medium", children: val ? String(val) : "-" });
|
|
36321
|
+
}
|
|
36322
|
+
};
|
|
36323
|
+
}
|
|
36324
|
+
if (field.key === "platforms") {
|
|
36325
|
+
return {
|
|
36326
|
+
...field,
|
|
36327
|
+
renderDisplay: (val) => {
|
|
36328
|
+
const platforms = Array.isArray(val) ? val : typeof val === "string" ? val.split(/,\s*/) : [val];
|
|
36329
|
+
return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)("div", { className: "flex flex-wrap gap-1.5 pt-1", children: platforms.map((p) => /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
|
|
36330
|
+
"div",
|
|
36331
|
+
{
|
|
36332
|
+
className: "px-2 py-0.5 rounded-full bg-blue-500/10 border border-blue-500/20 text-blue-400 text-[10px] font-bold uppercase",
|
|
36333
|
+
children: String(p)
|
|
36334
|
+
},
|
|
36335
|
+
String(p)
|
|
36336
|
+
)) });
|
|
36248
36337
|
}
|
|
36249
36338
|
};
|
|
36250
36339
|
}
|
|
36251
36340
|
return {
|
|
36252
36341
|
...field,
|
|
36253
|
-
renderDisplay: (val) =>
|
|
36342
|
+
renderDisplay: (val) => {
|
|
36343
|
+
if (typeof val === "object" && val !== null) {
|
|
36344
|
+
return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)("div", { className: "text-gray-300 text-xs font-mono bg-black/20 p-2 rounded border border-white/5 mt-1 overflow-auto max-h-24", children: JSON.stringify(val, null, 2) });
|
|
36345
|
+
}
|
|
36346
|
+
return /* @__PURE__ */ (0, import_jsx_runtime121.jsx)("span", { className: "text-gray-300 text-sm", children: String(val) });
|
|
36347
|
+
}
|
|
36254
36348
|
};
|
|
36255
36349
|
});
|
|
36256
36350
|
}, [providedFields, data]);
|
|
@@ -36270,13 +36364,22 @@ var CampaignConceptCard = import_react64.default.memo(
|
|
|
36270
36364
|
onClick: handleToggle,
|
|
36271
36365
|
children: [
|
|
36272
36366
|
/* @__PURE__ */ (0, import_jsx_runtime121.jsxs)("div", { className: "flex flex-col gap-2", children: [
|
|
36273
|
-
/* @__PURE__ */ (0, import_jsx_runtime121.jsx)("h3", { className: "text-lg font-semibold text-white tracking-wide", children:
|
|
36274
|
-
|
|
36367
|
+
/* @__PURE__ */ (0, import_jsx_runtime121.jsx)("h3", { className: "text-lg font-semibold text-white tracking-wide", children: typeof cardTitle === "object" ? JSON.stringify(cardTitle) : String(cardTitle) }),
|
|
36368
|
+
/* @__PURE__ */ (0, import_jsx_runtime121.jsxs)("div", { className: "flex flex-wrap gap-2", children: [
|
|
36369
|
+
isRecommended && /* @__PURE__ */ (0, import_jsx_runtime121.jsx)("div", { className: "inline-flex text-[10px] font-bold uppercase tracking-widest text-[#22C55E]", children: /* @__PURE__ */ (0, import_jsx_runtime121.jsx)("span", { className: "bg-[#22C55E]/10 px-2 py-0.5 rounded border border-[#22C55E]/20", children: "Recommended" }) }),
|
|
36370
|
+
hasUserResponded && /* @__PURE__ */ (0, import_jsx_runtime121.jsx)("div", { className: "inline-flex text-[10px] font-bold uppercase tracking-widest text-[#3B82F6]", children: /* @__PURE__ */ (0, import_jsx_runtime121.jsx)("span", { className: "bg-[#3B82F6]/10 px-2 py-0.5 rounded border border-[#3B82F6]/20", children: selectionStatus === "agent" ? "Selected by Agent" : "Selected by You" }) })
|
|
36371
|
+
] })
|
|
36275
36372
|
] }),
|
|
36276
|
-
/* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
|
|
36277
|
-
"
|
|
36278
|
-
|
|
36279
|
-
|
|
36373
|
+
/* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
|
|
36374
|
+
"div",
|
|
36375
|
+
{
|
|
36376
|
+
className: cn(
|
|
36377
|
+
"p-2 rounded-lg bg-white/5 border border-white/10 text-gray-400 transition-transform duration-300",
|
|
36378
|
+
isOpen && "rotate-180"
|
|
36379
|
+
),
|
|
36380
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(ChevronDown, { className: "h-4 w-4" })
|
|
36381
|
+
}
|
|
36382
|
+
)
|
|
36280
36383
|
]
|
|
36281
36384
|
}
|
|
36282
36385
|
),
|
|
@@ -36292,12 +36395,15 @@ var CampaignConceptCard = import_react64.default.memo(
|
|
|
36292
36395
|
FormCard,
|
|
36293
36396
|
{
|
|
36294
36397
|
...formCardProps,
|
|
36295
|
-
title:
|
|
36398
|
+
title: typeof cardTitle === "object" ? JSON.stringify(cardTitle) : String(cardTitle),
|
|
36296
36399
|
data,
|
|
36297
36400
|
fields,
|
|
36298
36401
|
showTimeline: true,
|
|
36402
|
+
proceedLabel: "Continue with this concept",
|
|
36403
|
+
onProceed: handleProceed,
|
|
36404
|
+
isLatestMessage: effectiveIsLatest,
|
|
36299
36405
|
className: "bg-transparent border-none shadow-none mb-0 p-0",
|
|
36300
|
-
footer: !
|
|
36406
|
+
footer: !effectiveIsLatest && (selectionStatus || hasUserResponded) ? /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)("div", { className: "flex justify-end items-center gap-1.5 text-green-600 text-[10px] font-semibold py-4 pr-6", children: [
|
|
36301
36407
|
/* @__PURE__ */ (0, import_jsx_runtime121.jsx)(CircleCheck, { className: "h-3.5 w-3.5" }),
|
|
36302
36408
|
/* @__PURE__ */ (0, import_jsx_runtime121.jsx)("span", { children: selectionStatus === "agent" ? "Selected by Agent" : "Selected by You" })
|
|
36303
36409
|
] }) : formCardProps.footer
|