pxengine 0.1.60 → 0.1.62
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/config/tailwind-preset.js +4 -0
- package/dist/index.cjs +124 -123
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +124 -123
- package/dist/index.mjs.map +1 -1
- package/dist/registry.json +1 -1
- package/package.json +1 -1
|
@@ -121,6 +121,10 @@ module.exports = {
|
|
|
121
121
|
interactionBg: "var(--interaction-bg)",
|
|
122
122
|
purpleLight: "var(--purpleLight)",
|
|
123
123
|
purpleText2: "var(--purple-text-2)",
|
|
124
|
+
gold: "var(--gold)",
|
|
125
|
+
cardSurface: "var(--cardSurface)",
|
|
126
|
+
cardText: "var(--cardText)",
|
|
127
|
+
cardBorder: "var(--cardBorder)",
|
|
124
128
|
green100: "#dcfce7",
|
|
125
129
|
// Landing page colors
|
|
126
130
|
landingDarkestBlue: "var(--landing-darkest-blue)",
|
package/dist/index.cjs
CHANGED
|
@@ -34330,19 +34330,19 @@ var EditableField = import_react54.default.memo(
|
|
|
34330
34330
|
"div",
|
|
34331
34331
|
{
|
|
34332
34332
|
className: cn(
|
|
34333
|
-
"relative z-10 group flex flex-col gap-
|
|
34333
|
+
"relative z-10 group flex flex-col gap-1.5 p-2.5 bg-black border border-cardBorder rounded-lg mb-4",
|
|
34334
34334
|
className
|
|
34335
34335
|
),
|
|
34336
34336
|
children: [
|
|
34337
|
-
/* @__PURE__ */ (0, import_jsx_runtime94.jsx)("div", { className: "flex justify-between items-start mb-
|
|
34337
|
+
/* @__PURE__ */ (0, import_jsx_runtime94.jsx)("div", { className: "flex justify-between items-start mb-1.5", children: /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)("div", { className: "w-full flex justify-between items-center flex-wrap gap-1.5", children: [
|
|
34338
34338
|
/* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
|
|
34339
34339
|
"h4",
|
|
34340
34340
|
{
|
|
34341
|
-
className: "px-
|
|
34341
|
+
className: "px-1.5 py-px tracking-widest border border-cardBorder text-gold text-[9px] font-medium uppercase rounded-[3px]",
|
|
34342
34342
|
children: label
|
|
34343
34343
|
}
|
|
34344
34344
|
),
|
|
34345
|
-
isEditingProp ? /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)("div", { className: "flex items-center gap-
|
|
34345
|
+
isEditingProp ? /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
34346
34346
|
/* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
|
|
34347
34347
|
"button",
|
|
34348
34348
|
{
|
|
@@ -34353,7 +34353,7 @@ var EditableField = import_react54.default.memo(
|
|
|
34353
34353
|
className: "text-gray-500 hover:text-gray-700 transition-colors",
|
|
34354
34354
|
disabled: isSaving,
|
|
34355
34355
|
title: "Cancel",
|
|
34356
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(X, { className: "h-
|
|
34356
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(X, { className: "h-4 w-4" })
|
|
34357
34357
|
}
|
|
34358
34358
|
),
|
|
34359
34359
|
/* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
|
|
@@ -34366,37 +34366,31 @@ var EditableField = import_react54.default.memo(
|
|
|
34366
34366
|
className: "text-gray600 hover:text-gray600 transition-colors",
|
|
34367
34367
|
disabled: isSaving,
|
|
34368
34368
|
title: "Save",
|
|
34369
|
-
children: isSaving ? /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(LoaderCircle, { className: "h-
|
|
34369
|
+
children: isSaving ? /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(LoaderCircle, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(Save, { className: "h-4 w-4" })
|
|
34370
34370
|
}
|
|
34371
34371
|
)
|
|
34372
|
-
] }) : /* @__PURE__ */ (0, import_jsx_runtime94.
|
|
34373
|
-
"
|
|
34374
|
-
|
|
34375
|
-
|
|
34376
|
-
|
|
34377
|
-
|
|
34378
|
-
|
|
34379
|
-
|
|
34380
|
-
|
|
34381
|
-
|
|
34382
|
-
|
|
34383
|
-
|
|
34384
|
-
|
|
34385
|
-
|
|
34386
|
-
},
|
|
34387
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(SquarePen, { className: "h-5 w-5" })
|
|
34388
|
-
}
|
|
34389
|
-
)
|
|
34390
|
-
] })
|
|
34372
|
+
] }) : isLatestMessage ? /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
|
|
34373
|
+
"button",
|
|
34374
|
+
{
|
|
34375
|
+
className: "p-1 rounded-md text-muted-foreground hover:text-foreground hover:bg-gray300 transition-colors",
|
|
34376
|
+
onClick: (e) => {
|
|
34377
|
+
if (shouldStopPropagation !== false) {
|
|
34378
|
+
e.stopPropagation();
|
|
34379
|
+
}
|
|
34380
|
+
onEdit?.();
|
|
34381
|
+
},
|
|
34382
|
+
title: "Edit",
|
|
34383
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(SquarePen, { className: "h-3.5 w-3.5" })
|
|
34384
|
+
}
|
|
34385
|
+
) : null
|
|
34391
34386
|
] }) }),
|
|
34392
34387
|
isEditingProp ? /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("div", { className: "flex flex-col gap-3", children: renderInput() }) : /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
|
|
34393
34388
|
"div",
|
|
34394
34389
|
{
|
|
34395
34390
|
className: cn(
|
|
34396
|
-
"relative flex items-start justify-between rounded-
|
|
34397
|
-
"text-
|
|
34391
|
+
"relative flex items-start justify-between rounded-md px-2 py-1.5",
|
|
34392
|
+
"text-sm text-cardText font-medium leading-relaxed"
|
|
34398
34393
|
),
|
|
34399
|
-
style: { fontFamily: "Noto Sans, sans-serif" },
|
|
34400
34394
|
children: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("div", { className: "flex-1", children: formattedValue() })
|
|
34401
34395
|
}
|
|
34402
34396
|
)
|
|
@@ -34607,7 +34601,7 @@ var FormCard = import_react56.default.memo(
|
|
|
34607
34601
|
"div",
|
|
34608
34602
|
{
|
|
34609
34603
|
className: cn(
|
|
34610
|
-
"relative w-full rounded-
|
|
34604
|
+
"relative w-full rounded-lg bg-cardSurface border border-gray400 shadow-sm overflow-hidden mb-4",
|
|
34611
34605
|
className
|
|
34612
34606
|
),
|
|
34613
34607
|
children: [
|
|
@@ -34620,18 +34614,18 @@ var FormCard = import_react56.default.memo(
|
|
|
34620
34614
|
children: copied ? /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(Check, { className: "h-4 w-4 text-green-500" }) : /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(Copy, { className: "h-4 w-4" })
|
|
34621
34615
|
}
|
|
34622
34616
|
),
|
|
34623
|
-
/* @__PURE__ */ (0, import_jsx_runtime96.jsxs)("div", { className: "p-
|
|
34617
|
+
/* @__PURE__ */ (0, import_jsx_runtime96.jsxs)("div", { className: "p-4 relative", children: [
|
|
34624
34618
|
!hideTitle && title && /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(
|
|
34625
34619
|
"h3",
|
|
34626
34620
|
{
|
|
34627
|
-
className: "text-
|
|
34621
|
+
className: "text-cardText mb-6 text-sm font-semibold",
|
|
34628
34622
|
children: title
|
|
34629
34623
|
}
|
|
34630
34624
|
),
|
|
34631
34625
|
showTimeline && /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(
|
|
34632
34626
|
"div",
|
|
34633
34627
|
{
|
|
34634
|
-
className: "absolute z-0 left-[
|
|
34628
|
+
className: "absolute z-0 left-[48px] top-[70px] bottom-[40px] w-[2px]",
|
|
34635
34629
|
style: {
|
|
34636
34630
|
background: `
|
|
34637
34631
|
radial-gradient(circle closest-side, #3C3D3E 98%, transparent) 50%/2px 5px repeat-y,
|
|
@@ -34664,7 +34658,7 @@ var FormCard = import_react56.default.memo(
|
|
|
34664
34658
|
field.key
|
|
34665
34659
|
))
|
|
34666
34660
|
] }),
|
|
34667
|
-
isLatestMessage && onProceed && proceedLabel ? /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("div", { className: "my-
|
|
34661
|
+
isLatestMessage && onProceed && proceedLabel ? /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("div", { className: "my-4 flex justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(
|
|
34668
34662
|
"button",
|
|
34669
34663
|
{
|
|
34670
34664
|
onClick: () => {
|
|
@@ -34673,14 +34667,10 @@ var FormCard = import_react56.default.memo(
|
|
|
34673
34667
|
}
|
|
34674
34668
|
},
|
|
34675
34669
|
className: cn(
|
|
34676
|
-
"px-
|
|
34677
|
-
"bg-
|
|
34678
|
-
"hover:bg-purpleText1 dark:hover:bg-purple100 dark:hover:text-white"
|
|
34670
|
+
"px-4 py-1.5 border rounded-lg transition-colors text-xs font-medium",
|
|
34671
|
+
"bg-cardSurface hover:bg-cardSurface/80 text-gold border-cardBorder"
|
|
34679
34672
|
),
|
|
34680
|
-
children:
|
|
34681
|
-
proceedLabel,
|
|
34682
|
-
/* @__PURE__ */ (0, import_jsx_runtime96.jsx)(ChevronRight, { className: "w-4 h-4" })
|
|
34683
|
-
]
|
|
34673
|
+
children: proceedLabel
|
|
34684
34674
|
}
|
|
34685
34675
|
) }) : !isLatestMessage && footer ? /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("div", { className: "flex justify-end items-center pb-4 pr-4 gap-1 text-green-600 text-sm font-medium", children: footer }) : null
|
|
34686
34676
|
]
|
|
@@ -37119,7 +37109,7 @@ var CountrySelectEdit = ({
|
|
|
37119
37109
|
inputValue.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("div", { className: "flex flex-wrap gap-1.5", children: inputValue.map((countryCode) => /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)(
|
|
37120
37110
|
Badge2,
|
|
37121
37111
|
{
|
|
37122
|
-
className: "flex items-center gap-1 px-2 py-
|
|
37112
|
+
className: "flex items-center gap-1 px-2 py-0.5 bg-grayPill border border-gray400 rounded-md text-white text-xs font-medium",
|
|
37123
37113
|
children: [
|
|
37124
37114
|
countryCode,
|
|
37125
37115
|
/* @__PURE__ */ (0, import_jsx_runtime122.jsxs)(
|
|
@@ -37155,7 +37145,7 @@ var CountrySelectDisplay = ({ value }) => {
|
|
|
37155
37145
|
return /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
|
|
37156
37146
|
"div",
|
|
37157
37147
|
{
|
|
37158
|
-
className: "flex items-center gap-
|
|
37148
|
+
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",
|
|
37159
37149
|
children: country ? country.name : item
|
|
37160
37150
|
},
|
|
37161
37151
|
item
|
|
@@ -37204,7 +37194,7 @@ var KeywordBundlesEdit = ({
|
|
|
37204
37194
|
/* @__PURE__ */ (0, import_jsx_runtime122.jsx)("div", { className: "flex flex-wrap gap-1.5", children: Array.isArray(bundle.keywords) && bundle.keywords.map((keyword, kIndex) => /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)(
|
|
37205
37195
|
"div",
|
|
37206
37196
|
{
|
|
37207
|
-
className: "flex items-center gap-
|
|
37197
|
+
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",
|
|
37208
37198
|
onClick: () => {
|
|
37209
37199
|
const updatedBundles = [...bundles];
|
|
37210
37200
|
const currentKeywords = parseKeywords(updatedBundles[bundleIndex].keywords);
|
|
@@ -37303,7 +37293,7 @@ var KeywordBundlesDisplay = ({ value }) => {
|
|
|
37303
37293
|
/* @__PURE__ */ (0, import_jsx_runtime122.jsx)("div", { className: "flex flex-wrap gap-2 pt-1", children: deduped.map((keyword) => /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
|
|
37304
37294
|
"div",
|
|
37305
37295
|
{
|
|
37306
|
-
className: "flex items-center gap-
|
|
37296
|
+
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",
|
|
37307
37297
|
children: keyword
|
|
37308
37298
|
},
|
|
37309
37299
|
keyword
|
|
@@ -37374,7 +37364,7 @@ var PlatformSelectDisplay = ({ value }) => {
|
|
|
37374
37364
|
return /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("div", { className: "flex flex-wrap gap-2 pt-1", children: displayValues.map((platform) => /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
|
|
37375
37365
|
"div",
|
|
37376
37366
|
{
|
|
37377
|
-
className: "flex items-center gap-
|
|
37367
|
+
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",
|
|
37378
37368
|
children: platform
|
|
37379
37369
|
},
|
|
37380
37370
|
platform
|
|
@@ -37399,7 +37389,7 @@ var StringArrayDisplay = ({ value }) => {
|
|
|
37399
37389
|
return /* @__PURE__ */ (0, import_jsx_runtime123.jsx)("div", { className: "flex flex-wrap gap-2 pt-1", children: value.map((item) => /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
|
|
37400
37390
|
"div",
|
|
37401
37391
|
{
|
|
37402
|
-
className: "flex items-center gap-
|
|
37392
|
+
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",
|
|
37403
37393
|
children: item
|
|
37404
37394
|
},
|
|
37405
37395
|
item
|
|
@@ -37558,9 +37548,9 @@ var CampaignSeedCard = import_react64.default.memo(
|
|
|
37558
37548
|
onProceed: handleProceed,
|
|
37559
37549
|
showTimeline: true,
|
|
37560
37550
|
isLatestMessage: effectiveIsLatest,
|
|
37561
|
-
className
|
|
37562
|
-
footer: !effectiveIsLatest && selectionStatus ? /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)("div", { className: "flex justify-end items-center gap-1
|
|
37563
|
-
/* @__PURE__ */ (0, import_jsx_runtime123.jsx)(CircleCheck, { className: "h-3
|
|
37551
|
+
className,
|
|
37552
|
+
footer: !effectiveIsLatest && selectionStatus ? /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)("div", { className: "flex justify-end items-center gap-1 text-green-600 text-[10px] font-semibold py-2 pr-4", children: [
|
|
37553
|
+
/* @__PURE__ */ (0, import_jsx_runtime123.jsx)(CircleCheck, { className: "h-3 w-3" }),
|
|
37564
37554
|
/* @__PURE__ */ (0, import_jsx_runtime123.jsx)("span", { children: selectionStatus === "agent" ? "Suggested by Agent" : "Selected by you" })
|
|
37565
37555
|
] }) : formCardProps.footer
|
|
37566
37556
|
}
|
|
@@ -37725,8 +37715,8 @@ var SearchSpecCard = import_react65.default.memo(
|
|
|
37725
37715
|
onProceed: handleProceed,
|
|
37726
37716
|
isLatestMessage: effectiveIsLatest,
|
|
37727
37717
|
className,
|
|
37728
|
-
footer: !effectiveIsLatest && selectionStatus ? /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)("div", { className: "flex justify-end items-center gap-1
|
|
37729
|
-
/* @__PURE__ */ (0, import_jsx_runtime124.jsx)(CircleCheck, { className: "h-
|
|
37718
|
+
footer: !effectiveIsLatest && selectionStatus ? /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)("div", { className: "flex justify-end items-center gap-1 text-green-600 text-[10px] font-semibold py-1", children: [
|
|
37719
|
+
/* @__PURE__ */ (0, import_jsx_runtime124.jsx)(CircleCheck, { className: "h-3 w-3" }),
|
|
37730
37720
|
/* @__PURE__ */ (0, import_jsx_runtime124.jsx)("span", { children: selectionStatus === "agent" ? "Selected by Agent" : "Selected by User" })
|
|
37731
37721
|
] }) : formCardProps.footer
|
|
37732
37722
|
}
|
|
@@ -37739,6 +37729,31 @@ SearchSpecCard.displayName = "SearchSpecCard";
|
|
|
37739
37729
|
var import_react66 = __toESM(require("react"), 1);
|
|
37740
37730
|
|
|
37741
37731
|
// src/molecules/creator-discovery/MCQCard/defaultFetchers.ts
|
|
37732
|
+
function getBackendOrigin() {
|
|
37733
|
+
if (typeof window === "undefined") return null;
|
|
37734
|
+
return window.__NEXT_DATA__?.runtimeConfig?.NEXT_PUBLIC_AGENT_BACKEND ?? (typeof process !== "undefined" ? process.env?.NEXT_PUBLIC_AGENT_BACKEND : void 0) ?? null;
|
|
37735
|
+
}
|
|
37736
|
+
function getBaseUrl() {
|
|
37737
|
+
const backend = getBackendOrigin();
|
|
37738
|
+
if (backend) return `${backend}/api/custom-agents`;
|
|
37739
|
+
return "/api/agents-proxy/custom-agents";
|
|
37740
|
+
}
|
|
37741
|
+
function getAuthToken() {
|
|
37742
|
+
if (typeof document === "undefined") return null;
|
|
37743
|
+
for (const name of ["adminTokenBuilder", "adminToken", "token"]) {
|
|
37744
|
+
const match2 = document.cookie.match(new RegExp(`(?:^|;\\s*)${name}=([^;]*)`));
|
|
37745
|
+
if (match2?.[1]) return match2[1];
|
|
37746
|
+
}
|
|
37747
|
+
return null;
|
|
37748
|
+
}
|
|
37749
|
+
function buildHeaders() {
|
|
37750
|
+
const headers = { "Content-Type": "application/json" };
|
|
37751
|
+
if (getBackendOrigin()) {
|
|
37752
|
+
const token = getAuthToken();
|
|
37753
|
+
if (token) headers["Authorization"] = `Bearer ${token}`;
|
|
37754
|
+
}
|
|
37755
|
+
return headers;
|
|
37756
|
+
}
|
|
37742
37757
|
var STORAGE_KEY = (sessionId) => `mcq_selections_${sessionId}`;
|
|
37743
37758
|
function getLocalSelections(sessionId) {
|
|
37744
37759
|
try {
|
|
@@ -37761,10 +37776,10 @@ async function defaultFetchSelections(sessionId) {
|
|
|
37761
37776
|
if (Object.keys(local).length > 0) return local;
|
|
37762
37777
|
try {
|
|
37763
37778
|
const res = await fetch(
|
|
37764
|
-
|
|
37779
|
+
`${getBaseUrl()}/sessions/${sessionId}/mcq-selections/get`,
|
|
37765
37780
|
{
|
|
37766
37781
|
method: "POST",
|
|
37767
|
-
headers:
|
|
37782
|
+
headers: buildHeaders(),
|
|
37768
37783
|
body: "{}"
|
|
37769
37784
|
}
|
|
37770
37785
|
);
|
|
@@ -37786,10 +37801,10 @@ async function defaultPersistSelection(sessionId, questionKey, value) {
|
|
|
37786
37801
|
setLocalSelection(sessionId, questionKey, value);
|
|
37787
37802
|
try {
|
|
37788
37803
|
await fetch(
|
|
37789
|
-
|
|
37804
|
+
`${getBaseUrl()}/sessions/${sessionId}/mcq-selections`,
|
|
37790
37805
|
{
|
|
37791
37806
|
method: "PATCH",
|
|
37792
|
-
headers:
|
|
37807
|
+
headers: buildHeaders(),
|
|
37793
37808
|
body: JSON.stringify({ question_key: questionKey, value })
|
|
37794
37809
|
}
|
|
37795
37810
|
);
|
|
@@ -37884,75 +37899,61 @@ var MCQCard = import_react66.default.memo(
|
|
|
37884
37899
|
"div",
|
|
37885
37900
|
{
|
|
37886
37901
|
className: cn(
|
|
37887
|
-
"p-
|
|
37902
|
+
"p-4 rounded-lg border border-gray400 bg-cardSurface w-full",
|
|
37888
37903
|
className
|
|
37889
37904
|
),
|
|
37890
37905
|
children: [
|
|
37891
|
-
/* @__PURE__ */ (0, import_jsx_runtime125.jsx)("div", { className: "mb-4", children: /* @__PURE__ */ (0, import_jsx_runtime125.jsx)("
|
|
37892
|
-
/* @__PURE__ */ (0, import_jsx_runtime125.jsx)("div", { className: "
|
|
37906
|
+
/* @__PURE__ */ (0, import_jsx_runtime125.jsx)("div", { className: "mb-4", children: /* @__PURE__ */ (0, import_jsx_runtime125.jsx)("p", { className: "text-sm text-cardText", children: question }) }),
|
|
37907
|
+
/* @__PURE__ */ (0, import_jsx_runtime125.jsx)("div", { className: "space-y-2.5 mb-4", children: optionsEntries.map(([key, label]) => {
|
|
37893
37908
|
const isSelected = selectedOption === key;
|
|
37894
37909
|
const isRecommended = key === recommended;
|
|
37895
|
-
return /* @__PURE__ */ (0, import_jsx_runtime125.
|
|
37910
|
+
return /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
|
|
37896
37911
|
"div",
|
|
37897
37912
|
{
|
|
37898
37913
|
onClick: (e) => handleOptionClick(key, e),
|
|
37899
37914
|
className: cn(
|
|
37900
|
-
"cursor-pointer rounded-
|
|
37901
|
-
"border
|
|
37915
|
+
"cursor-pointer rounded-lg p-3 transition-colors",
|
|
37916
|
+
"border bg-black",
|
|
37917
|
+
isSelected ? "border-cardBorder" : "border-gray400",
|
|
37902
37918
|
!selectedOption && !isOptionsDisabled && "hover:border-gray500",
|
|
37903
37919
|
(isLoading || isOptionsDisabled) && "opacity-50 cursor-not-allowed"
|
|
37904
37920
|
),
|
|
37905
|
-
children: [
|
|
37906
|
-
/* @__PURE__ */ (0, import_jsx_runtime125.jsx)("div", { className: "
|
|
37921
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)("div", { className: "flex items-start gap-3", children: [
|
|
37922
|
+
/* @__PURE__ */ (0, import_jsx_runtime125.jsx)("div", { className: "mt-0.5 flex-shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
|
|
37907
37923
|
"div",
|
|
37908
37924
|
{
|
|
37909
37925
|
className: cn(
|
|
37910
|
-
"w-
|
|
37911
|
-
isSelected ? "border-
|
|
37912
|
-
"border-
|
|
37913
|
-
!selectedOption && !isOptionsDisabled && "hover:border-
|
|
37926
|
+
"w-4 h-4 rounded-full border-2 flex items-center justify-center transition-colors",
|
|
37927
|
+
isSelected ? "border-gold" : cn(
|
|
37928
|
+
"border-gray500",
|
|
37929
|
+
!selectedOption && !isOptionsDisabled && "hover:border-gold"
|
|
37914
37930
|
)
|
|
37915
37931
|
),
|
|
37916
|
-
children: isSelected && /* @__PURE__ */ (0, import_jsx_runtime125.jsx)("div", { className: "w-2
|
|
37932
|
+
children: isSelected && /* @__PURE__ */ (0, import_jsx_runtime125.jsx)("div", { className: "w-2 h-2 rounded-full bg-gold" })
|
|
37917
37933
|
}
|
|
37918
37934
|
) }),
|
|
37919
|
-
/* @__PURE__ */ (0, import_jsx_runtime125.jsxs)("div", { className: "
|
|
37920
|
-
|
|
37921
|
-
|
|
37922
|
-
isSelected && /* @__PURE__ */ (0, import_jsx_runtime125.jsx)("div", { className: "flex text-xs font-semibold", children: /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
|
|
37923
|
-
"p",
|
|
37924
|
-
{
|
|
37925
|
-
className: cn(
|
|
37926
|
-
"px-2 py-1 rounded-[20px]",
|
|
37927
|
-
selectedOption === recommended ? "bg-purpleLight text-purpleText2 dark:bg-primary/20 dark:text-primary" : "bg-paperBackground text-primaryDark2 dark:bg-primary/20 dark:text-primary"
|
|
37928
|
-
),
|
|
37929
|
-
children: "Selected by you"
|
|
37930
|
-
}
|
|
37931
|
-
) })
|
|
37932
|
-
] }),
|
|
37933
|
-
/* @__PURE__ */ (0, import_jsx_runtime125.jsx)("div", { className: "text-base font-medium text-txtColor", children: label })
|
|
37935
|
+
/* @__PURE__ */ (0, import_jsx_runtime125.jsxs)("div", { className: "flex-1 min-w-0", children: [
|
|
37936
|
+
isRecommended && /* @__PURE__ */ (0, import_jsx_runtime125.jsx)("p", { className: "text-xs font-semibold text-gold mb-1", children: "Recommended" }),
|
|
37937
|
+
/* @__PURE__ */ (0, import_jsx_runtime125.jsx)("p", { className: "text-sm text-cardText", children: label })
|
|
37934
37938
|
] })
|
|
37935
|
-
]
|
|
37939
|
+
] })
|
|
37936
37940
|
},
|
|
37937
37941
|
key
|
|
37938
37942
|
);
|
|
37939
|
-
}) })
|
|
37940
|
-
/* @__PURE__ */ (0, import_jsx_runtime125.
|
|
37941
|
-
|
|
37942
|
-
|
|
37943
|
-
|
|
37944
|
-
|
|
37945
|
-
|
|
37946
|
-
|
|
37947
|
-
|
|
37948
|
-
|
|
37949
|
-
|
|
37950
|
-
|
|
37951
|
-
|
|
37952
|
-
|
|
37953
|
-
),
|
|
37954
|
-
/* @__PURE__ */ (0, import_jsx_runtime125.jsx)("div", { className: "flex-1" })
|
|
37955
|
-
] })
|
|
37943
|
+
}) }),
|
|
37944
|
+
/* @__PURE__ */ (0, import_jsx_runtime125.jsx)("div", { className: "flex justify-end", children: /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
|
|
37945
|
+
"button",
|
|
37946
|
+
{
|
|
37947
|
+
onClick: handleProceed,
|
|
37948
|
+
disabled: isContinueDisabled || isLoading || !selectedOption && !recommended,
|
|
37949
|
+
className: cn(
|
|
37950
|
+
"px-4 py-1.5 border rounded-lg text-xs font-medium transition-colors",
|
|
37951
|
+
"disabled:opacity-50 disabled:cursor-not-allowed",
|
|
37952
|
+
"bg-cardSurface hover:bg-cardSurface/80 text-gold border-cardBorder"
|
|
37953
|
+
),
|
|
37954
|
+
children: isLoading ? "Sending..." : "Continue"
|
|
37955
|
+
}
|
|
37956
|
+
) })
|
|
37956
37957
|
]
|
|
37957
37958
|
}
|
|
37958
37959
|
);
|
|
@@ -38613,9 +38614,9 @@ var CampaignConceptCard = import_react68.default.memo(
|
|
|
38613
38614
|
idx + 1,
|
|
38614
38615
|
"."
|
|
38615
38616
|
] }),
|
|
38616
|
-
/* @__PURE__ */ (0, import_jsx_runtime137.jsx)("span", { className: "inline-flex items-center bg-
|
|
38617
|
-
/* @__PURE__ */ (0, import_jsx_runtime137.jsx)("span", { className: "text-
|
|
38618
|
-
/* @__PURE__ */ (0, import_jsx_runtime137.jsx)("span", { className: "inline-flex items-center bg-
|
|
38617
|
+
/* @__PURE__ */ (0, import_jsx_runtime137.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) }),
|
|
38618
|
+
/* @__PURE__ */ (0, import_jsx_runtime137.jsx)("span", { className: "text-cardText", children: "=" }),
|
|
38619
|
+
/* @__PURE__ */ (0, import_jsx_runtime137.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) })
|
|
38619
38620
|
] }, idx);
|
|
38620
38621
|
}) });
|
|
38621
38622
|
}
|
|
@@ -38628,9 +38629,9 @@ var CampaignConceptCard = import_react68.default.memo(
|
|
|
38628
38629
|
idx + 1,
|
|
38629
38630
|
"."
|
|
38630
38631
|
] }),
|
|
38631
|
-
/* @__PURE__ */ (0, import_jsx_runtime137.jsx)("span", { className: "inline-flex items-center bg-
|
|
38632
|
-
/* @__PURE__ */ (0, import_jsx_runtime137.jsx)("span", { className: "text-
|
|
38633
|
-
/* @__PURE__ */ (0, import_jsx_runtime137.jsx)("span", { className: "inline-flex items-center bg-
|
|
38632
|
+
/* @__PURE__ */ (0, import_jsx_runtime137.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) }),
|
|
38633
|
+
/* @__PURE__ */ (0, import_jsx_runtime137.jsx)("span", { className: "text-cardText", children: "=" }),
|
|
38634
|
+
/* @__PURE__ */ (0, import_jsx_runtime137.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) })
|
|
38634
38635
|
] }, k)) });
|
|
38635
38636
|
}
|
|
38636
38637
|
return /* @__PURE__ */ (0, import_jsx_runtime137.jsx)("span", { className: "text-muted-foreground text-sm", children: String(val) });
|
|
@@ -38672,7 +38673,7 @@ var CampaignConceptCard = import_react68.default.memo(
|
|
|
38672
38673
|
if (!val)
|
|
38673
38674
|
return /* @__PURE__ */ (0, import_jsx_runtime137.jsx)("span", { className: "text-muted-foreground text-sm", children: "-" });
|
|
38674
38675
|
const displayValue = typeof val === "object" && !Array.isArray(val) ? `${val.min ?? 0}-${val.max ?? 0}` : String(val);
|
|
38675
|
-
return /* @__PURE__ */ (0, import_jsx_runtime137.jsx)("span", { className: "text-
|
|
38676
|
+
return /* @__PURE__ */ (0, import_jsx_runtime137.jsx)("span", { className: "text-cardText text-sm", children: displayValue });
|
|
38676
38677
|
},
|
|
38677
38678
|
renderEdit: (v, onChange) => /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(
|
|
38678
38679
|
Input,
|
|
@@ -38697,7 +38698,7 @@ var CampaignConceptCard = import_react68.default.memo(
|
|
|
38697
38698
|
return {
|
|
38698
38699
|
...field,
|
|
38699
38700
|
label: field.label || "Primary KPI",
|
|
38700
|
-
renderDisplay: (val) => /* @__PURE__ */ (0, import_jsx_runtime137.jsx)("span", { className: "text-
|
|
38701
|
+
renderDisplay: (val) => /* @__PURE__ */ (0, import_jsx_runtime137.jsx)("span", { className: "text-cardText text-sm", children: val ? String(val) : "-" }),
|
|
38701
38702
|
renderEdit: (v, onChange) => /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(
|
|
38702
38703
|
Input,
|
|
38703
38704
|
{
|
|
@@ -38715,7 +38716,7 @@ var CampaignConceptCard = import_react68.default.memo(
|
|
|
38715
38716
|
label: field.label || "Secondary KPIs",
|
|
38716
38717
|
renderDisplay: (val) => {
|
|
38717
38718
|
const display = Array.isArray(val) ? val.map(String).join(", ") : val ? String(val) : "-";
|
|
38718
|
-
return /* @__PURE__ */ (0, import_jsx_runtime137.jsx)("span", { className: "text-
|
|
38719
|
+
return /* @__PURE__ */ (0, import_jsx_runtime137.jsx)("span", { className: "text-cardText text-sm", children: display });
|
|
38719
38720
|
},
|
|
38720
38721
|
renderEdit: (v, onChange) => /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(
|
|
38721
38722
|
Textarea,
|
|
@@ -38742,7 +38743,7 @@ var CampaignConceptCard = import_react68.default.memo(
|
|
|
38742
38743
|
return {
|
|
38743
38744
|
...field,
|
|
38744
38745
|
type: "textarea",
|
|
38745
|
-
renderDisplay: (val) => /* @__PURE__ */ (0, import_jsx_runtime137.jsx)("span", { className: "text-
|
|
38746
|
+
renderDisplay: (val) => /* @__PURE__ */ (0, import_jsx_runtime137.jsx)("span", { className: "text-cardText text-sm leading-relaxed", children: val ? String(val) : "-" })
|
|
38746
38747
|
};
|
|
38747
38748
|
}
|
|
38748
38749
|
return {
|
|
@@ -38756,7 +38757,7 @@ var CampaignConceptCard = import_react68.default.memo(
|
|
|
38756
38757
|
return /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(
|
|
38757
38758
|
"span",
|
|
38758
38759
|
{
|
|
38759
|
-
className: "inline-flex items-center bg-
|
|
38760
|
+
className: "inline-flex items-center bg-black border border-cardBorder px-2 py-0.5 text-cardText text-xs font-medium rounded-md",
|
|
38760
38761
|
children: label
|
|
38761
38762
|
},
|
|
38762
38763
|
idx
|
|
@@ -38766,7 +38767,7 @@ var CampaignConceptCard = import_react68.default.memo(
|
|
|
38766
38767
|
if (typeof val === "object" && val !== null) {
|
|
38767
38768
|
return /* @__PURE__ */ (0, import_jsx_runtime137.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") });
|
|
38768
38769
|
}
|
|
38769
|
-
return /* @__PURE__ */ (0, import_jsx_runtime137.jsx)("span", { className: "text-
|
|
38770
|
+
return /* @__PURE__ */ (0, import_jsx_runtime137.jsx)("span", { className: "text-cardText text-sm", children: val !== void 0 && val !== null ? String(val) : "-" });
|
|
38770
38771
|
}
|
|
38771
38772
|
};
|
|
38772
38773
|
});
|
|
@@ -38775,19 +38776,19 @@ var CampaignConceptCard = import_react68.default.memo(
|
|
|
38775
38776
|
"div",
|
|
38776
38777
|
{
|
|
38777
38778
|
className: cn(
|
|
38778
|
-
"w-full rounded-
|
|
38779
|
-
isSelected || isRecommended ? "border-2 border-
|
|
38779
|
+
"w-full rounded-lg border bg-cardSurface relative transition-all duration-300",
|
|
38780
|
+
isSelected || isRecommended ? "border-2 border-cardBorder" : "border-gray400",
|
|
38780
38781
|
className
|
|
38781
38782
|
),
|
|
38782
38783
|
children: [
|
|
38783
38784
|
/* @__PURE__ */ (0, import_jsx_runtime137.jsxs)(
|
|
38784
38785
|
"div",
|
|
38785
38786
|
{
|
|
38786
|
-
className: "px-
|
|
38787
|
+
className: "px-4 py-2.5 relative flex items-center justify-between cursor-pointer select-none",
|
|
38787
38788
|
onClick: handleToggle,
|
|
38788
38789
|
children: [
|
|
38789
38790
|
/* @__PURE__ */ (0, import_jsx_runtime137.jsxs)("div", { className: "flex-1", children: [
|
|
38790
|
-
/* @__PURE__ */ (0, import_jsx_runtime137.jsxs)("h3", { className: "
|
|
38791
|
+
/* @__PURE__ */ (0, import_jsx_runtime137.jsxs)("h3", { className: "text-cardText font-semibold text-sm", children: [
|
|
38791
38792
|
"Concept ",
|
|
38792
38793
|
index !== void 0 ? index : "",
|
|
38793
38794
|
" :",
|
|
@@ -38795,8 +38796,8 @@ var CampaignConceptCard = import_react68.default.memo(
|
|
|
38795
38796
|
typeof cardTitle === "object" ? JSON.stringify(cardTitle) : String(cardTitle)
|
|
38796
38797
|
] }),
|
|
38797
38798
|
/* @__PURE__ */ (0, import_jsx_runtime137.jsxs)("div", { className: "flex flex-wrap gap-2", children: [
|
|
38798
|
-
isRecommended && /* @__PURE__ */ (0, import_jsx_runtime137.jsx)("
|
|
38799
|
-
!effectiveIsLatest && selectionStatus && /* @__PURE__ */ (0, import_jsx_runtime137.jsx)("
|
|
38799
|
+
isRecommended && /* @__PURE__ */ (0, import_jsx_runtime137.jsx)("span", { className: "text-[10px] font-semibold uppercase tracking-widest text-gold", children: "Recommended" }),
|
|
38800
|
+
!effectiveIsLatest && selectionStatus && /* @__PURE__ */ (0, import_jsx_runtime137.jsx)("span", { className: "text-[10px] font-semibold uppercase tracking-widest text-gold", children: selectionStatus === "agent" ? "Selected by Agent" : "Selected by You" })
|
|
38800
38801
|
] })
|
|
38801
38802
|
] }),
|
|
38802
38803
|
/* @__PURE__ */ (0, import_jsx_runtime137.jsx)(
|
|
@@ -38812,7 +38813,7 @@ var CampaignConceptCard = import_react68.default.memo(
|
|
|
38812
38813
|
e.stopPropagation();
|
|
38813
38814
|
handleToggle();
|
|
38814
38815
|
},
|
|
38815
|
-
className: "p-2 bg-
|
|
38816
|
+
className: "p-2 bg-cardSurface hover:bg-gray200 text-cardText rounded-lg",
|
|
38816
38817
|
"aria-label": isOpen ? "Collapse" : "Expand",
|
|
38817
38818
|
title: isOpen ? "Collapse" : "Expand",
|
|
38818
38819
|
children: /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(
|
|
@@ -38836,11 +38837,11 @@ var CampaignConceptCard = import_react68.default.memo(
|
|
|
38836
38837
|
exit: { height: 0, opacity: 0 },
|
|
38837
38838
|
transition: { duration: 0.2, ease: "easeIn" },
|
|
38838
38839
|
className: "overflow-hidden",
|
|
38839
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime137.jsxs)("div", { className: "px-
|
|
38840
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime137.jsxs)("div", { className: "px-3 py-2 w-full relative", children: [
|
|
38840
38841
|
/* @__PURE__ */ (0, import_jsx_runtime137.jsx)(
|
|
38841
38842
|
"div",
|
|
38842
38843
|
{
|
|
38843
|
-
className: "absolute left-[
|
|
38844
|
+
className: "absolute left-[48px] top-[70px] bottom-[40px] w-[2px]",
|
|
38844
38845
|
style: {
|
|
38845
38846
|
background: `radial-gradient(circle closest-side, #3C3D3E 98%, transparent) 50%/2px 5px repeat-y, linear-gradient(#3C3D3E 50%, transparent 0) 50%/2px 10px repeat-y`
|
|
38846
38847
|
}
|
|
@@ -38860,7 +38861,7 @@ var CampaignConceptCard = import_react68.default.memo(
|
|
|
38860
38861
|
hideTitle: true,
|
|
38861
38862
|
hideCopyButton: true,
|
|
38862
38863
|
className: "bg-transparent border-none shadow-none mb-0 p-0",
|
|
38863
|
-
footer: !effectiveIsLatest && selectionStatus ? /* @__PURE__ */ (0, import_jsx_runtime137.jsxs)("div", { className: "flex justify-end items-center gap-1
|
|
38864
|
+
footer: !effectiveIsLatest && selectionStatus ? /* @__PURE__ */ (0, import_jsx_runtime137.jsxs)("div", { className: "flex justify-end items-center gap-1 text-green-600 text-[10px] font-semibold py-2 pr-4", children: [
|
|
38864
38865
|
/* @__PURE__ */ (0, import_jsx_runtime137.jsx)(CircleCheck, { className: "h-3.5 w-3.5" }),
|
|
38865
38866
|
/* @__PURE__ */ (0, import_jsx_runtime137.jsx)("span", { children: selectionStatus === "agent" ? "Selected by Agent" : "Selected by You" })
|
|
38866
38867
|
] }) : formCardProps.footer
|