pxengine 0.1.25 → 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 CHANGED
@@ -35376,6 +35376,7 @@ var CampaignSeedCard = import_react60.default.memo(
35376
35376
  ({
35377
35377
  selectionStatus,
35378
35378
  isLatestMessage = true,
35379
+ hasUserResponded = false,
35379
35380
  className,
35380
35381
  fields: providedFields,
35381
35382
  data,
@@ -35392,6 +35393,7 @@ var CampaignSeedCard = import_react60.default.memo(
35392
35393
  data
35393
35394
  });
35394
35395
  };
35396
+ const effectiveIsLatest = isLatestMessage && !hasUserResponded;
35395
35397
  return /* @__PURE__ */ (0, import_jsx_runtime107.jsx)("div", { className: "flex flex-col gap-2", children: /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(
35396
35398
  FormCard,
35397
35399
  {
@@ -35402,8 +35404,9 @@ var CampaignSeedCard = import_react60.default.memo(
35402
35404
  proceedLabel: "Continue to concepts",
35403
35405
  onProceed: handleProceed,
35404
35406
  showTimeline: true,
35407
+ isLatestMessage: effectiveIsLatest,
35405
35408
  className: cn("font-noto", className),
35406
- footer: !isLatestMessage && selectionStatus ? /* @__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: [
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: [
35407
35410
  /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(CircleCheck, { className: "h-3.5 w-3.5" }),
35408
35411
  /* @__PURE__ */ (0, import_jsx_runtime107.jsx)("span", { children: selectionStatus === "agent" ? "Suggested by Agent" : "Selected by you" })
35409
35412
  ] }) : formCardProps.footer
@@ -35478,6 +35481,7 @@ var SearchSpecCard = import_react61.default.memo(
35478
35481
  ({
35479
35482
  selectionStatus,
35480
35483
  isLatestMessage = true,
35484
+ hasUserResponded = false,
35481
35485
  className,
35482
35486
  fields: providedFields,
35483
35487
  data,
@@ -35496,6 +35500,7 @@ var SearchSpecCard = import_react61.default.memo(
35496
35500
  data: resolvedData
35497
35501
  });
35498
35502
  };
35503
+ const effectiveIsLatest = isLatestMessage && !hasUserResponded;
35499
35504
  return /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(
35500
35505
  FormCard,
35501
35506
  {
@@ -35505,8 +35510,9 @@ var SearchSpecCard = import_react61.default.memo(
35505
35510
  fields,
35506
35511
  proceedLabel: "Continue with search",
35507
35512
  onProceed: handleProceed,
35513
+ isLatestMessage: effectiveIsLatest,
35508
35514
  className,
35509
- footer: !isLatestMessage && selectionStatus ? /* @__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: [
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: [
35510
35516
  /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(CircleCheck, { className: "h-4 w-4" }),
35511
35517
  /* @__PURE__ */ (0, import_jsx_runtime108.jsx)("span", { children: selectionStatus === "agent" ? "Selected by Agent" : "Selected by User" })
35512
35518
  ] }) : formCardProps.footer
@@ -35530,11 +35536,15 @@ var MCQCard = import_react62.default.memo(
35530
35536
  isLatestMessage = true,
35531
35537
  isLoading = false,
35532
35538
  className,
35533
- selectionStatus,
35539
+ // selectionStatus,
35534
35540
  onAction,
35535
- disabled = false
35541
+ disabled = false,
35542
+ disableContinueInDiscovery
35543
+ // optional prop
35536
35544
  }) => {
35537
- const [selectedOption, setSelectedOption] = import_react62.default.useState(propsSelectedOption);
35545
+ const [selectedOption, setSelectedOption] = import_react62.default.useState(
35546
+ propsSelectedOption
35547
+ );
35538
35548
  const [isProceeded, setIsProceeded] = import_react62.default.useState(false);
35539
35549
  import_react62.default.useEffect(() => {
35540
35550
  if (propsSelectedOption) {
@@ -35542,6 +35552,7 @@ var MCQCard = import_react62.default.memo(
35542
35552
  setIsProceeded(true);
35543
35553
  }
35544
35554
  }, [propsSelectedOption]);
35555
+ const isDiscovery = disableContinueInDiscovery !== void 0 ? disableContinueInDiscovery : typeof window !== "undefined" && window.location.pathname.includes("creator-discovery");
35545
35556
  const handleOptionClick = (key, e) => {
35546
35557
  e.preventDefault();
35547
35558
  e.stopPropagation();
@@ -35560,11 +35571,13 @@ var MCQCard = import_react62.default.memo(
35560
35571
  onAction?.({
35561
35572
  type: "mcq_selection",
35562
35573
  value: result,
35563
- label: options[result] || result
35574
+ label: options && options[result] || result
35564
35575
  });
35565
35576
  }
35566
35577
  };
35567
- const isInteractionDisabled = disabled || !isLatestMessage || isProceeded;
35578
+ const isOptionsDisabled = disabled || !isLatestMessage || isProceeded && !disableContinueInDiscovery;
35579
+ const isContinueDisabled = disabled || !isLatestMessage || isProceeded || isDiscovery;
35580
+ const optionsEntries = options ? Object.entries(options) : [];
35568
35581
  return /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(
35569
35582
  "div",
35570
35583
  {
@@ -35574,7 +35587,7 @@ var MCQCard = import_react62.default.memo(
35574
35587
  ),
35575
35588
  children: [
35576
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 }) }),
35577
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)("div", { className: "mb-6", children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)("div", { className: "space-y-4", children: Object.entries(options).map(([key, label]) => {
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]) => {
35578
35591
  const isSelected = selectedOption === key;
35579
35592
  const isRecommended = key === recommended;
35580
35593
  return /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(
@@ -35584,8 +35597,8 @@ var MCQCard = import_react62.default.memo(
35584
35597
  className: cn(
35585
35598
  "cursor-pointer rounded-xl p-3 transition-colors relative",
35586
35599
  "border border-transparent bg-paperBackground",
35587
- !selectedOption && !isInteractionDisabled && "hover:border-gray500",
35588
- (isLoading || isInteractionDisabled) && "opacity-50 cursor-not-allowed"
35600
+ !selectedOption && !isOptionsDisabled && "hover:border-gray500",
35601
+ (isLoading || isOptionsDisabled) && "opacity-50 cursor-not-allowed"
35589
35602
  ),
35590
35603
  children: [
35591
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)(
@@ -35595,7 +35608,7 @@ var MCQCard = import_react62.default.memo(
35595
35608
  "w-5 h-5 rounded-full border flex items-center justify-center transition-colors",
35596
35609
  isSelected ? "border-purple100 bg-gray300" : cn(
35597
35610
  "border-gray300 bg-background",
35598
- !selectedOption && !isInteractionDisabled && "hover:border-purple100"
35611
+ !selectedOption && !isOptionsDisabled && "hover:border-purple100"
35599
35612
  )
35600
35613
  ),
35601
35614
  children: isSelected && /* @__PURE__ */ (0, import_jsx_runtime109.jsx)("div", { className: "w-2.5 h-2.5 rounded-full bg-purple100" })
@@ -35627,8 +35640,8 @@ var MCQCard = import_react62.default.memo(
35627
35640
  /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
35628
35641
  "button",
35629
35642
  {
35630
- onClick: (e) => handleProceed(e),
35631
- disabled: isInteractionDisabled || isLoading || !selectedOption && !recommended,
35643
+ onClick: handleProceed,
35644
+ disabled: isContinueDisabled || isLoading || !selectedOption && !recommended,
35632
35645
  className: cn(
35633
35646
  "flex-3 px-4 py-2 border rounded-full text-sm disabled:opacity-50 disabled:cursor-not-allowed transition-colors",
35634
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"
@@ -35636,10 +35649,7 @@ var MCQCard = import_react62.default.memo(
35636
35649
  children: isLoading ? "Sending..." : "Continue"
35637
35650
  }
35638
35651
  ),
35639
- isLatestMessage ? /* @__PURE__ */ (0, import_jsx_runtime109.jsx)("div", { className: "flex-1" }) : /* @__PURE__ */ (0, import_jsx_runtime109.jsx)("div", { className: "flex-1 text-right text-xs bg-green100 text-green-600 dark:text-green500", children: selectionStatus === "agent" ? /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)("div", { className: "flex flex-col gap-1 sm:flex-row sm:justify-end", children: [
35640
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)("span", { className: "whitespace-nowrap", children: "Suggested by an Agent," }),
35641
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)("span", { className: "whitespace-nowrap", children: "Approved by You" })
35642
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime109.jsx)("span", { children: "Selected by you" }) })
35652
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsx)("div", { className: "flex-1" })
35643
35653
  ] })
35644
35654
  ]
35645
35655
  }
@@ -36225,6 +36235,7 @@ var CampaignConceptCard = import_react64.default.memo(
36225
36235
  title: propsTitle,
36226
36236
  selectionStatus,
36227
36237
  isLatestMessage = true,
36238
+ hasUserResponded = false,
36228
36239
  className,
36229
36240
  onAction,
36230
36241
  ...formCardProps
@@ -36246,6 +36257,7 @@ var CampaignConceptCard = import_react64.default.memo(
36246
36257
  data
36247
36258
  });
36248
36259
  };
36260
+ const effectiveIsLatest = isLatestMessage && !hasUserResponded;
36249
36261
  const fields = (0, import_react64.useMemo)(() => {
36250
36262
  const baseFields = providedFields || generateFieldsFromData(data);
36251
36263
  return baseFields.map((field) => {
@@ -36353,7 +36365,10 @@ var CampaignConceptCard = import_react64.default.memo(
36353
36365
  children: [
36354
36366
  /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)("div", { className: "flex flex-col gap-2", children: [
36355
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) }),
36356
- 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" }) })
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
+ ] })
36357
36372
  ] }),
36358
36373
  /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(
36359
36374
  "div",
@@ -36386,8 +36401,9 @@ var CampaignConceptCard = import_react64.default.memo(
36386
36401
  showTimeline: true,
36387
36402
  proceedLabel: "Continue with this concept",
36388
36403
  onProceed: handleProceed,
36404
+ isLatestMessage: effectiveIsLatest,
36389
36405
  className: "bg-transparent border-none shadow-none mb-0 p-0",
36390
- footer: !isLatestMessage && selectionStatus ? /* @__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: [
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: [
36391
36407
  /* @__PURE__ */ (0, import_jsx_runtime121.jsx)(CircleCheck, { className: "h-3.5 w-3.5" }),
36392
36408
  /* @__PURE__ */ (0, import_jsx_runtime121.jsx)("span", { children: selectionStatus === "agent" ? "Selected by Agent" : "Selected by You" })
36393
36409
  ] }) : formCardProps.footer