@burdenoff/website-sdk 2026.719.4 → 2026.719.6
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/content/index.d.mts +18 -0
- package/dist/content/index.d.ts +18 -0
- package/dist/content/index.js +488 -96
- package/dist/content/index.js.map +1 -1
- package/dist/content/index.mjs +489 -97
- package/dist/content/index.mjs.map +1 -1
- package/dist/index.js +488 -96
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +488 -96
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -4627,6 +4627,18 @@ function BlogPostPage(props) {
|
|
|
4627
4627
|
] });
|
|
4628
4628
|
}
|
|
4629
4629
|
var CASE_STUDY_TAG = "case-study";
|
|
4630
|
+
var ANIMATION_STYLES = `
|
|
4631
|
+
@keyframes csFadeUp { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } }
|
|
4632
|
+
@keyframes csFloat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-14px); } }
|
|
4633
|
+
.cs-fade-up { animation: csFadeUp 0.5s cubic-bezier(0.16, 1, 0.3, 1) both; }
|
|
4634
|
+
.cs-float { animation: csFloat 7s ease-in-out infinite; }
|
|
4635
|
+
@media (prefers-reduced-motion: reduce) {
|
|
4636
|
+
.cs-fade-up, .cs-float { animation: none !important; }
|
|
4637
|
+
}
|
|
4638
|
+
`;
|
|
4639
|
+
function AnimationStyles() {
|
|
4640
|
+
return /* @__PURE__ */ jsx("style", { dangerouslySetInnerHTML: { __html: ANIMATION_STYLES } });
|
|
4641
|
+
}
|
|
4630
4642
|
var CASE_STUDIES_QUERY = `
|
|
4631
4643
|
query CaseStudies($productId: String!, $limit: Int, $offset: Int) {
|
|
4632
4644
|
publicContentPages(productId: $productId, limit: $limit, offset: $offset) {
|
|
@@ -4673,91 +4685,355 @@ var CASE_STUDY_QUERY = `
|
|
|
4673
4685
|
}
|
|
4674
4686
|
}
|
|
4675
4687
|
`;
|
|
4676
|
-
function
|
|
4677
|
-
|
|
4678
|
-
|
|
4679
|
-
|
|
4680
|
-
|
|
4681
|
-
const formattedDate = date ? new Date(date).toLocaleDateString("en-US", {
|
|
4688
|
+
function formatDate(value) {
|
|
4689
|
+
if (!value) return "";
|
|
4690
|
+
const d = new Date(value);
|
|
4691
|
+
if (Number.isNaN(d.getTime())) return "";
|
|
4692
|
+
return d.toLocaleDateString("en-US", {
|
|
4682
4693
|
year: "numeric",
|
|
4683
4694
|
month: "long",
|
|
4684
4695
|
day: "numeric"
|
|
4685
|
-
})
|
|
4696
|
+
});
|
|
4697
|
+
}
|
|
4698
|
+
function Thumbnail({
|
|
4699
|
+
src,
|
|
4700
|
+
alt,
|
|
4701
|
+
className = ""
|
|
4702
|
+
}) {
|
|
4686
4703
|
const [imgError, setImgError] = useState(false);
|
|
4704
|
+
if (src && !imgError) {
|
|
4705
|
+
return /* @__PURE__ */ jsx(
|
|
4706
|
+
"img",
|
|
4707
|
+
{
|
|
4708
|
+
src,
|
|
4709
|
+
alt,
|
|
4710
|
+
className,
|
|
4711
|
+
loading: "lazy",
|
|
4712
|
+
onError: () => setImgError(true)
|
|
4713
|
+
}
|
|
4714
|
+
);
|
|
4715
|
+
}
|
|
4716
|
+
return /* @__PURE__ */ jsx(
|
|
4717
|
+
"div",
|
|
4718
|
+
{
|
|
4719
|
+
className: `flex items-center justify-center bg-gradient-to-br from-muted/60 to-muted ${className}`,
|
|
4720
|
+
"aria-hidden": "true",
|
|
4721
|
+
children: /* @__PURE__ */ jsx(
|
|
4722
|
+
"svg",
|
|
4723
|
+
{
|
|
4724
|
+
className: "w-12 h-12 text-muted-foreground/25",
|
|
4725
|
+
fill: "none",
|
|
4726
|
+
viewBox: "0 0 24 24",
|
|
4727
|
+
stroke: "currentColor",
|
|
4728
|
+
children: /* @__PURE__ */ jsx(
|
|
4729
|
+
"path",
|
|
4730
|
+
{
|
|
4731
|
+
strokeLinecap: "round",
|
|
4732
|
+
strokeLinejoin: "round",
|
|
4733
|
+
strokeWidth: 1.5,
|
|
4734
|
+
d: "M12 6.253v13m0-13C10.832 5.477 9.246 5 7.5 5S4.168 5.477 3 6.253v13C4.168 18.477 5.754 18 7.5 18s3.332.477 4.5 1.253m0-13C13.168 5.477 14.754 5 16.5 5c1.747 0 3.332.477 4.5 1.253v13C19.832 18.477 18.247 18 16.5 18c-1.746 0-3.332.477-4.5 1.253"
|
|
4735
|
+
}
|
|
4736
|
+
)
|
|
4737
|
+
}
|
|
4738
|
+
)
|
|
4739
|
+
}
|
|
4740
|
+
);
|
|
4741
|
+
}
|
|
4742
|
+
function MetaRow({
|
|
4743
|
+
post,
|
|
4744
|
+
className = ""
|
|
4745
|
+
}) {
|
|
4746
|
+
const formattedDate = formatDate(post.publishedAt || post.lastUpdated);
|
|
4747
|
+
return /* @__PURE__ */ jsxs(
|
|
4748
|
+
"div",
|
|
4749
|
+
{
|
|
4750
|
+
className: `flex flex-wrap items-center gap-x-3 gap-y-1 text-xs text-muted-foreground ${className}`,
|
|
4751
|
+
children: [
|
|
4752
|
+
post.author && /* @__PURE__ */ jsx("span", { className: "font-medium", children: post.author }),
|
|
4753
|
+
post.author && formattedDate && /* @__PURE__ */ jsx("span", { className: "text-muted-foreground/40", children: "\xB7" }),
|
|
4754
|
+
formattedDate && /* @__PURE__ */ jsx("span", { children: formattedDate }),
|
|
4755
|
+
post.readingTime ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
4756
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground/40", children: "\xB7" }),
|
|
4757
|
+
/* @__PURE__ */ jsxs("span", { children: [
|
|
4758
|
+
post.readingTime,
|
|
4759
|
+
" min read"
|
|
4760
|
+
] })
|
|
4761
|
+
] }) : null
|
|
4762
|
+
]
|
|
4763
|
+
}
|
|
4764
|
+
);
|
|
4765
|
+
}
|
|
4766
|
+
function FeaturedCard({
|
|
4767
|
+
post,
|
|
4768
|
+
basePath
|
|
4769
|
+
}) {
|
|
4687
4770
|
return /* @__PURE__ */ jsxs(
|
|
4688
4771
|
"a",
|
|
4689
4772
|
{
|
|
4690
4773
|
href: `${basePath}/${post.slug}`,
|
|
4691
|
-
className: "group
|
|
4774
|
+
className: "group relative grid md:grid-cols-2 gap-0 overflow-hidden rounded-2xl border bg-card shadow-sm transition-all duration-300 hover:-translate-y-1 hover:shadow-xl hover:border-primary/40",
|
|
4692
4775
|
children: [
|
|
4693
|
-
|
|
4694
|
-
|
|
4776
|
+
/* @__PURE__ */ jsxs("div", { className: "relative aspect-[16/10] md:aspect-auto md:h-full overflow-hidden", children: [
|
|
4777
|
+
/* @__PURE__ */ jsx(
|
|
4778
|
+
Thumbnail,
|
|
4779
|
+
{
|
|
4780
|
+
src: post.thumbnail,
|
|
4781
|
+
alt: post.title,
|
|
4782
|
+
className: "w-full h-full min-h-[220px] object-cover transition-transform duration-500 group-hover:scale-[1.04]"
|
|
4783
|
+
}
|
|
4784
|
+
),
|
|
4785
|
+
/* @__PURE__ */ jsxs("span", { className: "absolute top-4 left-4 inline-flex items-center gap-1 rounded-full bg-primary px-2.5 py-1 text-xs font-semibold text-primary-foreground shadow-sm", children: [
|
|
4786
|
+
/* @__PURE__ */ jsx(
|
|
4787
|
+
"svg",
|
|
4788
|
+
{
|
|
4789
|
+
className: "h-3 w-3",
|
|
4790
|
+
viewBox: "0 0 20 20",
|
|
4791
|
+
fill: "currentColor",
|
|
4792
|
+
"aria-hidden": "true",
|
|
4793
|
+
children: /* @__PURE__ */ jsx("path", { d: "M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.286 3.957a1 1 0 00.95.69h4.162c.969 0 1.371 1.24.588 1.81l-3.368 2.447a1 1 0 00-.364 1.118l1.287 3.957c.3.921-.755 1.688-1.54 1.118l-3.367-2.447a1 1 0 00-1.176 0l-3.367 2.447c-.784.57-1.838-.197-1.539-1.118l1.286-3.957a1 1 0 00-.363-1.118L2.98 9.384c-.783-.57-.38-1.81.588-1.81h4.162a1 1 0 00.95-.69l1.286-3.957z" })
|
|
4794
|
+
}
|
|
4795
|
+
),
|
|
4796
|
+
"Featured"
|
|
4797
|
+
] })
|
|
4798
|
+
] }),
|
|
4799
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-col justify-center p-6 sm:p-8", children: [
|
|
4800
|
+
post.category && /* @__PURE__ */ jsx("span", { className: "mb-3 inline-block w-fit rounded-full bg-primary/10 px-2.5 py-1 text-xs font-medium text-primary", children: post.category }),
|
|
4801
|
+
/* @__PURE__ */ jsx("h3", { className: "text-xl sm:text-2xl font-bold text-foreground transition-colors group-hover:text-primary line-clamp-3", children: post.title }),
|
|
4802
|
+
/* @__PURE__ */ jsx("p", { className: "mt-3 text-sm sm:text-base text-muted-foreground line-clamp-3", children: post.excerpt || post.seoDescription || "" }),
|
|
4803
|
+
/* @__PURE__ */ jsx(MetaRow, { post, className: "mt-5" }),
|
|
4804
|
+
/* @__PURE__ */ jsxs("span", { className: "mt-5 inline-flex items-center gap-1 text-sm font-semibold text-primary", children: [
|
|
4805
|
+
"Read the story",
|
|
4806
|
+
/* @__PURE__ */ jsx(
|
|
4807
|
+
"svg",
|
|
4808
|
+
{
|
|
4809
|
+
className: "h-4 w-4 transition-transform duration-300 group-hover:translate-x-1",
|
|
4810
|
+
viewBox: "0 0 20 20",
|
|
4811
|
+
fill: "currentColor",
|
|
4812
|
+
"aria-hidden": "true",
|
|
4813
|
+
children: /* @__PURE__ */ jsx(
|
|
4814
|
+
"path",
|
|
4815
|
+
{
|
|
4816
|
+
fillRule: "evenodd",
|
|
4817
|
+
d: "M7.293 4.293a1 1 0 011.414 0l5 5a1 1 0 010 1.414l-5 5a1 1 0 01-1.414-1.414L11.586 10 7.293 5.707a1 1 0 010-1.414z",
|
|
4818
|
+
clipRule: "evenodd"
|
|
4819
|
+
}
|
|
4820
|
+
)
|
|
4821
|
+
}
|
|
4822
|
+
)
|
|
4823
|
+
] })
|
|
4824
|
+
] })
|
|
4825
|
+
]
|
|
4826
|
+
}
|
|
4827
|
+
);
|
|
4828
|
+
}
|
|
4829
|
+
function CaseStudyCard({
|
|
4830
|
+
post,
|
|
4831
|
+
basePath = "/case-studies"
|
|
4832
|
+
}) {
|
|
4833
|
+
return /* @__PURE__ */ jsxs(
|
|
4834
|
+
"a",
|
|
4835
|
+
{
|
|
4836
|
+
href: `${basePath}/${post.slug}`,
|
|
4837
|
+
className: "group flex flex-col overflow-hidden rounded-xl border bg-card transition-all duration-300 hover:-translate-y-1 hover:shadow-lg hover:border-primary/40",
|
|
4838
|
+
children: [
|
|
4839
|
+
/* @__PURE__ */ jsx("div", { className: "aspect-[16/9] overflow-hidden", children: /* @__PURE__ */ jsx(
|
|
4840
|
+
Thumbnail,
|
|
4695
4841
|
{
|
|
4696
4842
|
src: post.thumbnail,
|
|
4697
4843
|
alt: post.title,
|
|
4698
|
-
className: "w-full h-full object-cover group-hover:scale-105
|
|
4699
|
-
loading: "lazy",
|
|
4700
|
-
onError: () => setImgError(true)
|
|
4844
|
+
className: "w-full h-full object-cover transition-transform duration-500 group-hover:scale-105"
|
|
4701
4845
|
}
|
|
4702
|
-
) })
|
|
4846
|
+
) }),
|
|
4847
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-1 flex-col p-5 sm:p-6", children: [
|
|
4848
|
+
post.category && /* @__PURE__ */ jsx("span", { className: "mb-3 inline-block w-fit rounded-full bg-primary/10 px-2.5 py-1 text-xs font-medium text-primary", children: post.category }),
|
|
4849
|
+
/* @__PURE__ */ jsx("h3", { className: "mb-2 text-lg font-semibold text-foreground transition-colors group-hover:text-primary line-clamp-2", children: post.title }),
|
|
4850
|
+
/* @__PURE__ */ jsx("p", { className: "mb-4 text-sm text-muted-foreground line-clamp-3", children: post.excerpt || post.seoDescription || "" }),
|
|
4851
|
+
/* @__PURE__ */ jsx(MetaRow, { post, className: "mt-auto" })
|
|
4852
|
+
] })
|
|
4853
|
+
]
|
|
4854
|
+
}
|
|
4855
|
+
);
|
|
4856
|
+
}
|
|
4857
|
+
function EmptyState({
|
|
4858
|
+
productLabel,
|
|
4859
|
+
title,
|
|
4860
|
+
subtitle,
|
|
4861
|
+
contactHref,
|
|
4862
|
+
contactLabel,
|
|
4863
|
+
exploreHref,
|
|
4864
|
+
exploreLabel
|
|
4865
|
+
}) {
|
|
4866
|
+
const highlights = [
|
|
4867
|
+
{
|
|
4868
|
+
title: "Real outcomes, real teams",
|
|
4869
|
+
body: `We're partnering with our earliest adopters right now. As they ship results with ${productLabel}, their stories will land here \u2014 measured and unembellished.`,
|
|
4870
|
+
icon: /* @__PURE__ */ jsx(
|
|
4871
|
+
"path",
|
|
4872
|
+
{
|
|
4873
|
+
strokeLinecap: "round",
|
|
4874
|
+
strokeLinejoin: "round",
|
|
4875
|
+
strokeWidth: 1.5,
|
|
4876
|
+
d: "M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 013 19.875v-6.75zM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 01-1.125-1.125V8.625zM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 01-1.125-1.125V4.125z"
|
|
4877
|
+
}
|
|
4878
|
+
)
|
|
4879
|
+
},
|
|
4880
|
+
{
|
|
4881
|
+
title: "See it on your use case",
|
|
4882
|
+
body: `Want to know how ${productLabel} would work for your team? We'll walk you through exactly what to expect \u2014 no pitch, just specifics.`,
|
|
4883
|
+
icon: /* @__PURE__ */ jsx(
|
|
4884
|
+
"path",
|
|
4885
|
+
{
|
|
4886
|
+
strokeLinecap: "round",
|
|
4887
|
+
strokeLinejoin: "round",
|
|
4888
|
+
strokeWidth: 1.5,
|
|
4889
|
+
d: "M2.036 12.322a1.012 1.012 0 010-.639C3.423 7.51 7.36 4.5 12 4.5c4.638 0 8.573 3.007 9.963 7.178.07.207.07.431 0 .639C20.577 16.49 16.64 19.5 12 19.5c-4.638 0-8.573-3.007-9.963-7.178z M15 12a3 3 0 11-6 0 3 3 0 016 0z"
|
|
4890
|
+
}
|
|
4891
|
+
)
|
|
4892
|
+
},
|
|
4893
|
+
{
|
|
4894
|
+
title: "Be the first story",
|
|
4895
|
+
body: `Building something with ${productLabel} worth talking about? Tell us \u2014 the best early stories become the case studies featured on this page.`,
|
|
4896
|
+
icon: /* @__PURE__ */ jsx(
|
|
4897
|
+
"path",
|
|
4898
|
+
{
|
|
4899
|
+
strokeLinecap: "round",
|
|
4900
|
+
strokeLinejoin: "round",
|
|
4901
|
+
strokeWidth: 1.5,
|
|
4902
|
+
d: "M11.48 3.499a.562.562 0 011.04 0l2.125 5.111a.563.563 0 00.475.345l5.518.442c.499.04.701.663.321.988l-4.204 3.602a.563.563 0 00-.182.557l1.285 5.385a.562.562 0 01-.84.61l-4.725-2.885a.562.562 0 00-.586 0L6.982 20.54a.562.562 0 01-.84-.61l1.285-5.386a.562.562 0 00-.182-.557l-4.204-3.602a.562.562 0 01.321-.988l5.518-.442a.563.563 0 00.475-.345L11.48 3.5z"
|
|
4903
|
+
}
|
|
4904
|
+
)
|
|
4905
|
+
}
|
|
4906
|
+
];
|
|
4907
|
+
return /* @__PURE__ */ jsxs("div", { className: "cs-fade-up mx-auto max-w-4xl", children: [
|
|
4908
|
+
/* @__PURE__ */ jsxs("div", { className: "relative overflow-hidden rounded-3xl border bg-card px-6 py-14 text-center sm:px-12 sm:py-16", children: [
|
|
4909
|
+
/* @__PURE__ */ jsx(
|
|
4910
|
+
"div",
|
|
4911
|
+
{
|
|
4912
|
+
className: "pointer-events-none absolute -top-24 -right-16 h-64 w-64 rounded-full bg-primary/10 blur-3xl",
|
|
4913
|
+
"aria-hidden": "true"
|
|
4914
|
+
}
|
|
4915
|
+
),
|
|
4916
|
+
/* @__PURE__ */ jsx(
|
|
4917
|
+
"div",
|
|
4918
|
+
{
|
|
4919
|
+
className: "pointer-events-none absolute -bottom-24 -left-16 h-64 w-64 rounded-full bg-primary/5 blur-3xl",
|
|
4920
|
+
"aria-hidden": "true"
|
|
4921
|
+
}
|
|
4922
|
+
),
|
|
4923
|
+
/* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
4924
|
+
/* @__PURE__ */ jsx("div", { className: "cs-float mx-auto flex h-20 w-20 items-center justify-center rounded-2xl bg-primary/10 text-primary ring-1 ring-primary/20", children: /* @__PURE__ */ jsx(
|
|
4703
4925
|
"svg",
|
|
4704
4926
|
{
|
|
4705
|
-
className: "
|
|
4927
|
+
className: "h-10 w-10",
|
|
4706
4928
|
fill: "none",
|
|
4707
4929
|
viewBox: "0 0 24 24",
|
|
4708
4930
|
stroke: "currentColor",
|
|
4931
|
+
"aria-hidden": "true",
|
|
4709
4932
|
children: /* @__PURE__ */ jsx(
|
|
4710
4933
|
"path",
|
|
4711
4934
|
{
|
|
4712
4935
|
strokeLinecap: "round",
|
|
4713
4936
|
strokeLinejoin: "round",
|
|
4714
4937
|
strokeWidth: 1.5,
|
|
4715
|
-
d: "
|
|
4938
|
+
d: "M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z"
|
|
4716
4939
|
}
|
|
4717
4940
|
)
|
|
4718
4941
|
}
|
|
4719
4942
|
) }),
|
|
4720
|
-
/* @__PURE__ */
|
|
4721
|
-
|
|
4722
|
-
|
|
4723
|
-
/* @__PURE__ */
|
|
4724
|
-
|
|
4725
|
-
|
|
4726
|
-
|
|
4727
|
-
|
|
4728
|
-
|
|
4729
|
-
|
|
4730
|
-
|
|
4731
|
-
|
|
4732
|
-
|
|
4733
|
-
|
|
4734
|
-
|
|
4735
|
-
|
|
4943
|
+
/* @__PURE__ */ jsx("h2", { className: "mt-8 text-2xl font-bold tracking-tight text-foreground sm:text-3xl", children: title }),
|
|
4944
|
+
/* @__PURE__ */ jsx("p", { className: "mx-auto mt-4 max-w-2xl text-base leading-relaxed text-muted-foreground sm:text-lg", children: subtitle }),
|
|
4945
|
+
/* @__PURE__ */ jsxs("div", { className: "mt-8 flex flex-col items-center justify-center gap-3 sm:flex-row", children: [
|
|
4946
|
+
/* @__PURE__ */ jsxs(
|
|
4947
|
+
"a",
|
|
4948
|
+
{
|
|
4949
|
+
href: contactHref,
|
|
4950
|
+
className: "inline-flex w-full items-center justify-center gap-2 rounded-lg bg-primary px-6 py-3 text-sm font-semibold text-primary-foreground shadow-sm transition-all hover:opacity-90 hover:shadow-md sm:w-auto",
|
|
4951
|
+
children: [
|
|
4952
|
+
contactLabel,
|
|
4953
|
+
/* @__PURE__ */ jsx(
|
|
4954
|
+
"svg",
|
|
4955
|
+
{
|
|
4956
|
+
className: "h-4 w-4",
|
|
4957
|
+
viewBox: "0 0 20 20",
|
|
4958
|
+
fill: "currentColor",
|
|
4959
|
+
"aria-hidden": "true",
|
|
4960
|
+
children: /* @__PURE__ */ jsx(
|
|
4961
|
+
"path",
|
|
4962
|
+
{
|
|
4963
|
+
fillRule: "evenodd",
|
|
4964
|
+
d: "M7.293 4.293a1 1 0 011.414 0l5 5a1 1 0 010 1.414l-5 5a1 1 0 01-1.414-1.414L11.586 10 7.293 5.707a1 1 0 010-1.414z",
|
|
4965
|
+
clipRule: "evenodd"
|
|
4966
|
+
}
|
|
4967
|
+
)
|
|
4968
|
+
}
|
|
4969
|
+
)
|
|
4970
|
+
]
|
|
4971
|
+
}
|
|
4972
|
+
),
|
|
4973
|
+
/* @__PURE__ */ jsx(
|
|
4974
|
+
"a",
|
|
4975
|
+
{
|
|
4976
|
+
href: exploreHref,
|
|
4977
|
+
className: "inline-flex w-full items-center justify-center gap-2 rounded-lg border border-border bg-background px-6 py-3 text-sm font-semibold text-foreground transition-colors hover:bg-muted sm:w-auto",
|
|
4978
|
+
children: exploreLabel
|
|
4979
|
+
}
|
|
4980
|
+
)
|
|
4736
4981
|
] })
|
|
4737
|
-
]
|
|
4738
|
-
}
|
|
4739
|
-
|
|
4982
|
+
] })
|
|
4983
|
+
] }),
|
|
4984
|
+
/* @__PURE__ */ jsx("div", { className: "mt-8 grid gap-4 sm:grid-cols-3", children: highlights.map((h) => /* @__PURE__ */ jsxs(
|
|
4985
|
+
"div",
|
|
4986
|
+
{
|
|
4987
|
+
className: "rounded-2xl border bg-card/60 p-5 text-left transition-colors hover:border-primary/30",
|
|
4988
|
+
children: [
|
|
4989
|
+
/* @__PURE__ */ jsx("div", { className: "flex h-10 w-10 items-center justify-center rounded-lg bg-primary/10 text-primary", children: /* @__PURE__ */ jsx(
|
|
4990
|
+
"svg",
|
|
4991
|
+
{
|
|
4992
|
+
className: "h-5 w-5",
|
|
4993
|
+
fill: "none",
|
|
4994
|
+
viewBox: "0 0 24 24",
|
|
4995
|
+
stroke: "currentColor",
|
|
4996
|
+
"aria-hidden": "true",
|
|
4997
|
+
children: h.icon
|
|
4998
|
+
}
|
|
4999
|
+
) }),
|
|
5000
|
+
/* @__PURE__ */ jsx("h3", { className: "mt-4 text-sm font-semibold text-foreground", children: h.title }),
|
|
5001
|
+
/* @__PURE__ */ jsx("p", { className: "mt-1.5 text-sm leading-relaxed text-muted-foreground", children: h.body })
|
|
5002
|
+
]
|
|
5003
|
+
},
|
|
5004
|
+
h.title
|
|
5005
|
+
)) })
|
|
5006
|
+
] });
|
|
4740
5007
|
}
|
|
4741
5008
|
function CaseStudiesListPage(props) {
|
|
4742
5009
|
const {
|
|
4743
5010
|
productName,
|
|
5011
|
+
eyebrow = "Customer Stories",
|
|
4744
5012
|
heroTitle = "Case Studies",
|
|
4745
|
-
heroSubtitle = "Real-world stories of teams building with our platform",
|
|
5013
|
+
heroSubtitle = "Real-world stories of teams building with our platform.",
|
|
4746
5014
|
caseStudyBasePath = "/case-studies",
|
|
4747
5015
|
className = "",
|
|
4748
5016
|
seoTitle,
|
|
4749
5017
|
seoDescription,
|
|
4750
|
-
seoKeywords
|
|
5018
|
+
seoKeywords,
|
|
5019
|
+
contactHref = "/contact",
|
|
5020
|
+
contactLabel = "Get in touch",
|
|
5021
|
+
exploreHref = "/features",
|
|
5022
|
+
exploreLabel = "Explore the product",
|
|
5023
|
+
emptyTitle,
|
|
5024
|
+
emptySubtitle
|
|
4751
5025
|
} = props;
|
|
4752
5026
|
const client = useWebSDK();
|
|
4753
5027
|
const config = useWebSDKConfig();
|
|
4754
5028
|
const { product } = useProduct();
|
|
4755
5029
|
const resolvedProductId = product?.id || config.productId;
|
|
5030
|
+
const productLabel = product?.name || productName || "our platform";
|
|
4756
5031
|
const [posts, setPosts] = useState([]);
|
|
4757
5032
|
const [total, setTotal] = useState(0);
|
|
4758
5033
|
const [loading, setLoading] = useState(true);
|
|
4759
5034
|
const [error, setError] = useState(null);
|
|
4760
5035
|
const [offset, setOffset] = useState(0);
|
|
5036
|
+
const [activeCategory, setActiveCategory] = useState("All");
|
|
4761
5037
|
const limit = 12;
|
|
4762
5038
|
const fetchPosts = useCallback(async () => {
|
|
4763
5039
|
if (!resolvedProductId) return;
|
|
@@ -4770,6 +5046,7 @@ function CaseStudiesListPage(props) {
|
|
|
4770
5046
|
});
|
|
4771
5047
|
if (result.errors?.length) {
|
|
4772
5048
|
setError(result.errors[0]?.message ?? "Failed to load case studies");
|
|
5049
|
+
setPosts([]);
|
|
4773
5050
|
return;
|
|
4774
5051
|
}
|
|
4775
5052
|
const caseStudies = (result.data?.publicContentPages?.items || []).filter(
|
|
@@ -4779,7 +5056,8 @@ function CaseStudiesListPage(props) {
|
|
|
4779
5056
|
setTotal(result.data?.publicContentPages?.total || 0);
|
|
4780
5057
|
setError(null);
|
|
4781
5058
|
} catch {
|
|
4782
|
-
setError("
|
|
5059
|
+
setError("load-failed");
|
|
5060
|
+
setPosts([]);
|
|
4783
5061
|
} finally {
|
|
4784
5062
|
setLoading(false);
|
|
4785
5063
|
}
|
|
@@ -4787,9 +5065,25 @@ function CaseStudiesListPage(props) {
|
|
|
4787
5065
|
useEffect(() => {
|
|
4788
5066
|
fetchPosts();
|
|
4789
5067
|
}, [fetchPosts]);
|
|
4790
|
-
const
|
|
4791
|
-
|
|
4792
|
-
|
|
5068
|
+
const categories = useMemo(() => {
|
|
5069
|
+
const set = /* @__PURE__ */ new Set();
|
|
5070
|
+
posts.forEach((p) => {
|
|
5071
|
+
if (p.category) set.add(p.category);
|
|
5072
|
+
});
|
|
5073
|
+
return ["All", ...Array.from(set)];
|
|
5074
|
+
}, [posts]);
|
|
5075
|
+
const visiblePosts = useMemo(() => {
|
|
5076
|
+
if (activeCategory === "All") return posts;
|
|
5077
|
+
return posts.filter((p) => p.category === activeCategory);
|
|
5078
|
+
}, [posts, activeCategory]);
|
|
5079
|
+
const featuredPosts = visiblePosts.filter((p) => p.featured);
|
|
5080
|
+
const regularPosts = visiblePosts.filter((p) => !p.featured);
|
|
5081
|
+
const hasContent = !loading && !error && posts.length > 0;
|
|
5082
|
+
const showEmpty = !loading && (error !== null || posts.length === 0);
|
|
5083
|
+
const resolvedEmptyTitle = emptyTitle ?? "Case studies are on the way";
|
|
5084
|
+
const resolvedEmptySubtitle = emptySubtitle ?? `${productLabel} is early in its journey, and we'd rather show you real, measurable results than filler. We're working closely with our first teams now \u2014 their stories will be published here soon. In the meantime, we'd love to show you what's possible.`;
|
|
5085
|
+
return /* @__PURE__ */ jsxs("div", { className: `w-full ${className}`, "data-cs": "case-studies-v2", children: [
|
|
5086
|
+
/* @__PURE__ */ jsx(AnimationStyles, {}),
|
|
4793
5087
|
seoTitle && /* @__PURE__ */ jsx(
|
|
4794
5088
|
PageHead,
|
|
4795
5089
|
{
|
|
@@ -4799,35 +5093,69 @@ function CaseStudiesListPage(props) {
|
|
|
4799
5093
|
keywords: seoKeywords
|
|
4800
5094
|
}
|
|
4801
5095
|
),
|
|
4802
|
-
/* @__PURE__ */
|
|
4803
|
-
/* @__PURE__ */ jsx(
|
|
4804
|
-
|
|
4805
|
-
|
|
4806
|
-
|
|
5096
|
+
/* @__PURE__ */ jsxs("section", { className: "relative overflow-hidden", children: [
|
|
5097
|
+
/* @__PURE__ */ jsx(
|
|
5098
|
+
"div",
|
|
5099
|
+
{
|
|
5100
|
+
className: "pointer-events-none absolute inset-x-0 -top-32 mx-auto h-72 max-w-3xl rounded-full bg-primary/10 blur-3xl",
|
|
5101
|
+
"aria-hidden": "true"
|
|
5102
|
+
}
|
|
5103
|
+
),
|
|
5104
|
+
/* @__PURE__ */ jsx("div", { className: "relative mx-auto max-w-7xl px-4 py-16 sm:px-6 sm:py-20 md:py-24 lg:px-8", children: /* @__PURE__ */ jsxs("div", { className: "mx-auto max-w-3xl text-center", children: [
|
|
5105
|
+
/* @__PURE__ */ jsxs("span", { className: "inline-flex items-center gap-2 rounded-full border border-primary/20 bg-primary/10 px-3 py-1 text-xs font-semibold uppercase tracking-wide text-primary", children: [
|
|
5106
|
+
/* @__PURE__ */ jsx("span", { className: "h-1.5 w-1.5 rounded-full bg-primary" }),
|
|
5107
|
+
eyebrow
|
|
5108
|
+
] }),
|
|
5109
|
+
/* @__PURE__ */ jsx("h1", { className: "mt-5 text-3xl font-bold tracking-tight text-foreground sm:text-4xl md:text-5xl", children: heroTitle }),
|
|
5110
|
+
/* @__PURE__ */ jsx("p", { className: "mt-4 text-lg text-muted-foreground", children: heroSubtitle })
|
|
5111
|
+
] }) })
|
|
5112
|
+
] }),
|
|
5113
|
+
/* @__PURE__ */ jsx("section", { className: "pb-20 sm:pb-24", children: /* @__PURE__ */ jsx("div", { className: "mx-auto max-w-7xl px-4 sm:px-6 lg:px-8", children: loading ? /* @__PURE__ */ jsx("div", { className: "grid gap-6 sm:gap-8 md:grid-cols-2 lg:grid-cols-3", children: [1, 2, 3, 4, 5, 6].map((i) => /* @__PURE__ */ jsxs(
|
|
4807
5114
|
"div",
|
|
4808
5115
|
{
|
|
4809
|
-
className: "
|
|
5116
|
+
className: "overflow-hidden rounded-xl border bg-card animate-pulse",
|
|
4810
5117
|
children: [
|
|
4811
5118
|
/* @__PURE__ */ jsx("div", { className: "aspect-[16/9] bg-muted" }),
|
|
4812
|
-
/* @__PURE__ */ jsxs("div", { className: "
|
|
4813
|
-
/* @__PURE__ */ jsx("div", { className: "h-4
|
|
4814
|
-
/* @__PURE__ */ jsx("div", { className: "h-6
|
|
4815
|
-
/* @__PURE__ */ jsx("div", { className: "h-4 bg-muted
|
|
4816
|
-
/* @__PURE__ */ jsx("div", { className: "h-4
|
|
5119
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-3 p-6", children: [
|
|
5120
|
+
/* @__PURE__ */ jsx("div", { className: "h-4 w-1/4 rounded bg-muted" }),
|
|
5121
|
+
/* @__PURE__ */ jsx("div", { className: "h-6 w-3/4 rounded bg-muted" }),
|
|
5122
|
+
/* @__PURE__ */ jsx("div", { className: "h-4 rounded bg-muted" }),
|
|
5123
|
+
/* @__PURE__ */ jsx("div", { className: "h-4 w-1/2 rounded bg-muted" })
|
|
4817
5124
|
] })
|
|
4818
5125
|
]
|
|
4819
5126
|
},
|
|
4820
5127
|
i
|
|
4821
|
-
)) }) :
|
|
4822
|
-
|
|
4823
|
-
|
|
5128
|
+
)) }) : showEmpty ? /* @__PURE__ */ jsx(
|
|
5129
|
+
EmptyState,
|
|
5130
|
+
{
|
|
5131
|
+
productLabel,
|
|
5132
|
+
title: resolvedEmptyTitle,
|
|
5133
|
+
subtitle: resolvedEmptySubtitle,
|
|
5134
|
+
contactHref,
|
|
5135
|
+
contactLabel,
|
|
5136
|
+
exploreHref,
|
|
5137
|
+
exploreLabel
|
|
5138
|
+
}
|
|
5139
|
+
) : hasContent ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
5140
|
+
categories.length > 2 && /* @__PURE__ */ jsx("div", { className: "mb-10 flex flex-wrap justify-center gap-2", children: categories.map((cat) => /* @__PURE__ */ jsx(
|
|
5141
|
+
"button",
|
|
5142
|
+
{
|
|
5143
|
+
type: "button",
|
|
5144
|
+
onClick: () => setActiveCategory(cat),
|
|
5145
|
+
className: `rounded-full border px-4 py-1.5 text-sm font-medium transition-colors ${activeCategory === cat ? "border-primary bg-primary text-primary-foreground" : "border-border bg-background text-muted-foreground hover:border-primary/40 hover:text-foreground"}`,
|
|
5146
|
+
children: cat
|
|
5147
|
+
},
|
|
5148
|
+
cat
|
|
5149
|
+
)) }),
|
|
5150
|
+
featuredPosts.length > 0 && /* @__PURE__ */ jsx("div", { className: "mb-10 grid gap-6 sm:gap-8 lg:grid-cols-2", children: featuredPosts.map((post) => /* @__PURE__ */ jsx(
|
|
5151
|
+
FeaturedCard,
|
|
4824
5152
|
{
|
|
4825
5153
|
post,
|
|
4826
5154
|
basePath: caseStudyBasePath
|
|
4827
5155
|
},
|
|
4828
5156
|
post.id
|
|
4829
5157
|
)) }),
|
|
4830
|
-
/* @__PURE__ */ jsx("div", { className: "grid md:grid-cols-2 lg:grid-cols-3
|
|
5158
|
+
regularPosts.length > 0 && /* @__PURE__ */ jsx("div", { className: "grid gap-6 sm:gap-8 md:grid-cols-2 lg:grid-cols-3", children: regularPosts.map((post) => /* @__PURE__ */ jsx(
|
|
4831
5159
|
CaseStudyCard,
|
|
4832
5160
|
{
|
|
4833
5161
|
post,
|
|
@@ -4835,13 +5163,13 @@ function CaseStudiesListPage(props) {
|
|
|
4835
5163
|
},
|
|
4836
5164
|
post.id
|
|
4837
5165
|
)) }),
|
|
4838
|
-
total > limit && /* @__PURE__ */ jsxs("div", { className: "flex justify-center gap-4
|
|
5166
|
+
activeCategory === "All" && total > limit && /* @__PURE__ */ jsxs("div", { className: "mt-14 flex justify-center gap-4", children: [
|
|
4839
5167
|
/* @__PURE__ */ jsx(
|
|
4840
5168
|
"button",
|
|
4841
5169
|
{
|
|
4842
5170
|
onClick: () => setOffset(Math.max(0, offset - limit)),
|
|
4843
5171
|
disabled: offset === 0,
|
|
4844
|
-
className: "px-5 py-2.5 text-sm font-medium
|
|
5172
|
+
className: "rounded-lg border px-5 py-2.5 text-sm font-medium transition-colors hover:bg-muted disabled:opacity-40",
|
|
4845
5173
|
children: "Previous"
|
|
4846
5174
|
}
|
|
4847
5175
|
),
|
|
@@ -4850,12 +5178,29 @@ function CaseStudiesListPage(props) {
|
|
|
4850
5178
|
{
|
|
4851
5179
|
onClick: () => setOffset(offset + limit),
|
|
4852
5180
|
disabled: offset + limit >= total,
|
|
4853
|
-
className: "px-5 py-2.5 text-sm font-medium
|
|
5181
|
+
className: "rounded-lg border px-5 py-2.5 text-sm font-medium transition-colors hover:bg-muted disabled:opacity-40",
|
|
4854
5182
|
children: "Next"
|
|
4855
5183
|
}
|
|
4856
5184
|
)
|
|
5185
|
+
] }),
|
|
5186
|
+
/* @__PURE__ */ jsxs("div", { className: "mt-16 overflow-hidden rounded-2xl border bg-gradient-to-br from-primary/10 via-card to-card p-8 text-center sm:p-10", children: [
|
|
5187
|
+
/* @__PURE__ */ jsx("h2", { className: "text-xl font-bold text-foreground sm:text-2xl", children: "Want results like these?" }),
|
|
5188
|
+
/* @__PURE__ */ jsxs("p", { className: "mx-auto mt-2 max-w-xl text-sm text-muted-foreground sm:text-base", children: [
|
|
5189
|
+
"Tell us about your goals and we\u2019ll show you exactly how",
|
|
5190
|
+
" ",
|
|
5191
|
+
productLabel,
|
|
5192
|
+
" can help."
|
|
5193
|
+
] }),
|
|
5194
|
+
/* @__PURE__ */ jsx(
|
|
5195
|
+
"a",
|
|
5196
|
+
{
|
|
5197
|
+
href: contactHref,
|
|
5198
|
+
className: "mt-6 inline-flex items-center justify-center gap-2 rounded-lg bg-primary px-6 py-3 text-sm font-semibold text-primary-foreground shadow-sm transition-all hover:opacity-90 hover:shadow-md",
|
|
5199
|
+
children: contactLabel
|
|
5200
|
+
}
|
|
5201
|
+
)
|
|
4857
5202
|
] })
|
|
4858
|
-
] }) }) })
|
|
5203
|
+
] }) : null }) })
|
|
4859
5204
|
] });
|
|
4860
5205
|
}
|
|
4861
5206
|
function CaseStudyPage(props) {
|
|
@@ -4863,12 +5208,15 @@ function CaseStudyPage(props) {
|
|
|
4863
5208
|
productName,
|
|
4864
5209
|
caseStudiesListUrl = "/case-studies",
|
|
4865
5210
|
backLabel = "Back to Case Studies",
|
|
5211
|
+
contactHref = "/contact",
|
|
5212
|
+
contactLabel = "Get in touch",
|
|
4866
5213
|
className = ""
|
|
4867
5214
|
} = props;
|
|
4868
5215
|
const client = useWebSDK();
|
|
4869
5216
|
const config = useWebSDKConfig();
|
|
4870
5217
|
const { product } = useProduct();
|
|
4871
5218
|
const resolvedProductId = product?.id || config.productId;
|
|
5219
|
+
const productLabel = product?.name || productName || "our team";
|
|
4872
5220
|
const [post, setPost] = useState(null);
|
|
4873
5221
|
const [loading, setLoading] = useState(true);
|
|
4874
5222
|
const [error, setError] = useState(null);
|
|
@@ -4897,36 +5245,64 @@ function CaseStudyPage(props) {
|
|
|
4897
5245
|
fetchPost();
|
|
4898
5246
|
}, [client, slug, resolvedProductId]);
|
|
4899
5247
|
if (loading) {
|
|
4900
|
-
return /* @__PURE__ */ jsx("div", { className: `w-full ${className}`, children: /* @__PURE__ */ jsx("div", { className: "max-w-4xl
|
|
4901
|
-
/* @__PURE__ */ jsx("div", { className: "h-8
|
|
4902
|
-
/* @__PURE__ */ jsx("div", { className: "h-4
|
|
4903
|
-
/* @__PURE__ */ jsx("div", { className: "aspect-[16/9] bg-muted
|
|
4904
|
-
/* @__PURE__ */ jsx("div", { className: "space-y-3", children: [1, 2, 3, 4, 5].map((i) => /* @__PURE__ */ jsx("div", { className: "h-4 bg-muted
|
|
5248
|
+
return /* @__PURE__ */ jsx("div", { className: `w-full ${className}`, children: /* @__PURE__ */ jsx("div", { className: "mx-auto max-w-4xl px-4 py-24 sm:px-6 lg:px-8", children: /* @__PURE__ */ jsxs("div", { className: "animate-pulse space-y-6", children: [
|
|
5249
|
+
/* @__PURE__ */ jsx("div", { className: "h-8 w-2/3 rounded bg-muted" }),
|
|
5250
|
+
/* @__PURE__ */ jsx("div", { className: "h-4 w-1/3 rounded bg-muted" }),
|
|
5251
|
+
/* @__PURE__ */ jsx("div", { className: "aspect-[16/9] rounded-xl bg-muted" }),
|
|
5252
|
+
/* @__PURE__ */ jsx("div", { className: "space-y-3", children: [1, 2, 3, 4, 5].map((i) => /* @__PURE__ */ jsx("div", { className: "h-4 rounded bg-muted" }, i)) })
|
|
4905
5253
|
] }) }) });
|
|
4906
5254
|
}
|
|
4907
5255
|
if (error || !post) {
|
|
4908
|
-
return /* @__PURE__ */ jsx("div", { className: `w-full ${className}`, children: /* @__PURE__ */ jsxs("div", { className: "max-w-
|
|
4909
|
-
/* @__PURE__ */ jsx("
|
|
4910
|
-
|
|
4911
|
-
/* @__PURE__ */ jsxs(
|
|
4912
|
-
"a",
|
|
5256
|
+
return /* @__PURE__ */ jsx("div", { className: `w-full ${className}`, children: /* @__PURE__ */ jsxs("div", { className: "mx-auto max-w-2xl px-4 py-24 text-center sm:px-6 lg:px-8", children: [
|
|
5257
|
+
/* @__PURE__ */ jsx("div", { className: "mx-auto flex h-16 w-16 items-center justify-center rounded-2xl bg-primary/10 text-primary", children: /* @__PURE__ */ jsx(
|
|
5258
|
+
"svg",
|
|
4913
5259
|
{
|
|
4914
|
-
|
|
4915
|
-
|
|
4916
|
-
|
|
4917
|
-
|
|
4918
|
-
|
|
4919
|
-
|
|
5260
|
+
className: "h-8 w-8",
|
|
5261
|
+
fill: "none",
|
|
5262
|
+
viewBox: "0 0 24 24",
|
|
5263
|
+
stroke: "currentColor",
|
|
5264
|
+
"aria-hidden": "true",
|
|
5265
|
+
children: /* @__PURE__ */ jsx(
|
|
5266
|
+
"path",
|
|
5267
|
+
{
|
|
5268
|
+
strokeLinecap: "round",
|
|
5269
|
+
strokeLinejoin: "round",
|
|
5270
|
+
strokeWidth: 1.5,
|
|
5271
|
+
d: "M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9 5.25h.008v.008H12v-.008z"
|
|
5272
|
+
}
|
|
5273
|
+
)
|
|
4920
5274
|
}
|
|
4921
|
-
)
|
|
5275
|
+
) }),
|
|
5276
|
+
/* @__PURE__ */ jsx("h1", { className: "mt-6 text-2xl font-bold text-foreground", children: "Case study not found" }),
|
|
5277
|
+
/* @__PURE__ */ jsxs("p", { className: "mx-auto mt-3 max-w-md text-muted-foreground", children: [
|
|
5278
|
+
"This story isn\u2019t available yet \u2014 but there\u2019s plenty more to explore, and we\u2019re always happy to talk through what ",
|
|
5279
|
+
productLabel,
|
|
5280
|
+
" can do."
|
|
5281
|
+
] }),
|
|
5282
|
+
/* @__PURE__ */ jsxs("div", { className: "mt-8 flex flex-col items-center justify-center gap-3 sm:flex-row", children: [
|
|
5283
|
+
/* @__PURE__ */ jsxs(
|
|
5284
|
+
"a",
|
|
5285
|
+
{
|
|
5286
|
+
href: caseStudiesListUrl,
|
|
5287
|
+
className: "inline-flex items-center justify-center rounded-lg border px-5 py-2.5 text-sm font-semibold text-foreground transition-colors hover:bg-muted",
|
|
5288
|
+
children: [
|
|
5289
|
+
"\u2190 ",
|
|
5290
|
+
backLabel
|
|
5291
|
+
]
|
|
5292
|
+
}
|
|
5293
|
+
),
|
|
5294
|
+
/* @__PURE__ */ jsx(
|
|
5295
|
+
"a",
|
|
5296
|
+
{
|
|
5297
|
+
href: contactHref,
|
|
5298
|
+
className: "inline-flex items-center justify-center rounded-lg bg-primary px-5 py-2.5 text-sm font-semibold text-primary-foreground transition-all hover:opacity-90",
|
|
5299
|
+
children: contactLabel
|
|
5300
|
+
}
|
|
5301
|
+
)
|
|
5302
|
+
] })
|
|
4922
5303
|
] }) });
|
|
4923
5304
|
}
|
|
4924
|
-
const
|
|
4925
|
-
const formattedDate = date ? new Date(date).toLocaleDateString("en-US", {
|
|
4926
|
-
year: "numeric",
|
|
4927
|
-
month: "long",
|
|
4928
|
-
day: "numeric"
|
|
4929
|
-
}) : "";
|
|
5305
|
+
const formattedDate = formatDate(post.publishedAt || post.lastUpdated);
|
|
4930
5306
|
return /* @__PURE__ */ jsxs("div", { className: `w-full ${className}`, children: [
|
|
4931
5307
|
/* @__PURE__ */ jsx(
|
|
4932
5308
|
PageHead,
|
|
@@ -4937,41 +5313,57 @@ function CaseStudyPage(props) {
|
|
|
4937
5313
|
keywords: post.seoKeywords || ""
|
|
4938
5314
|
}
|
|
4939
5315
|
),
|
|
4940
|
-
/* @__PURE__ */ jsxs("article", { className: "max-w-4xl
|
|
5316
|
+
/* @__PURE__ */ jsxs("article", { className: "mx-auto max-w-4xl px-4 py-16 sm:px-6 sm:py-20 lg:px-8", children: [
|
|
4941
5317
|
/* @__PURE__ */ jsxs(
|
|
4942
5318
|
"a",
|
|
4943
5319
|
{
|
|
4944
5320
|
href: caseStudiesListUrl,
|
|
4945
|
-
className: "inline-flex items-center gap-1 text-sm text-muted-foreground hover:text-foreground
|
|
5321
|
+
className: "mb-8 inline-flex items-center gap-1 text-sm text-muted-foreground transition-colors hover:text-foreground",
|
|
4946
5322
|
children: [
|
|
4947
5323
|
"\u2190 ",
|
|
4948
5324
|
backLabel
|
|
4949
5325
|
]
|
|
4950
5326
|
}
|
|
4951
5327
|
),
|
|
4952
|
-
post.category && /* @__PURE__ */ jsx("span", { className: "inline-block
|
|
4953
|
-
/* @__PURE__ */ jsx("h1", { className: "
|
|
4954
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 text-sm text-muted-foreground
|
|
5328
|
+
post.category && /* @__PURE__ */ jsx("span", { className: "mb-4 inline-block rounded-full bg-primary/10 px-2.5 py-1 text-xs font-medium text-primary", children: post.category }),
|
|
5329
|
+
/* @__PURE__ */ jsx("h1", { className: "mb-4 text-3xl font-bold tracking-tight text-foreground sm:text-4xl md:text-5xl", children: post.title }),
|
|
5330
|
+
/* @__PURE__ */ jsxs("div", { className: "mb-8 flex flex-wrap items-center gap-3 text-sm text-muted-foreground", children: [
|
|
4955
5331
|
post.author && /* @__PURE__ */ jsx("span", { className: "font-medium text-foreground", children: post.author }),
|
|
4956
5332
|
post.author && formattedDate && /* @__PURE__ */ jsx("span", { className: "text-muted-foreground/40", children: "\xB7" }),
|
|
4957
5333
|
formattedDate && /* @__PURE__ */ jsx("span", { children: formattedDate }),
|
|
4958
|
-
post.readingTime
|
|
5334
|
+
post.readingTime ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
4959
5335
|
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground/40", children: "\xB7" }),
|
|
4960
5336
|
/* @__PURE__ */ jsxs("span", { children: [
|
|
4961
5337
|
post.readingTime,
|
|
4962
5338
|
" min read"
|
|
4963
5339
|
] })
|
|
4964
|
-
] })
|
|
5340
|
+
] }) : null
|
|
4965
5341
|
] }),
|
|
4966
|
-
post.thumbnail && /* @__PURE__ */ jsx("div", { className: "aspect-[16/9]
|
|
5342
|
+
post.thumbnail && /* @__PURE__ */ jsx("div", { className: "mb-10 aspect-[16/9] overflow-hidden rounded-xl", children: /* @__PURE__ */ jsx(
|
|
4967
5343
|
"img",
|
|
4968
5344
|
{
|
|
4969
5345
|
src: post.thumbnail,
|
|
4970
5346
|
alt: post.title,
|
|
4971
|
-
className: "
|
|
5347
|
+
className: "h-full w-full object-cover"
|
|
4972
5348
|
}
|
|
4973
5349
|
) }),
|
|
4974
|
-
/* @__PURE__ */ jsx("div", { className: "prose prose-gray dark:prose-invert
|
|
5350
|
+
/* @__PURE__ */ jsx("div", { className: "prose prose-gray max-w-none dark:prose-invert", children: /* @__PURE__ */ jsx(ContentRenderer, { content: post.content, format: post.contentFormat }) }),
|
|
5351
|
+
/* @__PURE__ */ jsxs("div", { className: "mt-14 rounded-2xl border bg-gradient-to-br from-primary/10 via-card to-card p-8 text-center", children: [
|
|
5352
|
+
/* @__PURE__ */ jsxs("h2", { className: "text-xl font-bold text-foreground", children: [
|
|
5353
|
+
"Curious what ",
|
|
5354
|
+
productLabel,
|
|
5355
|
+
" could do for you?"
|
|
5356
|
+
] }),
|
|
5357
|
+
/* @__PURE__ */ jsx("p", { className: "mx-auto mt-2 max-w-lg text-sm text-muted-foreground", children: "We\u2019re happy to walk you through it \u2014 no pressure, just a conversation about your goals." }),
|
|
5358
|
+
/* @__PURE__ */ jsx(
|
|
5359
|
+
"a",
|
|
5360
|
+
{
|
|
5361
|
+
href: contactHref,
|
|
5362
|
+
className: "mt-6 inline-flex items-center justify-center rounded-lg bg-primary px-6 py-3 text-sm font-semibold text-primary-foreground shadow-sm transition-all hover:opacity-90 hover:shadow-md",
|
|
5363
|
+
children: contactLabel
|
|
5364
|
+
}
|
|
5365
|
+
)
|
|
5366
|
+
] })
|
|
4975
5367
|
] })
|
|
4976
5368
|
] });
|
|
4977
5369
|
}
|
|
@@ -5007,7 +5399,7 @@ var CHANGELOG_ENTRY_QUERY = `
|
|
|
5007
5399
|
}
|
|
5008
5400
|
}
|
|
5009
5401
|
`;
|
|
5010
|
-
function
|
|
5402
|
+
function formatDate2(value) {
|
|
5011
5403
|
if (!value) return "";
|
|
5012
5404
|
return new Date(value).toLocaleDateString("en-US", {
|
|
5013
5405
|
year: "numeric",
|
|
@@ -5129,7 +5521,7 @@ function CmsTimeline(props) {
|
|
|
5129
5521
|
),
|
|
5130
5522
|
/* @__PURE__ */ jsxs("div", { className: "p-6 sm:p-8", children: [
|
|
5131
5523
|
/* @__PURE__ */ jsxs("p", { className: "text-xs text-muted-foreground mb-2", children: [
|
|
5132
|
-
entry.publishedAt && /* @__PURE__ */ jsx("time", { dateTime: entry.publishedAt, children:
|
|
5524
|
+
entry.publishedAt && /* @__PURE__ */ jsx("time", { dateTime: entry.publishedAt, children: formatDate2(entry.publishedAt || entry.lastUpdated) }),
|
|
5133
5525
|
entry.author && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
5134
5526
|
" \xB7 ",
|
|
5135
5527
|
entry.author
|
|
@@ -5273,7 +5665,7 @@ function EntriesTimeline(props) {
|
|
|
5273
5665
|
{
|
|
5274
5666
|
className: "text-xs text-muted-foreground",
|
|
5275
5667
|
dateTime: entry.date,
|
|
5276
|
-
children:
|
|
5668
|
+
children: formatDate2(entry.date)
|
|
5277
5669
|
}
|
|
5278
5670
|
)
|
|
5279
5671
|
] }),
|