@burdenoff/website-sdk 2026.517.6 → 2026.518.2
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/components/contact.js.map +1 -1
- package/dist/components/contact.mjs.map +1 -1
- package/dist/components/pricing.js +4 -7
- package/dist/components/pricing.js.map +1 -1
- package/dist/components/pricing.mjs +4 -7
- package/dist/components/pricing.mjs.map +1 -1
- package/dist/content/index.d.mts +33 -1
- package/dist/content/index.d.ts +33 -1
- package/dist/content/index.js +300 -7
- package/dist/content/index.js.map +1 -1
- package/dist/content/index.mjs +300 -8
- package/dist/content/index.mjs.map +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +304 -14
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +304 -15
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/content/index.js
CHANGED
|
@@ -757,20 +757,313 @@ function BlogPostPage(props) {
|
|
|
757
757
|
className: "w-full h-full object-cover"
|
|
758
758
|
}
|
|
759
759
|
) }),
|
|
760
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "prose prose-gray dark:prose-invert max-w-none", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
760
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "prose prose-gray dark:prose-invert max-w-none", children: /* @__PURE__ */ jsxRuntime.jsx(ContentRenderer, { content: post.content, format: post.contentFormat }) })
|
|
761
|
+
] })
|
|
762
|
+
] });
|
|
763
|
+
}
|
|
764
|
+
var PRESS_KIT_QUERY = `
|
|
765
|
+
query PublicPressKit($productId: String!, $limit: Int, $offset: Int) {
|
|
766
|
+
publicPressKitAssets(productId: $productId, limit: $limit, offset: $offset) {
|
|
767
|
+
items {
|
|
768
|
+
id
|
|
769
|
+
category
|
|
770
|
+
title
|
|
771
|
+
slug
|
|
772
|
+
description
|
|
773
|
+
fileUrl
|
|
774
|
+
fileName
|
|
775
|
+
fileSize
|
|
776
|
+
mimeType
|
|
777
|
+
thumbnailUrl
|
|
778
|
+
version
|
|
779
|
+
tags
|
|
780
|
+
sortOrder
|
|
781
|
+
updatedAt
|
|
782
|
+
}
|
|
783
|
+
total
|
|
784
|
+
hasMore
|
|
785
|
+
}
|
|
786
|
+
}
|
|
787
|
+
`;
|
|
788
|
+
var CATEGORY_ORDER = [
|
|
789
|
+
"LOGO",
|
|
790
|
+
"BANNER",
|
|
791
|
+
"SCREENSHOT",
|
|
792
|
+
"BRAND_GUIDE",
|
|
793
|
+
"BROCHURE",
|
|
794
|
+
"DOCUMENT",
|
|
795
|
+
"PRESS_RELEASE"
|
|
796
|
+
];
|
|
797
|
+
var CATEGORY_LABELS = {
|
|
798
|
+
LOGO: "Logos",
|
|
799
|
+
BANNER: "Banners",
|
|
800
|
+
SCREENSHOT: "Screenshots",
|
|
801
|
+
BRAND_GUIDE: "Brand Guides",
|
|
802
|
+
BROCHURE: "Brochures",
|
|
803
|
+
DOCUMENT: "Documents",
|
|
804
|
+
PRESS_RELEASE: "Press Releases"
|
|
805
|
+
};
|
|
806
|
+
function formatBytes(bytes) {
|
|
807
|
+
if (bytes == null) return "";
|
|
808
|
+
if (bytes < 1024) return `${bytes} B`;
|
|
809
|
+
if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(0)} KB`;
|
|
810
|
+
return `${(bytes / 1024 / 1024).toFixed(1)} MB`;
|
|
811
|
+
}
|
|
812
|
+
function AssetCard({ asset }) {
|
|
813
|
+
const date = asset.updatedAt ? new Date(asset.updatedAt).toLocaleDateString("en-US", {
|
|
814
|
+
year: "numeric",
|
|
815
|
+
month: "short",
|
|
816
|
+
day: "numeric"
|
|
817
|
+
}) : "";
|
|
818
|
+
const ext = (asset.mimeType || "file").split("/").pop()?.toUpperCase() || "FILE";
|
|
819
|
+
const size = formatBytes(asset.fileSize);
|
|
820
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "group flex flex-col bg-card border rounded-xl overflow-hidden hover:shadow-lg hover:border-primary/30 transition-all duration-300", children: [
|
|
821
|
+
asset.thumbnailUrl ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "aspect-[16/9] overflow-hidden bg-muted/30", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
822
|
+
"img",
|
|
823
|
+
{
|
|
824
|
+
src: asset.thumbnailUrl,
|
|
825
|
+
alt: asset.title,
|
|
826
|
+
className: "w-full h-full object-contain group-hover:scale-105 transition-transform duration-300",
|
|
827
|
+
loading: "lazy"
|
|
828
|
+
}
|
|
829
|
+
) }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "aspect-[16/9] bg-muted/50 flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
830
|
+
"svg",
|
|
831
|
+
{
|
|
832
|
+
className: "w-12 h-12 text-muted-foreground/20",
|
|
833
|
+
fill: "none",
|
|
834
|
+
viewBox: "0 0 24 24",
|
|
835
|
+
stroke: "currentColor",
|
|
836
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
837
|
+
"path",
|
|
838
|
+
{
|
|
839
|
+
strokeLinecap: "round",
|
|
840
|
+
strokeLinejoin: "round",
|
|
841
|
+
strokeWidth: 1.5,
|
|
842
|
+
d: "M7 21h10a2 2 0 002-2V9.414a1 1 0 00-.293-.707l-5.414-5.414A1 1 0 0012.586 3H7a2 2 0 00-2 2v14a2 2 0 002 2z"
|
|
843
|
+
}
|
|
844
|
+
)
|
|
845
|
+
}
|
|
846
|
+
) }),
|
|
847
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col flex-1 p-5", children: [
|
|
848
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-block self-start text-xs font-medium text-primary bg-primary/10 px-2.5 py-1 rounded-full mb-3", children: CATEGORY_LABELS[asset.category] ?? asset.category }),
|
|
849
|
+
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-base font-semibold text-foreground mb-1 line-clamp-2", children: asset.title }),
|
|
850
|
+
asset.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground mb-3 line-clamp-2", children: asset.description }),
|
|
851
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-auto flex items-center justify-between pt-3", children: [
|
|
852
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 text-xs text-muted-foreground", children: [
|
|
853
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-medium", children: ext }),
|
|
854
|
+
size && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
855
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground/40", children: "\xB7" }),
|
|
856
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { children: size })
|
|
857
|
+
] }),
|
|
858
|
+
date && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
859
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground/40", children: "\xB7" }),
|
|
860
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { children: date })
|
|
861
|
+
] })
|
|
862
|
+
] }),
|
|
863
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
864
|
+
"a",
|
|
865
|
+
{
|
|
866
|
+
href: asset.fileUrl,
|
|
867
|
+
target: "_blank",
|
|
868
|
+
rel: "noopener noreferrer",
|
|
869
|
+
download: true,
|
|
870
|
+
className: "inline-flex items-center gap-1.5 text-sm font-medium text-primary hover:underline",
|
|
871
|
+
children: [
|
|
872
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
873
|
+
"svg",
|
|
874
|
+
{
|
|
875
|
+
className: "w-4 h-4",
|
|
876
|
+
fill: "none",
|
|
877
|
+
viewBox: "0 0 24 24",
|
|
878
|
+
stroke: "currentColor",
|
|
879
|
+
strokeWidth: 2,
|
|
880
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
881
|
+
"path",
|
|
882
|
+
{
|
|
883
|
+
strokeLinecap: "round",
|
|
884
|
+
strokeLinejoin: "round",
|
|
885
|
+
d: "M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4"
|
|
886
|
+
}
|
|
887
|
+
)
|
|
888
|
+
}
|
|
889
|
+
),
|
|
890
|
+
"Download"
|
|
891
|
+
]
|
|
892
|
+
}
|
|
893
|
+
)
|
|
894
|
+
] })
|
|
767
895
|
] })
|
|
768
896
|
] });
|
|
769
897
|
}
|
|
898
|
+
function PressKitPage(props) {
|
|
899
|
+
const {
|
|
900
|
+
productName,
|
|
901
|
+
heroTitle = "Press & Media Kit",
|
|
902
|
+
heroSubtitle = "Official logos, brand assets, and media resources. Everything you need to write about us.",
|
|
903
|
+
mediaContactEmail,
|
|
904
|
+
brandKitUrl,
|
|
905
|
+
className = "",
|
|
906
|
+
seoTitle,
|
|
907
|
+
seoDescription,
|
|
908
|
+
seoKeywords
|
|
909
|
+
} = props;
|
|
910
|
+
const client = useWebSDK();
|
|
911
|
+
const config = useWebSDKConfig();
|
|
912
|
+
const { product } = useProduct();
|
|
913
|
+
const resolvedProductId = product?.id || config.productId;
|
|
914
|
+
const contactEmail = mediaContactEmail || product?.contactEmail || void 0;
|
|
915
|
+
const [assets, setAssets] = react.useState([]);
|
|
916
|
+
const [loading, setLoading] = react.useState(true);
|
|
917
|
+
const [error, setError] = react.useState(null);
|
|
918
|
+
const [activeCategory, setActiveCategory] = react.useState("ALL");
|
|
919
|
+
const fetchAssets = react.useCallback(async () => {
|
|
920
|
+
if (!resolvedProductId) {
|
|
921
|
+
setLoading(false);
|
|
922
|
+
return;
|
|
923
|
+
}
|
|
924
|
+
setLoading(true);
|
|
925
|
+
try {
|
|
926
|
+
const PAGE_SIZE = 100;
|
|
927
|
+
const all = [];
|
|
928
|
+
let offset = 0;
|
|
929
|
+
for (; ; ) {
|
|
930
|
+
const result = await client.query(PRESS_KIT_QUERY, {
|
|
931
|
+
productId: resolvedProductId,
|
|
932
|
+
limit: PAGE_SIZE,
|
|
933
|
+
offset
|
|
934
|
+
});
|
|
935
|
+
if (result.errors?.length) {
|
|
936
|
+
setError(result.errors[0]?.message ?? "Failed to load press kit");
|
|
937
|
+
return;
|
|
938
|
+
}
|
|
939
|
+
const page = result.data?.publicPressKitAssets;
|
|
940
|
+
const items = page?.items || [];
|
|
941
|
+
all.push(...items);
|
|
942
|
+
if (!page?.hasMore || items.length === 0) break;
|
|
943
|
+
offset += PAGE_SIZE;
|
|
944
|
+
}
|
|
945
|
+
setAssets(all);
|
|
946
|
+
setError(null);
|
|
947
|
+
} catch {
|
|
948
|
+
setError("Failed to load press kit");
|
|
949
|
+
} finally {
|
|
950
|
+
setLoading(false);
|
|
951
|
+
}
|
|
952
|
+
}, [client, resolvedProductId]);
|
|
953
|
+
react.useEffect(() => {
|
|
954
|
+
fetchAssets();
|
|
955
|
+
}, [fetchAssets]);
|
|
956
|
+
const presentCategories = CATEGORY_ORDER.filter(
|
|
957
|
+
(c) => assets.some((a) => a.category === c)
|
|
958
|
+
);
|
|
959
|
+
const visibleAssets = activeCategory === "ALL" ? assets : assets.filter((a) => a.category === activeCategory);
|
|
960
|
+
const grouped = (activeCategory === "ALL" ? presentCategories : [activeCategory]).map((cat) => ({
|
|
961
|
+
cat,
|
|
962
|
+
items: visibleAssets.filter((a) => a.category === cat).sort((a, b) => a.sortOrder - b.sortOrder)
|
|
963
|
+
})).filter((g) => g.items.length > 0);
|
|
964
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `w-full ${className}`, children: [
|
|
965
|
+
seoTitle && /* @__PURE__ */ jsxRuntime.jsx(
|
|
966
|
+
PageHead,
|
|
967
|
+
{
|
|
968
|
+
title: seoTitle,
|
|
969
|
+
description: seoDescription || heroSubtitle,
|
|
970
|
+
productName,
|
|
971
|
+
keywords: seoKeywords
|
|
972
|
+
}
|
|
973
|
+
),
|
|
974
|
+
/* @__PURE__ */ jsxRuntime.jsx("section", { className: "py-16 sm:py-20 md:py-24", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center max-w-3xl mx-auto", children: [
|
|
975
|
+
/* @__PURE__ */ jsxRuntime.jsx("h1", { className: "text-3xl sm:text-4xl md:text-5xl font-bold tracking-tight text-foreground", children: heroTitle }),
|
|
976
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-4 text-lg text-muted-foreground", children: heroSubtitle }),
|
|
977
|
+
(brandKitUrl || contactEmail) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-8 flex flex-wrap items-center justify-center gap-4", children: [
|
|
978
|
+
brandKitUrl && /* @__PURE__ */ jsxRuntime.jsx(
|
|
979
|
+
"a",
|
|
980
|
+
{
|
|
981
|
+
href: brandKitUrl,
|
|
982
|
+
target: "_blank",
|
|
983
|
+
rel: "noopener noreferrer",
|
|
984
|
+
className: "inline-flex items-center gap-2 px-6 py-3 rounded-lg bg-primary text-primary-foreground font-medium hover:opacity-90 transition-opacity",
|
|
985
|
+
children: "Download brand kit"
|
|
986
|
+
}
|
|
987
|
+
),
|
|
988
|
+
contactEmail && /* @__PURE__ */ jsxRuntime.jsx(
|
|
989
|
+
"a",
|
|
990
|
+
{
|
|
991
|
+
href: `mailto:${contactEmail}`,
|
|
992
|
+
className: "inline-flex items-center gap-2 px-6 py-3 rounded-lg border font-medium text-foreground hover:bg-muted transition-colors",
|
|
993
|
+
children: "Media inquiries"
|
|
994
|
+
}
|
|
995
|
+
)
|
|
996
|
+
] })
|
|
997
|
+
] }) }) }),
|
|
998
|
+
/* @__PURE__ */ jsxRuntime.jsx("section", { className: "pb-16 sm:pb-20", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: loading ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid sm:grid-cols-2 lg:grid-cols-3 gap-6", children: [1, 2, 3, 4, 5, 6].map((i) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
999
|
+
"div",
|
|
1000
|
+
{
|
|
1001
|
+
className: "bg-card border rounded-xl overflow-hidden animate-pulse",
|
|
1002
|
+
children: [
|
|
1003
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "aspect-[16/9] bg-muted" }),
|
|
1004
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-5 space-y-3", children: [
|
|
1005
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-4 bg-muted rounded w-1/4" }),
|
|
1006
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-5 bg-muted rounded w-3/4" }),
|
|
1007
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-4 bg-muted rounded w-1/2" })
|
|
1008
|
+
] })
|
|
1009
|
+
]
|
|
1010
|
+
},
|
|
1011
|
+
i
|
|
1012
|
+
)) }) : error ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-center py-12", children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-muted-foreground", children: error }) }) : assets.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-center py-12", children: /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-muted-foreground", children: [
|
|
1013
|
+
"Press materials are coming soon. For media inquiries",
|
|
1014
|
+
contactEmail ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1015
|
+
", contact ",
|
|
1016
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1017
|
+
"a",
|
|
1018
|
+
{
|
|
1019
|
+
href: `mailto:${contactEmail}`,
|
|
1020
|
+
className: "text-primary hover:underline",
|
|
1021
|
+
children: contactEmail
|
|
1022
|
+
}
|
|
1023
|
+
)
|
|
1024
|
+
] }) : " please reach out to our team",
|
|
1025
|
+
"."
|
|
1026
|
+
] }) }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1027
|
+
presentCategories.length > 1 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-2 mb-10 justify-center", children: ["ALL", ...presentCategories].map((c) => {
|
|
1028
|
+
const active = activeCategory === c;
|
|
1029
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1030
|
+
"button",
|
|
1031
|
+
{
|
|
1032
|
+
type: "button",
|
|
1033
|
+
onClick: () => setActiveCategory(c),
|
|
1034
|
+
className: `px-4 py-2 rounded-full text-sm font-medium transition-colors ${active ? "bg-primary text-primary-foreground" : "bg-muted text-muted-foreground hover:text-foreground"}`,
|
|
1035
|
+
children: c === "ALL" ? "All" : CATEGORY_LABELS[c] ?? c
|
|
1036
|
+
},
|
|
1037
|
+
c
|
|
1038
|
+
);
|
|
1039
|
+
}) }),
|
|
1040
|
+
grouped.map((group) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-12", children: [
|
|
1041
|
+
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-xl font-semibold text-foreground mb-5", children: CATEGORY_LABELS[group.cat] ?? group.cat }),
|
|
1042
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid sm:grid-cols-2 lg:grid-cols-3 gap-6", children: group.items.map((a) => /* @__PURE__ */ jsxRuntime.jsx(AssetCard, { asset: a }, a.id)) })
|
|
1043
|
+
] }, group.cat)),
|
|
1044
|
+
contactEmail && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-8 border-t pt-10 text-center", children: [
|
|
1045
|
+
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-lg font-semibold text-foreground mb-2", children: "Media Contact" }),
|
|
1046
|
+
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-muted-foreground", children: [
|
|
1047
|
+
"For interviews, partnerships, and press inquiries:",
|
|
1048
|
+
" ",
|
|
1049
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1050
|
+
"a",
|
|
1051
|
+
{
|
|
1052
|
+
href: `mailto:${contactEmail}`,
|
|
1053
|
+
className: "text-primary hover:underline",
|
|
1054
|
+
children: contactEmail
|
|
1055
|
+
}
|
|
1056
|
+
)
|
|
1057
|
+
] })
|
|
1058
|
+
] })
|
|
1059
|
+
] }) }) })
|
|
1060
|
+
] });
|
|
1061
|
+
}
|
|
770
1062
|
|
|
771
1063
|
exports.BlogListPage = BlogListPage;
|
|
772
1064
|
exports.BlogPostPage = BlogPostPage;
|
|
773
1065
|
exports.ContentRenderer = ContentRenderer;
|
|
1066
|
+
exports.PressKitPage = PressKitPage;
|
|
774
1067
|
exports.useContentPage = useContentPage;
|
|
775
1068
|
exports.useContentPages = useContentPages;
|
|
776
1069
|
//# sourceMappingURL=index.js.map
|