pxengine 0.1.117 → 0.1.118
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/README.md +132 -132
- package/config/tailwind-preset.js +159 -159
- package/dist/index.cjs +182 -133
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +182 -133
- package/dist/index.mjs.map +1 -1
- package/dist/registry.json +141 -141
- package/package.json +124 -124
package/dist/index.mjs
CHANGED
|
@@ -15797,6 +15797,10 @@ var RefreshIcon = () => /* @__PURE__ */ jsxs108("svg", { width: "14", height: "1
|
|
|
15797
15797
|
/* @__PURE__ */ jsx147("polyline", { points: "23 4 23 10 17 10" }),
|
|
15798
15798
|
/* @__PURE__ */ jsx147("path", { d: "M20.49 15a9 9 0 1 1-2.12-9.36L23 10" })
|
|
15799
15799
|
] });
|
|
15800
|
+
var EditIcon = () => /* @__PURE__ */ jsxs108("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.2", strokeLinecap: "round", strokeLinejoin: "round", children: [
|
|
15801
|
+
/* @__PURE__ */ jsx147("path", { d: "M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7" }),
|
|
15802
|
+
/* @__PURE__ */ jsx147("path", { d: "M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z" })
|
|
15803
|
+
] });
|
|
15800
15804
|
var SlideTypeIcon = () => /* @__PURE__ */ jsxs108("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
|
|
15801
15805
|
/* @__PURE__ */ jsx147("rect", { x: "3", y: "4", width: "18", height: "14", rx: "2" }),
|
|
15802
15806
|
/* @__PURE__ */ jsx147("line", { x1: "3", y1: "10", x2: "21", y2: "10" })
|
|
@@ -15834,7 +15838,7 @@ var FORMATS = [
|
|
|
15834
15838
|
ext: ".html",
|
|
15835
15839
|
emoji: "\u{1F310}",
|
|
15836
15840
|
desc: "Interactive web presentation \u2014 download and open in browser",
|
|
15837
|
-
accent: { text: "text-
|
|
15841
|
+
accent: { text: "text-sky-400", bg: "bg-sky-500/10 border-sky-500/20" }
|
|
15838
15842
|
}
|
|
15839
15843
|
];
|
|
15840
15844
|
var ExportModal = ({ formats, title, onClose }) => {
|
|
@@ -15951,7 +15955,7 @@ var FullscreenModal = ({ url, title, slideCount, initialSlide = 1, onClose }) =>
|
|
|
15951
15955
|
return /* @__PURE__ */ jsxs108("div", { className: "fixed inset-0 z-50 bg-black flex flex-col", children: [
|
|
15952
15956
|
/* @__PURE__ */ jsxs108("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: [
|
|
15953
15957
|
/* @__PURE__ */ jsxs108("div", { className: "flex items-center gap-3 min-w-0", children: [
|
|
15954
|
-
/* @__PURE__ */ jsx147("span", { className: "text-
|
|
15958
|
+
/* @__PURE__ */ jsx147("span", { className: "text-[#DCC99B] flex-shrink-0", children: /* @__PURE__ */ jsx147(SlidesIcon, {}) }),
|
|
15955
15959
|
/* @__PURE__ */ jsx147("span", { className: "text-sm font-medium text-zinc-300 truncate", children: title }),
|
|
15956
15960
|
slideCount > 0 && /* @__PURE__ */ jsxs108("span", { className: "text-xs text-zinc-600 flex-shrink-0", children: [
|
|
15957
15961
|
currentSlide,
|
|
@@ -15965,7 +15969,7 @@ var FullscreenModal = ({ url, title, slideCount, initialSlide = 1, onClose }) =>
|
|
|
15965
15969
|
{
|
|
15966
15970
|
onClick: () => sendSlideCommand("prevSlide"),
|
|
15967
15971
|
disabled: !iframeReady,
|
|
15968
|
-
className: "w-7 h-7 rounded-full border border-zinc-700 bg-zinc-800 hover:border-
|
|
15972
|
+
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",
|
|
15969
15973
|
"aria-label": "Previous slide",
|
|
15970
15974
|
children: /* @__PURE__ */ jsx147(ChevronLeft2, {})
|
|
15971
15975
|
}
|
|
@@ -15975,7 +15979,7 @@ var FullscreenModal = ({ url, title, slideCount, initialSlide = 1, onClose }) =>
|
|
|
15975
15979
|
{
|
|
15976
15980
|
onClick: () => sendSlideCommand("nextSlide"),
|
|
15977
15981
|
disabled: !iframeReady,
|
|
15978
|
-
className: "w-7 h-7 rounded-full border border-zinc-700 bg-zinc-800 hover:border-
|
|
15982
|
+
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",
|
|
15979
15983
|
"aria-label": "Next slide",
|
|
15980
15984
|
children: /* @__PURE__ */ jsx147(ChevronRight2, {})
|
|
15981
15985
|
}
|
|
@@ -16551,11 +16555,11 @@ var PresentationJobCard = ({
|
|
|
16551
16555
|
/* @__PURE__ */ jsx147(
|
|
16552
16556
|
"div",
|
|
16553
16557
|
{
|
|
16554
|
-
className: "h-[3px]
|
|
16558
|
+
className: "h-[3px]",
|
|
16555
16559
|
style: {
|
|
16560
|
+
backgroundImage: accentGradient || "linear-gradient(90deg, #8B7D5E, #C0AE82, #DCC99B, #C0AE82, #8B7D5E)",
|
|
16556
16561
|
backgroundSize: "200% 100%",
|
|
16557
|
-
animation: "gradient-shift 2s ease-in-out infinite"
|
|
16558
|
-
...accentGradient ? { backgroundImage: accentGradient } : {}
|
|
16562
|
+
animation: "gradient-shift 2s ease-in-out infinite"
|
|
16559
16563
|
}
|
|
16560
16564
|
}
|
|
16561
16565
|
),
|
|
@@ -16564,7 +16568,7 @@ var PresentationJobCard = ({
|
|
|
16564
16568
|
/* @__PURE__ */ jsx147(
|
|
16565
16569
|
"div",
|
|
16566
16570
|
{
|
|
16567
|
-
className: "w-10 h-10 rounded-xl bg-
|
|
16571
|
+
className: "w-10 h-10 rounded-xl bg-[#C0AE82]/10 border border-[#C0AE82]/25 flex items-center justify-center flex-shrink-0",
|
|
16568
16572
|
style: { ...t.accentSubtle(0.1), ...t.accentBorder },
|
|
16569
16573
|
children: /* @__PURE__ */ jsx147("span", { className: "text-lg", children: getPhaseIcon() })
|
|
16570
16574
|
}
|
|
@@ -16582,10 +16586,11 @@ var PresentationJobCard = ({
|
|
|
16582
16586
|
/* @__PURE__ */ jsx147("div", { className: "h-2 bg-zinc-800 rounded-full overflow-hidden", children: /* @__PURE__ */ jsx147(
|
|
16583
16587
|
"div",
|
|
16584
16588
|
{
|
|
16585
|
-
className: "h-full
|
|
16589
|
+
className: "h-full rounded-full transition-all duration-500 ease-out",
|
|
16586
16590
|
style: {
|
|
16587
16591
|
width: `${Math.max(pct, 2)}%`,
|
|
16588
|
-
|
|
16592
|
+
backgroundImage: accentGradient || "linear-gradient(90deg, #8B7D5E, #C0AE82, #DCC99B)",
|
|
16593
|
+
...!accentGradient ? t.accentBg : {}
|
|
16589
16594
|
}
|
|
16590
16595
|
}
|
|
16591
16596
|
) }),
|
|
@@ -16595,7 +16600,7 @@ var PresentationJobCard = ({
|
|
|
16595
16600
|
] })
|
|
16596
16601
|
] }),
|
|
16597
16602
|
/* @__PURE__ */ jsxs108("div", { className: "flex items-center gap-2", children: [
|
|
16598
|
-
/* @__PURE__ */ jsx147("div", { className: "w-2 h-2 rounded-full bg-
|
|
16603
|
+
/* @__PURE__ */ jsx147("div", { className: "w-2 h-2 rounded-full bg-[#C0AE82] animate-pulse", style: t.accentBg }),
|
|
16599
16604
|
/* @__PURE__ */ jsx147("span", { className: "text-xs text-zinc-400", children: step })
|
|
16600
16605
|
] }),
|
|
16601
16606
|
phase === "ai_generation" && slidesTotal > 0 && /* @__PURE__ */ jsxs108("div", { className: "flex items-center gap-2 pt-1", children: [
|
|
@@ -16604,7 +16609,7 @@ var PresentationJobCard = ({
|
|
|
16604
16609
|
{
|
|
16605
16610
|
className: cn(
|
|
16606
16611
|
"w-6 h-1.5 rounded-full transition-all duration-300",
|
|
16607
|
-
i < slidesCompleted ? "bg-
|
|
16612
|
+
i < slidesCompleted ? "bg-[#C0AE82]" : i === slidesCompleted ? "bg-[#C0AE82]/50 animate-pulse" : "bg-zinc-700"
|
|
16608
16613
|
)
|
|
16609
16614
|
},
|
|
16610
16615
|
i
|
|
@@ -16652,7 +16657,7 @@ var PresentationJobCard = ({
|
|
|
16652
16657
|
/* @__PURE__ */ jsx147(
|
|
16653
16658
|
"div",
|
|
16654
16659
|
{
|
|
16655
|
-
className: "w-10 h-10 rounded-xl bg-
|
|
16660
|
+
className: "w-10 h-10 rounded-xl bg-[#C0AE82]/10 border border-[#C0AE82]/25 flex items-center justify-center flex-shrink-0 text-[#DCC99B]",
|
|
16656
16661
|
style: { ...t.accentSubtle(0.1), ...t.accentBorder, ...t.accent },
|
|
16657
16662
|
children: /* @__PURE__ */ jsx147(SlidesIcon, {})
|
|
16658
16663
|
}
|
|
@@ -16689,7 +16694,7 @@ var PresentationJobCard = ({
|
|
|
16689
16694
|
onChange: (e) => setSlideTemplate(i, e.target.value),
|
|
16690
16695
|
disabled: rowBusy,
|
|
16691
16696
|
title: "Design template for this slide only (default: deck's template)",
|
|
16692
|
-
className: "w-24 flex-shrink-0 bg-zinc-800/60 border border-zinc-700 rounded-lg px-1.5 h-8 text-[10px] text-zinc-300 focus:border-
|
|
16697
|
+
className: "w-24 flex-shrink-0 bg-zinc-800/60 border border-zinc-700 rounded-lg px-1.5 h-8 text-[10px] text-zinc-300 focus:border-[#C0AE82] outline-none disabled:opacity-60",
|
|
16693
16698
|
children: [
|
|
16694
16699
|
/* @__PURE__ */ jsx147("option", { value: "", children: "Deck default" }),
|
|
16695
16700
|
slideTemplateOptions.map((opt) => /* @__PURE__ */ jsx147("option", { value: opt.id, children: opt.name }, opt.id))
|
|
@@ -16702,7 +16707,7 @@ var PresentationJobCard = ({
|
|
|
16702
16707
|
value: messageEdits[i] ?? s.message ?? "",
|
|
16703
16708
|
onChange: (e) => setMessageEdits((prev) => ({ ...prev, [i]: e.target.value })),
|
|
16704
16709
|
disabled: building,
|
|
16705
|
-
className: "flex-1 min-w-0 bg-zinc-800/60 border border-zinc-700 rounded-lg px-3 h-8 text-xs text-zinc-200 focus:border-
|
|
16710
|
+
className: "flex-1 min-w-0 bg-zinc-800/60 border border-zinc-700 rounded-lg px-3 h-8 text-xs text-zinc-200 focus:border-[#C0AE82] outline-none disabled:opacity-60"
|
|
16706
16711
|
}
|
|
16707
16712
|
),
|
|
16708
16713
|
/* @__PURE__ */ jsx147(
|
|
@@ -16777,7 +16782,7 @@ var PresentationJobCard = ({
|
|
|
16777
16782
|
/* @__PURE__ */ jsx147(
|
|
16778
16783
|
"div",
|
|
16779
16784
|
{
|
|
16780
|
-
className: "w-10 h-10 rounded-xl bg-
|
|
16785
|
+
className: "w-10 h-10 rounded-xl bg-[#C0AE82]/10 border border-[#C0AE82]/25 flex items-center justify-center flex-shrink-0 text-[#DCC99B]",
|
|
16781
16786
|
style: { ...t.accentSubtle(0.1), ...t.accentBorder, ...t.accent },
|
|
16782
16787
|
children: /* @__PURE__ */ jsx147(SlidesIcon, {})
|
|
16783
16788
|
}
|
|
@@ -16792,19 +16797,63 @@ var PresentationJobCard = ({
|
|
|
16792
16797
|
generationMode === "template" && /* @__PURE__ */ jsx147("p", { className: "text-xs mt-1", children: isApproved ? /* @__PURE__ */ jsx147("span", { className: "text-emerald-400/90", children: "Approved \u2014 future decks use this format" }) : reviewStatus === "pending_review" ? /* @__PURE__ */ jsx147("span", { className: "text-amber-400/90", children: "Review this deck, then approve to lock the format" }) : null })
|
|
16793
16798
|
] }),
|
|
16794
16799
|
/* @__PURE__ */ jsxs108("div", { className: "flex items-center gap-1.5 flex-shrink-0 flex-wrap justify-end", children: [
|
|
16795
|
-
|
|
16796
|
-
|
|
16797
|
-
|
|
16798
|
-
|
|
16799
|
-
|
|
16800
|
-
|
|
16801
|
-
|
|
16802
|
-
|
|
16803
|
-
|
|
16804
|
-
|
|
16805
|
-
|
|
16806
|
-
|
|
16807
|
-
|
|
16800
|
+
/* @__PURE__ */ jsxs108("div", { className: "flex items-center rounded-lg border border-zinc-700 bg-zinc-800 overflow-hidden divide-x divide-zinc-700", children: [
|
|
16801
|
+
/* @__PURE__ */ jsxs108(
|
|
16802
|
+
"a",
|
|
16803
|
+
{
|
|
16804
|
+
href: hasHtml ? `/presentations/${_job_id}/edit` : void 0,
|
|
16805
|
+
"aria-disabled": !hasHtml,
|
|
16806
|
+
title: "Edit presentation content",
|
|
16807
|
+
className: cn(
|
|
16808
|
+
"flex items-center gap-1.5 px-2.5 h-7 text-xs font-medium text-zinc-300 hover:text-zinc-100 hover:bg-zinc-700/60 transition-colors",
|
|
16809
|
+
!hasHtml && "pointer-events-none opacity-40"
|
|
16810
|
+
),
|
|
16811
|
+
children: [
|
|
16812
|
+
/* @__PURE__ */ jsx147(EditIcon, {}),
|
|
16813
|
+
/* @__PURE__ */ jsx147("span", { children: "Edit" })
|
|
16814
|
+
]
|
|
16815
|
+
}
|
|
16816
|
+
),
|
|
16817
|
+
/* @__PURE__ */ jsxs108(
|
|
16818
|
+
"button",
|
|
16819
|
+
{
|
|
16820
|
+
onClick: () => setShowFullscreen(true),
|
|
16821
|
+
disabled: !hasHtml,
|
|
16822
|
+
title: "Open fullscreen preview",
|
|
16823
|
+
className: "flex items-center gap-1.5 px-2.5 h-7 text-xs font-medium text-zinc-300 hover:text-zinc-100 hover:bg-zinc-700/60 transition-colors disabled:opacity-40 disabled:cursor-not-allowed",
|
|
16824
|
+
children: [
|
|
16825
|
+
/* @__PURE__ */ jsx147(ExpandIcon, {}),
|
|
16826
|
+
/* @__PURE__ */ jsx147("span", { children: "Preview" })
|
|
16827
|
+
]
|
|
16828
|
+
}
|
|
16829
|
+
),
|
|
16830
|
+
canRegenerate && /* @__PURE__ */ jsxs108(
|
|
16831
|
+
"button",
|
|
16832
|
+
{
|
|
16833
|
+
onClick: handleRegenerate,
|
|
16834
|
+
disabled: regenerating || approving,
|
|
16835
|
+
title: "Try another design template with the same content",
|
|
16836
|
+
className: "flex items-center gap-1.5 px-2.5 h-7 text-xs font-medium text-zinc-300 hover:text-zinc-100 hover:bg-zinc-700/60 transition-colors disabled:opacity-40",
|
|
16837
|
+
children: [
|
|
16838
|
+
/* @__PURE__ */ jsx147(RefreshIcon, {}),
|
|
16839
|
+
/* @__PURE__ */ jsx147("span", { children: regenerating ? "Switching\u2026" : "Regenerate" })
|
|
16840
|
+
]
|
|
16841
|
+
}
|
|
16842
|
+
),
|
|
16843
|
+
/* @__PURE__ */ jsx147(
|
|
16844
|
+
"button",
|
|
16845
|
+
{
|
|
16846
|
+
onClick: handleShare,
|
|
16847
|
+
disabled: !hasHtml,
|
|
16848
|
+
title: copied ? "Copied!" : "Copy shareable link",
|
|
16849
|
+
className: cn(
|
|
16850
|
+
"flex items-center justify-center w-7 h-7 transition-colors disabled:opacity-30 disabled:cursor-not-allowed",
|
|
16851
|
+
copied ? "text-green-400" : "text-zinc-300 hover:text-zinc-100 hover:bg-zinc-700/60"
|
|
16852
|
+
),
|
|
16853
|
+
children: copied ? /* @__PURE__ */ jsx147(CheckIcon, {}) : /* @__PURE__ */ jsx147(ShareIcon, {})
|
|
16854
|
+
}
|
|
16855
|
+
)
|
|
16856
|
+
] }),
|
|
16808
16857
|
canApprove && /* @__PURE__ */ jsxs108(
|
|
16809
16858
|
"button",
|
|
16810
16859
|
{
|
|
@@ -16819,39 +16868,16 @@ var PresentationJobCard = ({
|
|
|
16819
16868
|
}
|
|
16820
16869
|
),
|
|
16821
16870
|
isApproved && /* @__PURE__ */ jsx147("span", { className: "flex items-center justify-center w-7 h-7 rounded-lg border border-emerald-500/40 bg-emerald-500/10 text-emerald-400", title: "Format saved", children: /* @__PURE__ */ jsx147(CheckIcon, {}) }),
|
|
16822
|
-
/* @__PURE__ */ jsx147(
|
|
16823
|
-
"button",
|
|
16824
|
-
{
|
|
16825
|
-
onClick: handleShare,
|
|
16826
|
-
disabled: !hasHtml,
|
|
16827
|
-
title: copied ? "Copied!" : "Copy shareable link",
|
|
16828
|
-
className: cn(
|
|
16829
|
-
"w-7 h-7 rounded-lg border flex items-center justify-center transition-all",
|
|
16830
|
-
copied ? "border-green-500/40 bg-green-500/10 text-green-400" : "border-zinc-700 bg-zinc-800 text-zinc-400 hover:border-zinc-500 hover:text-zinc-200",
|
|
16831
|
-
"disabled:opacity-30 disabled:cursor-not-allowed"
|
|
16832
|
-
),
|
|
16833
|
-
children: copied ? /* @__PURE__ */ jsx147(CheckIcon, {}) : /* @__PURE__ */ jsx147(ShareIcon, {})
|
|
16834
|
-
}
|
|
16835
|
-
),
|
|
16836
|
-
/* @__PURE__ */ jsxs108(
|
|
16837
|
-
"button",
|
|
16838
|
-
{
|
|
16839
|
-
onClick: () => setShowFullscreen(true),
|
|
16840
|
-
disabled: !hasHtml,
|
|
16841
|
-
title: "Open fullscreen preview",
|
|
16842
|
-
className: "flex items-center gap-1.5 px-2.5 h-7 rounded-lg border border-zinc-700 bg-zinc-800 hover:border-zinc-500 text-zinc-400 hover:text-zinc-200 text-xs font-medium transition-colors disabled:opacity-30 disabled:cursor-not-allowed",
|
|
16843
|
-
children: [
|
|
16844
|
-
/* @__PURE__ */ jsx147(ExpandIcon, {}),
|
|
16845
|
-
/* @__PURE__ */ jsx147("span", { children: "Preview" })
|
|
16846
|
-
]
|
|
16847
|
-
}
|
|
16848
|
-
),
|
|
16849
16871
|
/* @__PURE__ */ jsxs108(
|
|
16850
16872
|
"button",
|
|
16851
16873
|
{
|
|
16852
16874
|
onClick: () => setShowExport(true),
|
|
16853
|
-
className: "flex items-center gap-1.5 px-
|
|
16854
|
-
style: {
|
|
16875
|
+
className: "flex items-center gap-1.5 px-3 h-7 text-xs font-semibold rounded-lg transition-colors",
|
|
16876
|
+
style: {
|
|
16877
|
+
backgroundImage: accentGradient || "linear-gradient(90deg, #8B7D5E, #C0AE82, #DCC99B)",
|
|
16878
|
+
color: "#0A0A0A",
|
|
16879
|
+
...accentGradient ? t.accentText : {}
|
|
16880
|
+
},
|
|
16855
16881
|
children: [
|
|
16856
16882
|
/* @__PURE__ */ jsx147(DownloadIcon, {}),
|
|
16857
16883
|
/* @__PURE__ */ jsx147("span", { children: "Export" })
|
|
@@ -16906,7 +16932,7 @@ var PresentationJobCard = ({
|
|
|
16906
16932
|
sendSlideCommand("prevSlide");
|
|
16907
16933
|
},
|
|
16908
16934
|
disabled: !hasHtml || !iframeReady,
|
|
16909
|
-
className: "w-7 h-7 rounded-full border border-zinc-700 bg-zinc-800 hover:border-
|
|
16935
|
+
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",
|
|
16910
16936
|
"aria-label": "Previous slide",
|
|
16911
16937
|
children: /* @__PURE__ */ jsx147(ChevronLeft2, {})
|
|
16912
16938
|
}
|
|
@@ -16924,7 +16950,7 @@ var PresentationJobCard = ({
|
|
|
16924
16950
|
sendSlideCommand("nextSlide");
|
|
16925
16951
|
},
|
|
16926
16952
|
disabled: !hasHtml || !iframeReady,
|
|
16927
|
-
className: "w-7 h-7 rounded-full border border-zinc-700 bg-zinc-800 hover:border-
|
|
16953
|
+
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",
|
|
16928
16954
|
"aria-label": "Next slide",
|
|
16929
16955
|
children: /* @__PURE__ */ jsx147(ChevronRight2, {})
|
|
16930
16956
|
}
|
|
@@ -16951,10 +16977,11 @@ var PresentationJobCard = ({
|
|
|
16951
16977
|
import { useCallback as useCallback5, useEffect as useEffect8, useRef as useRef7, useState as useState11 } from "react";
|
|
16952
16978
|
import { Fragment as Fragment6, jsx as jsx148, jsxs as jsxs109 } from "react/jsx-runtime";
|
|
16953
16979
|
var DEFAULT_THEME = {
|
|
16954
|
-
primary: "#
|
|
16955
|
-
secondary: "#
|
|
16956
|
-
accent: "#
|
|
16980
|
+
primary: "#C0AE82",
|
|
16981
|
+
secondary: "#C4AD7C",
|
|
16982
|
+
accent: "#DCC99B"
|
|
16957
16983
|
};
|
|
16984
|
+
var GOLD_GRADIENT = "linear-gradient(90deg, #8B7D5E, #C0AE82, #DCC99B)";
|
|
16958
16985
|
function readableOn(bg) {
|
|
16959
16986
|
if (!bg || typeof bg !== "string") return "#ffffff";
|
|
16960
16987
|
const hex = bg.replace("#", "");
|
|
@@ -17001,6 +17028,10 @@ var RefreshIcon2 = () => /* @__PURE__ */ jsxs109("svg", { width: "14", height: "
|
|
|
17001
17028
|
/* @__PURE__ */ jsx148("polyline", { points: "23 4 23 10 17 10" }),
|
|
17002
17029
|
/* @__PURE__ */ jsx148("path", { d: "M20.49 15a9 9 0 1 1-2.12-9.36L23 10" })
|
|
17003
17030
|
] });
|
|
17031
|
+
var EditIcon2 = () => /* @__PURE__ */ jsxs109("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.2", strokeLinecap: "round", strokeLinejoin: "round", children: [
|
|
17032
|
+
/* @__PURE__ */ jsx148("path", { d: "M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7" }),
|
|
17033
|
+
/* @__PURE__ */ jsx148("path", { d: "M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z" })
|
|
17034
|
+
] });
|
|
17004
17035
|
function formatTemplateLabel2(templateId) {
|
|
17005
17036
|
if (!templateId) return null;
|
|
17006
17037
|
return templateId.split("-").map((w) => w.charAt(0).toUpperCase() + w.slice(1)).join(" ");
|
|
@@ -17022,7 +17053,7 @@ var FullscreenPreviewModal = ({ url, title, onClose }) => {
|
|
|
17022
17053
|
return /* @__PURE__ */ jsxs109("div", { className: "fixed inset-0 z-50 bg-black flex flex-col", children: [
|
|
17023
17054
|
/* @__PURE__ */ jsxs109("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: [
|
|
17024
17055
|
/* @__PURE__ */ jsxs109("div", { className: "flex items-center gap-3 min-w-0", children: [
|
|
17025
|
-
/* @__PURE__ */ jsx148("span", { className: "text-
|
|
17056
|
+
/* @__PURE__ */ jsx148("span", { className: "text-[#DCC99B] flex-shrink-0", children: /* @__PURE__ */ jsx148(DocumentIcon, {}) }),
|
|
17026
17057
|
/* @__PURE__ */ jsx148("span", { className: "text-sm font-medium text-zinc-300 truncate", children: title })
|
|
17027
17058
|
] }),
|
|
17028
17059
|
/* @__PURE__ */ jsxs109(
|
|
@@ -17503,8 +17534,9 @@ var ResearchReportJobCard = (props) => {
|
|
|
17503
17534
|
/* @__PURE__ */ jsx148(
|
|
17504
17535
|
"div",
|
|
17505
17536
|
{
|
|
17506
|
-
className: "h-[3px]
|
|
17537
|
+
className: "h-[3px]",
|
|
17507
17538
|
style: {
|
|
17539
|
+
backgroundImage: "linear-gradient(90deg, #8B7D5E, #C0AE82, #DCC99B, #C0AE82, #8B7D5E)",
|
|
17508
17540
|
backgroundSize: "200% 100%",
|
|
17509
17541
|
animation: "gradient-shift 2s ease-in-out infinite"
|
|
17510
17542
|
}
|
|
@@ -17512,7 +17544,7 @@ var ResearchReportJobCard = (props) => {
|
|
|
17512
17544
|
),
|
|
17513
17545
|
/* @__PURE__ */ jsxs109("div", { className: "p-5", children: [
|
|
17514
17546
|
/* @__PURE__ */ jsxs109("div", { className: "flex items-start gap-3", children: [
|
|
17515
|
-
/* @__PURE__ */ jsx148("div", { className: "w-10 h-10 rounded-xl bg-
|
|
17547
|
+
/* @__PURE__ */ jsx148("div", { className: "w-10 h-10 rounded-xl bg-[#C0AE82]/10 border border-[#C0AE82]/25 flex items-center justify-center flex-shrink-0", children: /* @__PURE__ */ jsx148("span", { className: "text-lg", children: getPhaseIcon() }) }),
|
|
17516
17548
|
/* @__PURE__ */ jsxs109("div", { className: "flex-1 min-w-0", children: [
|
|
17517
17549
|
/* @__PURE__ */ jsx148("h3", { className: "text-sm font-semibold text-zinc-100 truncate leading-tight", children: title || "Generating Research Report" }),
|
|
17518
17550
|
/* @__PURE__ */ jsxs109("p", { className: "text-xs text-zinc-500 mt-0.5", children: [
|
|
@@ -17527,8 +17559,8 @@ var ResearchReportJobCard = (props) => {
|
|
|
17527
17559
|
/* @__PURE__ */ jsx148("div", { className: "h-2 bg-zinc-800 rounded-full overflow-hidden", children: /* @__PURE__ */ jsx148(
|
|
17528
17560
|
"div",
|
|
17529
17561
|
{
|
|
17530
|
-
className: "h-full
|
|
17531
|
-
style: { width: `${Math.max(pct, 2)}
|
|
17562
|
+
className: "h-full rounded-full transition-all duration-500 ease-out",
|
|
17563
|
+
style: { width: `${Math.max(pct, 2)}%`, backgroundImage: GOLD_GRADIENT }
|
|
17532
17564
|
}
|
|
17533
17565
|
) }),
|
|
17534
17566
|
/* @__PURE__ */ jsxs109("span", { className: "absolute right-0 -top-5 text-xs text-zinc-500 font-medium tabular-nums", children: [
|
|
@@ -17537,7 +17569,7 @@ var ResearchReportJobCard = (props) => {
|
|
|
17537
17569
|
] })
|
|
17538
17570
|
] }),
|
|
17539
17571
|
/* @__PURE__ */ jsxs109("div", { className: "flex items-center gap-2", children: [
|
|
17540
|
-
/* @__PURE__ */ jsx148("div", { className: "w-2 h-2 rounded-full bg-
|
|
17572
|
+
/* @__PURE__ */ jsx148("div", { className: "w-2 h-2 rounded-full bg-[#C0AE82] animate-pulse" }),
|
|
17541
17573
|
/* @__PURE__ */ jsx148("span", { className: "text-xs text-zinc-400", children: step })
|
|
17542
17574
|
] }),
|
|
17543
17575
|
phase === "ai_generation" && searchesTotal > 0 && /* @__PURE__ */ jsxs109("div", { className: "pt-1", children: [
|
|
@@ -17554,7 +17586,7 @@ var ResearchReportJobCard = (props) => {
|
|
|
17554
17586
|
{
|
|
17555
17587
|
className: cn(
|
|
17556
17588
|
"flex-1 h-1 rounded-full transition-all duration-300",
|
|
17557
|
-
i < searchesCompleted ? "bg-
|
|
17589
|
+
i < searchesCompleted ? "bg-[#C0AE82]" : i === searchesCompleted ? "bg-[#C0AE82]/50 animate-pulse" : "bg-zinc-700"
|
|
17558
17590
|
)
|
|
17559
17591
|
},
|
|
17560
17592
|
i
|
|
@@ -17588,12 +17620,12 @@ var ResearchReportJobCard = (props) => {
|
|
|
17588
17620
|
"div",
|
|
17589
17621
|
{
|
|
17590
17622
|
className: "h-[3px]",
|
|
17591
|
-
style: {
|
|
17623
|
+
style: { backgroundImage: GOLD_GRADIENT }
|
|
17592
17624
|
}
|
|
17593
17625
|
),
|
|
17594
17626
|
/* @__PURE__ */ jsxs109("div", { className: "p-5", children: [
|
|
17595
17627
|
/* @__PURE__ */ jsxs109("div", { className: "flex items-start gap-3", children: [
|
|
17596
|
-
/* @__PURE__ */ jsx148("div", { className: "w-10 h-10 rounded-xl bg-
|
|
17628
|
+
/* @__PURE__ */ jsx148("div", { className: "w-10 h-10 rounded-xl bg-[#C0AE82]/10 border border-[#C0AE82]/25 flex items-center justify-center flex-shrink-0 text-[#DCC99B]", children: /* @__PURE__ */ jsx148(DocumentIcon, {}) }),
|
|
17597
17629
|
/* @__PURE__ */ jsxs109("div", { className: "flex-1 min-w-0", children: [
|
|
17598
17630
|
/* @__PURE__ */ jsx148("h3", { className: "text-sm font-semibold text-zinc-100 truncate leading-tight", children: title || "Report outline" }),
|
|
17599
17631
|
/* @__PURE__ */ jsxs109("p", { className: "text-xs text-amber-400/90 mt-0.5", children: [
|
|
@@ -17614,7 +17646,7 @@ var ResearchReportJobCard = (props) => {
|
|
|
17614
17646
|
value: headingEdits[i] ?? s.heading ?? "",
|
|
17615
17647
|
onChange: (e) => setHeadingEdits((prev) => ({ ...prev, [i]: e.target.value })),
|
|
17616
17648
|
disabled: building,
|
|
17617
|
-
className: "flex-1 min-w-0 bg-zinc-800/60 border border-zinc-700 rounded-lg px-3 h-8 text-xs text-zinc-200 focus:border-
|
|
17649
|
+
className: "flex-1 min-w-0 bg-zinc-800/60 border border-zinc-700 rounded-lg px-3 h-8 text-xs text-zinc-200 focus:border-[#C0AE82] outline-none disabled:opacity-60"
|
|
17618
17650
|
}
|
|
17619
17651
|
),
|
|
17620
17652
|
/* @__PURE__ */ jsx148(
|
|
@@ -17876,19 +17908,75 @@ var ResearchReportJobCard = (props) => {
|
|
|
17876
17908
|
generationMode === "template" && /* @__PURE__ */ jsx148("p", { className: "text-xs mt-1", children: isApproved ? /* @__PURE__ */ jsx148("span", { className: "text-emerald-400/90", children: "Approved \u2014 future reports use this format" }) : reviewStatus === "pending_review" ? /* @__PURE__ */ jsx148("span", { className: "text-amber-400/90", children: "Review this report, then approve to lock the layout" }) : null })
|
|
17877
17909
|
] }),
|
|
17878
17910
|
/* @__PURE__ */ jsxs109("div", { className: "flex items-center gap-1.5 flex-shrink-0 flex-wrap justify-end", children: [
|
|
17879
|
-
|
|
17880
|
-
|
|
17881
|
-
|
|
17882
|
-
|
|
17883
|
-
|
|
17884
|
-
|
|
17885
|
-
|
|
17886
|
-
|
|
17887
|
-
|
|
17888
|
-
|
|
17889
|
-
|
|
17890
|
-
|
|
17891
|
-
|
|
17911
|
+
/* @__PURE__ */ jsxs109("div", { className: "flex items-center rounded-lg border border-zinc-700 bg-zinc-800 overflow-hidden divide-x divide-zinc-700", children: [
|
|
17912
|
+
/* @__PURE__ */ jsxs109(
|
|
17913
|
+
"a",
|
|
17914
|
+
{
|
|
17915
|
+
href: htmlUrl ? `/reports/${job_id}/edit` : void 0,
|
|
17916
|
+
"aria-disabled": !htmlUrl,
|
|
17917
|
+
title: "Edit report content",
|
|
17918
|
+
className: cn(
|
|
17919
|
+
"flex items-center gap-1.5 px-2.5 h-7 text-xs font-medium text-zinc-300 hover:text-zinc-100 hover:bg-zinc-700/60 transition-colors",
|
|
17920
|
+
!htmlUrl && "pointer-events-none opacity-40"
|
|
17921
|
+
),
|
|
17922
|
+
children: [
|
|
17923
|
+
/* @__PURE__ */ jsx148(EditIcon2, {}),
|
|
17924
|
+
/* @__PURE__ */ jsx148("span", { children: "Edit" })
|
|
17925
|
+
]
|
|
17926
|
+
}
|
|
17927
|
+
),
|
|
17928
|
+
/* @__PURE__ */ jsxs109(
|
|
17929
|
+
"button",
|
|
17930
|
+
{
|
|
17931
|
+
onClick: () => setShowPreview(true),
|
|
17932
|
+
disabled: !hasHTML,
|
|
17933
|
+
title: "Preview report",
|
|
17934
|
+
className: "flex items-center gap-1.5 px-2.5 h-7 text-xs font-medium text-zinc-300 hover:text-zinc-100 hover:bg-zinc-700/60 transition-colors disabled:opacity-40 disabled:cursor-not-allowed",
|
|
17935
|
+
children: [
|
|
17936
|
+
/* @__PURE__ */ jsx148(ExpandIcon2, {}),
|
|
17937
|
+
/* @__PURE__ */ jsx148("span", { children: "Preview" })
|
|
17938
|
+
]
|
|
17939
|
+
}
|
|
17940
|
+
),
|
|
17941
|
+
canRegenerate && /* @__PURE__ */ jsxs109(
|
|
17942
|
+
"button",
|
|
17943
|
+
{
|
|
17944
|
+
onClick: handleRegenerate,
|
|
17945
|
+
disabled: regenerating || approving,
|
|
17946
|
+
title: "Try another report template with the same data",
|
|
17947
|
+
className: "flex items-center gap-1.5 px-2.5 h-7 text-xs font-medium text-zinc-300 hover:text-zinc-100 hover:bg-zinc-700/60 transition-colors disabled:opacity-40",
|
|
17948
|
+
children: [
|
|
17949
|
+
/* @__PURE__ */ jsx148(RefreshIcon2, {}),
|
|
17950
|
+
/* @__PURE__ */ jsx148("span", { children: regenerating ? "Switching\u2026" : "Regenerate" })
|
|
17951
|
+
]
|
|
17952
|
+
}
|
|
17953
|
+
),
|
|
17954
|
+
/* @__PURE__ */ jsx148(
|
|
17955
|
+
"button",
|
|
17956
|
+
{
|
|
17957
|
+
onClick: handleShare,
|
|
17958
|
+
disabled: !canShare,
|
|
17959
|
+
title: !canShare && reviewStatus === "pending_review" ? "Approve the report to enable sharing" : copied ? "Copied!" : "Copy shareable link",
|
|
17960
|
+
className: cn(
|
|
17961
|
+
"flex items-center justify-center w-7 h-7 transition-colors disabled:opacity-30 disabled:cursor-not-allowed",
|
|
17962
|
+
copied ? "text-green-400" : "text-zinc-300 hover:text-zinc-100 hover:bg-zinc-700/60"
|
|
17963
|
+
),
|
|
17964
|
+
children: copied ? /* @__PURE__ */ jsx148(CheckIcon2, {}) : /* @__PURE__ */ jsx148(ShareIcon2, {})
|
|
17965
|
+
}
|
|
17966
|
+
),
|
|
17967
|
+
pdfUrl && /* @__PURE__ */ jsxs109(
|
|
17968
|
+
"button",
|
|
17969
|
+
{
|
|
17970
|
+
onClick: handleDownloadPdf,
|
|
17971
|
+
title: "Download PDF",
|
|
17972
|
+
className: "flex items-center gap-1.5 px-2.5 h-7 text-xs font-medium text-zinc-300 hover:text-zinc-100 hover:bg-zinc-700/60 transition-colors",
|
|
17973
|
+
children: [
|
|
17974
|
+
/* @__PURE__ */ jsx148(DownloadIcon2, {}),
|
|
17975
|
+
/* @__PURE__ */ jsx148("span", { children: "PDF" })
|
|
17976
|
+
]
|
|
17977
|
+
}
|
|
17978
|
+
)
|
|
17979
|
+
] }),
|
|
17892
17980
|
canApprove && /* @__PURE__ */ jsxs109(
|
|
17893
17981
|
"button",
|
|
17894
17982
|
{
|
|
@@ -17903,53 +17991,14 @@ var ResearchReportJobCard = (props) => {
|
|
|
17903
17991
|
}
|
|
17904
17992
|
),
|
|
17905
17993
|
isApproved && /* @__PURE__ */ jsx148("span", { className: "flex items-center justify-center w-7 h-7 rounded-lg border border-emerald-500/40 bg-emerald-500/10 text-emerald-400", title: "Format saved", children: /* @__PURE__ */ jsx148(CheckIcon2, {}) }),
|
|
17906
|
-
/* @__PURE__ */ jsx148(
|
|
17907
|
-
"button",
|
|
17908
|
-
{
|
|
17909
|
-
onClick: handleShare,
|
|
17910
|
-
disabled: !canShare,
|
|
17911
|
-
title: !canShare && reviewStatus === "pending_review" ? "Approve the report to enable sharing" : copied ? "Copied!" : "Copy shareable link",
|
|
17912
|
-
className: cn(
|
|
17913
|
-
"w-7 h-7 rounded-lg border flex items-center justify-center transition-all",
|
|
17914
|
-
copied ? "border-green-500/40 bg-green-500/10 text-green-400" : "border-zinc-700 bg-zinc-800 text-zinc-400 hover:border-zinc-500 hover:text-zinc-200",
|
|
17915
|
-
"disabled:opacity-30 disabled:cursor-not-allowed"
|
|
17916
|
-
),
|
|
17917
|
-
children: copied ? /* @__PURE__ */ jsx148(CheckIcon2, {}) : /* @__PURE__ */ jsx148(ShareIcon2, {})
|
|
17918
|
-
}
|
|
17919
|
-
),
|
|
17920
|
-
/* @__PURE__ */ jsxs109(
|
|
17921
|
-
"button",
|
|
17922
|
-
{
|
|
17923
|
-
onClick: () => setShowPreview(true),
|
|
17924
|
-
disabled: !hasHTML,
|
|
17925
|
-
title: "Preview report",
|
|
17926
|
-
className: "flex items-center gap-1.5 px-2.5 h-7 rounded-lg border border-zinc-700 bg-zinc-800 hover:border-zinc-500 text-zinc-400 hover:text-zinc-200 text-xs font-medium transition-colors disabled:opacity-30 disabled:cursor-not-allowed",
|
|
17927
|
-
children: [
|
|
17928
|
-
/* @__PURE__ */ jsx148(ExpandIcon2, {}),
|
|
17929
|
-
/* @__PURE__ */ jsx148("span", { children: "Preview" })
|
|
17930
|
-
]
|
|
17931
|
-
}
|
|
17932
|
-
),
|
|
17933
|
-
pdfUrl && /* @__PURE__ */ jsxs109(
|
|
17934
|
-
"button",
|
|
17935
|
-
{
|
|
17936
|
-
onClick: handleDownloadPdf,
|
|
17937
|
-
title: "Download PDF",
|
|
17938
|
-
className: "flex items-center gap-1.5 px-2.5 h-7 rounded-lg border border-zinc-700 bg-zinc-800 hover:border-zinc-500 text-zinc-400 hover:text-zinc-200 text-xs font-medium transition-colors",
|
|
17939
|
-
children: [
|
|
17940
|
-
/* @__PURE__ */ jsx148(DownloadIcon2, {}),
|
|
17941
|
-
/* @__PURE__ */ jsx148("span", { children: "PDF" })
|
|
17942
|
-
]
|
|
17943
|
-
}
|
|
17944
|
-
),
|
|
17945
17994
|
/* @__PURE__ */ jsxs109(
|
|
17946
17995
|
"button",
|
|
17947
17996
|
{
|
|
17948
17997
|
onClick: handleDownload,
|
|
17949
17998
|
disabled: !hasHTML,
|
|
17950
|
-
className: "flex items-center gap-1.5 px-
|
|
17951
|
-
style: {
|
|
17952
|
-
onMouseEnter: (e) => e.currentTarget.style.filter = "brightness(1.
|
|
17999
|
+
className: "flex items-center gap-1.5 px-3 h-7 text-xs font-semibold rounded-lg transition-colors disabled:opacity-50 disabled:cursor-not-allowed",
|
|
18000
|
+
style: { backgroundImage: GOLD_GRADIENT, color: readableOn(primaryColor) },
|
|
18001
|
+
onMouseEnter: (e) => e.currentTarget.style.filter = "brightness(1.1)",
|
|
17953
18002
|
onMouseLeave: (e) => e.currentTarget.style.filter = "brightness(1)",
|
|
17954
18003
|
children: [
|
|
17955
18004
|
/* @__PURE__ */ jsx148(DownloadIcon2, {}),
|
|
@@ -18147,7 +18196,7 @@ var WebSearchJobCard = ({
|
|
|
18147
18196
|
{
|
|
18148
18197
|
className: "h-[3px]",
|
|
18149
18198
|
style: {
|
|
18150
|
-
|
|
18199
|
+
backgroundImage: "linear-gradient(90deg, #8B7D5E, #C0AE82, #DCC99B, #C0AE82, #8B7D5E)",
|
|
18151
18200
|
backgroundSize: "200% 100%",
|
|
18152
18201
|
animation: "gradient-shift 2s ease-in-out infinite"
|
|
18153
18202
|
}
|
|
@@ -18169,7 +18218,7 @@ var WebSearchJobCard = ({
|
|
|
18169
18218
|
className: "h-full rounded-full transition-all duration-500 ease-out",
|
|
18170
18219
|
style: {
|
|
18171
18220
|
width: `${Math.max(pct, 2)}%`,
|
|
18172
|
-
|
|
18221
|
+
backgroundImage: "linear-gradient(90deg, #8B7D5E, #C0AE82, #DCC99B)"
|
|
18173
18222
|
}
|
|
18174
18223
|
}
|
|
18175
18224
|
) }),
|
|
@@ -18179,7 +18228,7 @@ var WebSearchJobCard = ({
|
|
|
18179
18228
|
] })
|
|
18180
18229
|
] }),
|
|
18181
18230
|
/* @__PURE__ */ jsxs110("div", { className: "flex items-center gap-2", children: [
|
|
18182
|
-
/* @__PURE__ */ jsx149("div", { className: "w-2 h-2 rounded-full bg-
|
|
18231
|
+
/* @__PURE__ */ jsx149("div", { className: "w-2 h-2 rounded-full bg-[#C0AE82] animate-pulse flex-shrink-0" }),
|
|
18183
18232
|
/* @__PURE__ */ jsx149("span", { className: "text-xs text-zinc-400", children: step })
|
|
18184
18233
|
] }),
|
|
18185
18234
|
searchesTotal > 0 && /* @__PURE__ */ jsxs110("div", { className: "pt-1", children: [
|
|
@@ -18196,7 +18245,7 @@ var WebSearchJobCard = ({
|
|
|
18196
18245
|
{
|
|
18197
18246
|
className: cn(
|
|
18198
18247
|
"flex-1 h-1 rounded-full transition-all duration-300",
|
|
18199
|
-
i < searchesCompleted ? "bg-
|
|
18248
|
+
i < searchesCompleted ? "bg-[#C0AE82]" : phase === "ai_generation" && i === searchesCompleted ? "bg-[#C0AE82]/50 animate-pulse" : "bg-zinc-700"
|
|
18200
18249
|
)
|
|
18201
18250
|
},
|
|
18202
18251
|
i
|
|
@@ -21436,7 +21485,7 @@ function PlatformMetricsBanner({
|
|
|
21436
21485
|
return /* @__PURE__ */ jsxs132(
|
|
21437
21486
|
"div",
|
|
21438
21487
|
{
|
|
21439
|
-
className: "\
|
|
21488
|
+
className: "\n grid grid-cols-1 gap-3 rounded-xl py-4 px-4 shadow-sm\n md:flex md:overflow-x-auto md:gap-6 md:rounded-l-xl md:py-4 md:px-4 md:items-center md:gap-0 md:px-0 md:ml-8\n ",
|
|
21440
21489
|
style: { backgroundColor: bgColor },
|
|
21441
21490
|
children: [
|
|
21442
21491
|
/* @__PURE__ */ jsxs132("div", { className: "flex flex-col items-center md:min-w-0", children: [
|