pxengine 0.1.136 → 0.1.138

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
@@ -352,6 +352,7 @@ __export(index_exports, {
352
352
  isInputAtom: () => isInputAtom,
353
353
  notifyPxUnauthorized: () => notifyPxUnauthorized,
354
354
  refreshSharedPoll: () => refreshSharedPoll,
355
+ resolveComponent: () => resolveComponent,
355
356
  setPxAuthTokenProvider: () => setPxAuthTokenProvider,
356
357
  setPxUnauthorizedHandler: () => setPxUnauthorizedHandler,
357
358
  submitWidgetToAgent: () => submitWidgetToAgent,
@@ -16126,6 +16127,7 @@ var NextStepCard = ({
16126
16127
 
16127
16128
  // src/molecules/generic/PresentationJobCard/PresentationJobCard.tsx
16128
16129
  var import_react81 = require("react");
16130
+ var import_react_dom = require("react-dom");
16129
16131
 
16130
16132
  // src/lib/shared-poll.ts
16131
16133
  var import_react79 = require("react");
@@ -16519,48 +16521,51 @@ var ExportModal = ({ formats, title, onClose }) => {
16519
16521
  setDownloadingKey(null);
16520
16522
  }
16521
16523
  };
16522
- return /* @__PURE__ */ (0, import_jsx_runtime151.jsxs)("div", { className: "fixed inset-0 z-50 flex items-center justify-center p-4", children: [
16523
- /* @__PURE__ */ (0, import_jsx_runtime151.jsx)("div", { className: "absolute inset-0 bg-black/70 backdrop-blur-sm", onClick: onClose }),
16524
- /* @__PURE__ */ (0, import_jsx_runtime151.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: [
16525
- /* @__PURE__ */ (0, import_jsx_runtime151.jsxs)("div", { className: "flex items-start justify-between mb-5", children: [
16526
- /* @__PURE__ */ (0, import_jsx_runtime151.jsxs)("div", { className: "min-w-0 pr-3", children: [
16527
- /* @__PURE__ */ (0, import_jsx_runtime151.jsx)("h3", { className: "text-sm font-semibold text-zinc-100", children: "Export Presentation" }),
16528
- /* @__PURE__ */ (0, import_jsx_runtime151.jsx)("p", { className: "text-xs text-zinc-500 mt-0.5 truncate", children: title })
16524
+ return (0, import_react_dom.createPortal)(
16525
+ /* @__PURE__ */ (0, import_jsx_runtime151.jsxs)("div", { className: "fixed inset-0 z-[100] flex items-center justify-center p-4", children: [
16526
+ /* @__PURE__ */ (0, import_jsx_runtime151.jsx)("div", { className: "absolute inset-0 bg-black/70 backdrop-blur-sm", onClick: onClose }),
16527
+ /* @__PURE__ */ (0, import_jsx_runtime151.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: [
16528
+ /* @__PURE__ */ (0, import_jsx_runtime151.jsxs)("div", { className: "flex items-start justify-between mb-5", children: [
16529
+ /* @__PURE__ */ (0, import_jsx_runtime151.jsxs)("div", { className: "min-w-0 pr-3", children: [
16530
+ /* @__PURE__ */ (0, import_jsx_runtime151.jsx)("h3", { className: "text-sm font-semibold text-zinc-100", children: "Export Presentation" }),
16531
+ /* @__PURE__ */ (0, import_jsx_runtime151.jsx)("p", { className: "text-xs text-zinc-500 mt-0.5 truncate", children: title })
16532
+ ] }),
16533
+ /* @__PURE__ */ (0, import_jsx_runtime151.jsx)("button", { onClick: onClose, className: "text-zinc-500 hover:text-zinc-200 transition-colors flex-shrink-0 mt-0.5", children: /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(CloseIcon, {}) })
16529
16534
  ] }),
16530
- /* @__PURE__ */ (0, import_jsx_runtime151.jsx)("button", { onClick: onClose, className: "text-zinc-500 hover:text-zinc-200 transition-colors flex-shrink-0 mt-0.5", children: /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(CloseIcon, {}) })
16531
- ] }),
16532
- /* @__PURE__ */ (0, import_jsx_runtime151.jsxs)("div", { className: "space-y-2.5", children: [
16533
- available.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime151.jsx)("p", { className: "text-sm text-zinc-500 text-center py-6", children: "No formats available yet" }),
16534
- available.map((fmt) => {
16535
- const url = formats[fmt.key];
16536
- const isDownloading = downloadingKey === fmt.key;
16537
- return /* @__PURE__ */ (0, import_jsx_runtime151.jsxs)(
16538
- "button",
16539
- {
16540
- type: "button",
16541
- disabled: Boolean(downloadingKey),
16542
- onClick: () => handleDownload(fmt.key, url, fmt.ext),
16543
- className: cn(
16544
- "flex w-full items-center gap-3.5 p-3.5 rounded-xl border transition-all text-left",
16545
- "hover:brightness-110 disabled:opacity-60 disabled:cursor-not-allowed",
16546
- fmt.accent.bg
16547
- ),
16548
- children: [
16549
- /* @__PURE__ */ (0, import_jsx_runtime151.jsx)("span", { className: "text-xl flex-shrink-0", children: fmt.emoji }),
16550
- /* @__PURE__ */ (0, import_jsx_runtime151.jsxs)("div", { className: "flex-1 min-w-0", children: [
16551
- /* @__PURE__ */ (0, import_jsx_runtime151.jsx)("p", { className: cn("text-sm font-semibold", fmt.accent.text), children: isDownloading ? `Downloading ${fmt.label}...` : fmt.label }),
16552
- /* @__PURE__ */ (0, import_jsx_runtime151.jsx)("p", { className: "text-xs text-zinc-500 mt-0.5 leading-relaxed", children: isDownloading ? "Please wait while the file is being prepared." : fmt.desc })
16553
- ] }),
16554
- /* @__PURE__ */ (0, import_jsx_runtime151.jsx)("span", { className: cn("flex-shrink-0", fmt.accent.text), children: /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(DownloadIcon, {}) })
16555
- ]
16556
- },
16557
- fmt.key
16558
- );
16559
- })
16560
- ] }),
16561
- /* @__PURE__ */ (0, import_jsx_runtime151.jsx)("p", { className: "text-xs text-zinc-600 mt-4 text-center", children: "Download links expire in 90 days" })
16562
- ] })
16563
- ] });
16535
+ /* @__PURE__ */ (0, import_jsx_runtime151.jsxs)("div", { className: "space-y-2.5", children: [
16536
+ available.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime151.jsx)("p", { className: "text-sm text-zinc-500 text-center py-6", children: "No formats available yet" }),
16537
+ available.map((fmt) => {
16538
+ const url = formats[fmt.key];
16539
+ const isDownloading = downloadingKey === fmt.key;
16540
+ return /* @__PURE__ */ (0, import_jsx_runtime151.jsxs)(
16541
+ "button",
16542
+ {
16543
+ type: "button",
16544
+ disabled: Boolean(downloadingKey),
16545
+ onClick: () => handleDownload(fmt.key, url, fmt.ext),
16546
+ className: cn(
16547
+ "flex w-full items-center gap-3.5 p-3.5 rounded-xl border transition-all text-left",
16548
+ "hover:brightness-110 disabled:opacity-60 disabled:cursor-not-allowed",
16549
+ fmt.accent.bg
16550
+ ),
16551
+ children: [
16552
+ /* @__PURE__ */ (0, import_jsx_runtime151.jsx)("span", { className: "text-xl flex-shrink-0", children: fmt.emoji }),
16553
+ /* @__PURE__ */ (0, import_jsx_runtime151.jsxs)("div", { className: "flex-1 min-w-0", children: [
16554
+ /* @__PURE__ */ (0, import_jsx_runtime151.jsx)("p", { className: cn("text-sm font-semibold", fmt.accent.text), children: isDownloading ? `Downloading ${fmt.label}...` : fmt.label }),
16555
+ /* @__PURE__ */ (0, import_jsx_runtime151.jsx)("p", { className: "text-xs text-zinc-500 mt-0.5 leading-relaxed", children: isDownloading ? "Please wait while the file is being prepared." : fmt.desc })
16556
+ ] }),
16557
+ /* @__PURE__ */ (0, import_jsx_runtime151.jsx)("span", { className: cn("flex-shrink-0", fmt.accent.text), children: /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(DownloadIcon, {}) })
16558
+ ]
16559
+ },
16560
+ fmt.key
16561
+ );
16562
+ })
16563
+ ] }),
16564
+ /* @__PURE__ */ (0, import_jsx_runtime151.jsx)("p", { className: "text-xs text-zinc-600 mt-4 text-center", children: "Download links expire in 90 days" })
16565
+ ] })
16566
+ ] }),
16567
+ document.body
16568
+ );
16564
16569
  };
16565
16570
  var FullscreenModal = ({ url, title, slideCount, initialSlide = 1, onClose }) => {
16566
16571
  const [currentSlide, setCurrentSlide] = (0, import_react81.useState)(initialSlide);
@@ -16604,81 +16609,84 @@ var FullscreenModal = ({ url, title, slideCount, initialSlide = 1, onClose }) =>
16604
16609
  setCurrentSlide(newSlide);
16605
16610
  iframe.contentWindow.postMessage({ type: "goToSlide", slide: newSlide }, "*");
16606
16611
  };
16607
- return /* @__PURE__ */ (0, import_jsx_runtime151.jsxs)("div", { className: "fixed inset-0 z-50 bg-black flex flex-col", children: [
16608
- /* @__PURE__ */ (0, import_jsx_runtime151.jsxs)("div", { className: "flex items-center justify-between gap-4 px-4 h-11 bg-zinc-950/90 border-b border-zinc-800/60 flex-shrink-0", children: [
16609
- /* @__PURE__ */ (0, import_jsx_runtime151.jsxs)("div", { className: "flex items-center gap-3 min-w-0", children: [
16610
- /* @__PURE__ */ (0, import_jsx_runtime151.jsx)("span", { className: "text-[#DCC99B] flex-shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(SlidesIcon, {}) }),
16611
- /* @__PURE__ */ (0, import_jsx_runtime151.jsx)("span", { className: "text-sm font-medium text-zinc-300 truncate", children: title }),
16612
- slideCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime151.jsxs)("span", { className: "text-xs text-zinc-600 flex-shrink-0", children: [
16613
- currentSlide,
16614
- " / ",
16615
- slideCount
16612
+ return (0, import_react_dom.createPortal)(
16613
+ /* @__PURE__ */ (0, import_jsx_runtime151.jsxs)("div", { className: "fixed inset-0 z-[100] bg-black flex flex-col", children: [
16614
+ /* @__PURE__ */ (0, import_jsx_runtime151.jsxs)("div", { className: "flex items-center justify-between gap-4 px-4 h-11 bg-zinc-950/90 border-b border-zinc-800/60 flex-shrink-0", children: [
16615
+ /* @__PURE__ */ (0, import_jsx_runtime151.jsxs)("div", { className: "flex items-center gap-3 min-w-0", children: [
16616
+ /* @__PURE__ */ (0, import_jsx_runtime151.jsx)("span", { className: "text-[#DCC99B] flex-shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(SlidesIcon, {}) }),
16617
+ /* @__PURE__ */ (0, import_jsx_runtime151.jsx)("span", { className: "text-sm font-medium text-zinc-300 truncate", children: title }),
16618
+ slideCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime151.jsxs)("span", { className: "text-xs text-zinc-600 flex-shrink-0", children: [
16619
+ currentSlide,
16620
+ " / ",
16621
+ slideCount
16622
+ ] })
16623
+ ] }),
16624
+ /* @__PURE__ */ (0, import_jsx_runtime151.jsxs)("div", { className: "flex items-center gap-2 flex-shrink-0", children: [
16625
+ /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(
16626
+ "button",
16627
+ {
16628
+ onClick: () => sendSlideCommand("prevSlide"),
16629
+ disabled: !iframeReady,
16630
+ className: "w-7 h-7 rounded-full border border-zinc-700 bg-zinc-800 hover:border-[#C0AE82] hover:text-[#DCC99B] text-zinc-400 flex items-center justify-center transition-colors disabled:opacity-30 disabled:cursor-not-allowed",
16631
+ "aria-label": "Previous slide",
16632
+ children: /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(ChevronLeft2, {})
16633
+ }
16634
+ ),
16635
+ /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(
16636
+ "button",
16637
+ {
16638
+ onClick: () => sendSlideCommand("nextSlide"),
16639
+ disabled: !iframeReady,
16640
+ className: "w-7 h-7 rounded-full border border-zinc-700 bg-zinc-800 hover:border-[#C0AE82] hover:text-[#DCC99B] text-zinc-400 flex items-center justify-center transition-colors disabled:opacity-30 disabled:cursor-not-allowed",
16641
+ "aria-label": "Next slide",
16642
+ children: /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(ChevronRight2, {})
16643
+ }
16644
+ ),
16645
+ /* @__PURE__ */ (0, import_jsx_runtime151.jsxs)(
16646
+ "button",
16647
+ {
16648
+ onClick: onClose,
16649
+ className: "flex items-center gap-1.5 px-3 h-7 rounded-lg border border-zinc-700 bg-zinc-800 hover:border-zinc-500 text-zinc-400 hover:text-zinc-200 text-xs transition-colors",
16650
+ children: [
16651
+ /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(CloseIcon, {}),
16652
+ /* @__PURE__ */ (0, import_jsx_runtime151.jsx)("span", { children: "ESC" })
16653
+ ]
16654
+ }
16655
+ )
16616
16656
  ] })
16617
16657
  ] }),
16618
- /* @__PURE__ */ (0, import_jsx_runtime151.jsxs)("div", { className: "flex items-center gap-2 flex-shrink-0", children: [
16619
- /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(
16620
- "button",
16621
- {
16622
- onClick: () => sendSlideCommand("prevSlide"),
16623
- disabled: !iframeReady,
16624
- className: "w-7 h-7 rounded-full border border-zinc-700 bg-zinc-800 hover:border-[#C0AE82] hover:text-[#DCC99B] text-zinc-400 flex items-center justify-center transition-colors disabled:opacity-30 disabled:cursor-not-allowed",
16625
- "aria-label": "Previous slide",
16626
- children: /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(ChevronLeft2, {})
16627
- }
16628
- ),
16629
- /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(
16630
- "button",
16631
- {
16632
- onClick: () => sendSlideCommand("nextSlide"),
16633
- disabled: !iframeReady,
16634
- className: "w-7 h-7 rounded-full border border-zinc-700 bg-zinc-800 hover:border-[#C0AE82] hover:text-[#DCC99B] text-zinc-400 flex items-center justify-center transition-colors disabled:opacity-30 disabled:cursor-not-allowed",
16635
- "aria-label": "Next slide",
16636
- children: /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(ChevronRight2, {})
16637
- }
16638
- ),
16639
- /* @__PURE__ */ (0, import_jsx_runtime151.jsxs)(
16640
- "button",
16641
- {
16642
- onClick: onClose,
16643
- className: "flex items-center gap-1.5 px-3 h-7 rounded-lg border border-zinc-700 bg-zinc-800 hover:border-zinc-500 text-zinc-400 hover:text-zinc-200 text-xs transition-colors",
16644
- children: [
16645
- /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(CloseIcon, {}),
16646
- /* @__PURE__ */ (0, import_jsx_runtime151.jsx)("span", { children: "ESC" })
16647
- ]
16648
- }
16649
- )
16650
- ] })
16651
- ] }),
16652
- /* @__PURE__ */ (0, import_jsx_runtime151.jsx)("div", { ref: containerRef, className: "flex-1 relative flex items-center justify-center overflow-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(
16653
- "div",
16654
- {
16655
- className: "relative",
16656
- style: { width: canvasW * scale, height: canvasH * scale },
16657
- children: /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(
16658
- "iframe",
16659
- {
16660
- ref: iframeRef,
16661
- src: url,
16662
- title,
16663
- onLoad: () => {
16664
- setIframeReady(true);
16665
- hideDeckChrome(iframeRef.current);
16666
- iframeRef.current?.contentWindow?.postMessage({ type: "goToSlide", slide: initialSlide }, "*");
16667
- },
16668
- sandbox: "allow-same-origin allow-scripts",
16669
- allow: "fullscreen",
16670
- className: "absolute top-0 left-0 border-0",
16671
- style: {
16672
- width: canvasW,
16673
- height: canvasH,
16674
- transform: `scale(${scale})`,
16675
- transformOrigin: "top left"
16658
+ /* @__PURE__ */ (0, import_jsx_runtime151.jsx)("div", { ref: containerRef, className: "flex-1 relative flex items-center justify-center overflow-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(
16659
+ "div",
16660
+ {
16661
+ className: "relative",
16662
+ style: { width: canvasW * scale, height: canvasH * scale },
16663
+ children: /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(
16664
+ "iframe",
16665
+ {
16666
+ ref: iframeRef,
16667
+ src: url,
16668
+ title,
16669
+ onLoad: () => {
16670
+ setIframeReady(true);
16671
+ hideDeckChrome(iframeRef.current);
16672
+ iframeRef.current?.contentWindow?.postMessage({ type: "goToSlide", slide: initialSlide }, "*");
16673
+ },
16674
+ sandbox: "allow-same-origin allow-scripts",
16675
+ allow: "fullscreen",
16676
+ className: "absolute top-0 left-0 border-0",
16677
+ style: {
16678
+ width: canvasW,
16679
+ height: canvasH,
16680
+ transform: `scale(${scale})`,
16681
+ transformOrigin: "top left"
16682
+ }
16676
16683
  }
16677
- }
16678
- )
16679
- }
16680
- ) })
16681
- ] });
16684
+ )
16685
+ }
16686
+ ) })
16687
+ ] }),
16688
+ document.body
16689
+ );
16682
16690
  };
16683
16691
  var PresentationJobCard = ({
16684
16692
  job_id: _job_id,
@@ -17774,7 +17782,7 @@ var FullscreenPreviewModal = ({ url, title, onClose, isPdf }) => {
17774
17782
  src: url,
17775
17783
  title,
17776
17784
  className: "absolute inset-0 w-full h-full border-0",
17777
- ...isPdf ? {} : { sandbox: "allow-same-origin" }
17785
+ ...isPdf ? {} : { sandbox: "allow-same-origin allow-scripts" }
17778
17786
  }
17779
17787
  ) })
17780
17788
  ] });
@@ -18816,7 +18824,7 @@ var ResearchReportJobCard = (props) => {
18816
18824
  {
18817
18825
  src: htmlUrl,
18818
18826
  title,
18819
- sandbox: "allow-same-origin",
18827
+ sandbox: "allow-same-origin allow-scripts",
18820
18828
  className: "absolute inset-0 block h-full w-full border-0 pointer-events-none"
18821
18829
  }
18822
18830
  ),
@@ -21674,7 +21682,7 @@ function CreatorCompactView({
21674
21682
 
21675
21683
  // src/molecules/creator-discovery/CreatorWidget/CreatorExpandedPanel.tsx
21676
21684
  var import_react95 = require("react");
21677
- var import_react_dom2 = __toESM(require("react-dom"), 1);
21685
+ var import_react_dom3 = __toESM(require("react-dom"), 1);
21678
21686
  var import_framer_motion5 = require("framer-motion");
21679
21687
 
21680
21688
  // src/molecules/creator-discovery/CreatorWidget/defaultFetchers.ts
@@ -22373,7 +22381,7 @@ function PlatformPostsSection({
22373
22381
 
22374
22382
  // src/molecules/creator-discovery/CreatorWidget/BrandCollaborationsList.tsx
22375
22383
  var import_react93 = require("react");
22376
- var import_react_dom = __toESM(require("react-dom"), 1);
22384
+ var import_react_dom2 = __toESM(require("react-dom"), 1);
22377
22385
  var import_framer_motion3 = require("framer-motion");
22378
22386
  var import_jsx_runtime178 = require("react/jsx-runtime");
22379
22387
  var getSentimentRank = (score) => {
@@ -22419,7 +22427,7 @@ function BrandMentionDetails({
22419
22427
  (m) => m.normalizedBrand?.toLowerCase() === selectedBrand?.toLowerCase() || m.brand?.toLowerCase() === selectedBrand?.toLowerCase()
22420
22428
  ) || [];
22421
22429
  if (typeof window === "undefined") return null;
22422
- return import_react_dom.default.createPortal(
22430
+ return import_react_dom2.default.createPortal(
22423
22431
  /* @__PURE__ */ (0, import_jsx_runtime178.jsx)(import_framer_motion3.AnimatePresence, { mode: "sync", children: open && /* @__PURE__ */ (0, import_jsx_runtime178.jsxs)(import_jsx_runtime178.Fragment, { children: [
22424
22432
  /* @__PURE__ */ (0, import_jsx_runtime178.jsx)(
22425
22433
  import_framer_motion3.motion.div,
@@ -23394,7 +23402,7 @@ function CreatorExpandedPanel({
23394
23402
  }
23395
23403
  }, [isOpen, loadCreators]);
23396
23404
  if (typeof window === "undefined") return null;
23397
- return import_react_dom2.default.createPortal(
23405
+ return import_react_dom3.default.createPortal(
23398
23406
  /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(import_framer_motion5.AnimatePresence, { mode: "sync", children: isOpen && /* @__PURE__ */ (0, import_jsx_runtime180.jsxs)(import_jsx_runtime180.Fragment, { children: [
23399
23407
  /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(
23400
23408
  import_framer_motion5.motion.div,
@@ -26614,6 +26622,7 @@ PXEngineRenderer.displayName = "PXEngineRenderer";
26614
26622
  isInputAtom,
26615
26623
  notifyPxUnauthorized,
26616
26624
  refreshSharedPoll,
26625
+ resolveComponent,
26617
26626
  setPxAuthTokenProvider,
26618
26627
  setPxUnauthorizedHandler,
26619
26628
  submitWidgetToAgent,