@burdenoff/website-sdk 2026.720.4 → 2026.720.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/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +41 -26
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +41 -26
- package/dist/index.mjs.map +1 -1
- package/dist/{product-card-Dm1zkFkm.d.mts → product-card-D2HQglaf.d.mts} +21 -3
- package/dist/{product-card-Dm1zkFkm.d.ts → product-card-D2HQglaf.d.ts} +21 -3
- package/dist/store/index.d.mts +1 -1
- package/dist/store/index.d.ts +1 -1
- package/dist/store/index.js +41 -26
- package/dist/store/index.js.map +1 -1
- package/dist/store/index.mjs +41 -26
- package/dist/store/index.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -105,6 +105,22 @@ interface ProductCategory {
|
|
|
105
105
|
icon?: string | null;
|
|
106
106
|
parentId?: string | null;
|
|
107
107
|
}
|
|
108
|
+
interface StoreTypeFilter {
|
|
109
|
+
type: string;
|
|
110
|
+
label: string;
|
|
111
|
+
}
|
|
112
|
+
interface StoreTerminology {
|
|
113
|
+
/** Placeholder for the store search input. */
|
|
114
|
+
searchPlaceholder?: string;
|
|
115
|
+
/** Message shown in the empty state when no items have been published. */
|
|
116
|
+
emptyStateDescription?: string;
|
|
117
|
+
/** Description in the "Become a publisher" CTA section. */
|
|
118
|
+
publisherCtaDescription?: string;
|
|
119
|
+
/** Fallback description for the browse page (SEO + intro). */
|
|
120
|
+
browseDescription?: string;
|
|
121
|
+
/** Quick-filter chips on the home page and sidebar options on the browse page. */
|
|
122
|
+
typeFilters?: StoreTypeFilter[];
|
|
123
|
+
}
|
|
108
124
|
interface StorePageProps {
|
|
109
125
|
/** Filter to only products compatible with this product (e.g. "fluidgrids") */
|
|
110
126
|
compatibleWith?: string;
|
|
@@ -112,6 +128,8 @@ interface StorePageProps {
|
|
|
112
128
|
appLoginUrl: string;
|
|
113
129
|
/** Called instead of <a href> for internal navigation — pass useNavigate() wrapper */
|
|
114
130
|
onNavigate?: (path: string) => void;
|
|
131
|
+
/** Product-specific labels/copy for the store UI. */
|
|
132
|
+
terminology?: StoreTerminology;
|
|
115
133
|
}
|
|
116
134
|
|
|
117
135
|
interface StoreHomePageProps extends StorePageProps {
|
|
@@ -123,14 +141,14 @@ interface StoreHomePageProps extends StorePageProps {
|
|
|
123
141
|
seoDescription?: string;
|
|
124
142
|
seoKeywords?: string;
|
|
125
143
|
}
|
|
126
|
-
declare function StoreHomePage({ compatibleWith, appLoginUrl, onNavigate, productName, heroTitle, heroSubtitle, browsePath, seoTitle, seoDescription, seoKeywords, }: StoreHomePageProps): react_jsx_runtime.JSX.Element;
|
|
144
|
+
declare function StoreHomePage({ compatibleWith, appLoginUrl, onNavigate, terminology, productName, heroTitle, heroSubtitle, browsePath, seoTitle, seoDescription, seoKeywords, }: StoreHomePageProps): react_jsx_runtime.JSX.Element;
|
|
127
145
|
|
|
128
146
|
interface StoreBrowsePageProps extends StorePageProps {
|
|
129
147
|
productName?: string;
|
|
130
148
|
seoTitle?: string;
|
|
131
149
|
seoDescription?: string;
|
|
132
150
|
}
|
|
133
|
-
declare function StoreBrowsePage({ compatibleWith, onNavigate, productName, seoTitle, seoDescription, }: StoreBrowsePageProps): react_jsx_runtime.JSX.Element;
|
|
151
|
+
declare function StoreBrowsePage({ compatibleWith, onNavigate, terminology, productName, seoTitle, seoDescription, }: StoreBrowsePageProps): react_jsx_runtime.JSX.Element;
|
|
134
152
|
|
|
135
153
|
interface StoreProductDetailPageProps extends StorePageProps {
|
|
136
154
|
slug?: string;
|
|
@@ -154,4 +172,4 @@ interface ProductCardProps {
|
|
|
154
172
|
}
|
|
155
173
|
declare function ProductCard({ product, onClick, href }: ProductCardProps): react_jsx_runtime.JSX.Element;
|
|
156
174
|
|
|
157
|
-
export { type BrowseStoreResult as B, type GroupedStoreProducts as G, ProductCard as P, type RatingDistribution as R, type SearchSuggestion as S, TypeBadge as T, type ProductCategory as a, StarRating as b, StoreBrowsePage as c, type StoreBrowsePageProps as d, type StoreFacet as e, type StoreFacets as f, StoreHomePage as g, type StoreHomePageProps as h, type StorePageProps as i, type StoreProduct as j, StoreProductDetailPage as k, type StoreProductDetailPageProps as l, type StoreProductDetails as m, type StorePublisher as n, type StoreReview as o,
|
|
175
|
+
export { type BrowseStoreResult as B, type GroupedStoreProducts as G, ProductCard as P, type RatingDistribution as R, type SearchSuggestion as S, TypeBadge as T, type ProductCategory as a, StarRating as b, StoreBrowsePage as c, type StoreBrowsePageProps as d, type StoreFacet as e, type StoreFacets as f, StoreHomePage as g, type StoreHomePageProps as h, type StorePageProps as i, type StoreProduct as j, StoreProductDetailPage as k, type StoreProductDetailPageProps as l, type StoreProductDetails as m, type StorePublisher as n, type StoreReview as o, type StoreTerminology as p, type StoreTypeFilter as q, formatDownloads as r, formatPrice as s };
|
|
@@ -105,6 +105,22 @@ interface ProductCategory {
|
|
|
105
105
|
icon?: string | null;
|
|
106
106
|
parentId?: string | null;
|
|
107
107
|
}
|
|
108
|
+
interface StoreTypeFilter {
|
|
109
|
+
type: string;
|
|
110
|
+
label: string;
|
|
111
|
+
}
|
|
112
|
+
interface StoreTerminology {
|
|
113
|
+
/** Placeholder for the store search input. */
|
|
114
|
+
searchPlaceholder?: string;
|
|
115
|
+
/** Message shown in the empty state when no items have been published. */
|
|
116
|
+
emptyStateDescription?: string;
|
|
117
|
+
/** Description in the "Become a publisher" CTA section. */
|
|
118
|
+
publisherCtaDescription?: string;
|
|
119
|
+
/** Fallback description for the browse page (SEO + intro). */
|
|
120
|
+
browseDescription?: string;
|
|
121
|
+
/** Quick-filter chips on the home page and sidebar options on the browse page. */
|
|
122
|
+
typeFilters?: StoreTypeFilter[];
|
|
123
|
+
}
|
|
108
124
|
interface StorePageProps {
|
|
109
125
|
/** Filter to only products compatible with this product (e.g. "fluidgrids") */
|
|
110
126
|
compatibleWith?: string;
|
|
@@ -112,6 +128,8 @@ interface StorePageProps {
|
|
|
112
128
|
appLoginUrl: string;
|
|
113
129
|
/** Called instead of <a href> for internal navigation — pass useNavigate() wrapper */
|
|
114
130
|
onNavigate?: (path: string) => void;
|
|
131
|
+
/** Product-specific labels/copy for the store UI. */
|
|
132
|
+
terminology?: StoreTerminology;
|
|
115
133
|
}
|
|
116
134
|
|
|
117
135
|
interface StoreHomePageProps extends StorePageProps {
|
|
@@ -123,14 +141,14 @@ interface StoreHomePageProps extends StorePageProps {
|
|
|
123
141
|
seoDescription?: string;
|
|
124
142
|
seoKeywords?: string;
|
|
125
143
|
}
|
|
126
|
-
declare function StoreHomePage({ compatibleWith, appLoginUrl, onNavigate, productName, heroTitle, heroSubtitle, browsePath, seoTitle, seoDescription, seoKeywords, }: StoreHomePageProps): react_jsx_runtime.JSX.Element;
|
|
144
|
+
declare function StoreHomePage({ compatibleWith, appLoginUrl, onNavigate, terminology, productName, heroTitle, heroSubtitle, browsePath, seoTitle, seoDescription, seoKeywords, }: StoreHomePageProps): react_jsx_runtime.JSX.Element;
|
|
127
145
|
|
|
128
146
|
interface StoreBrowsePageProps extends StorePageProps {
|
|
129
147
|
productName?: string;
|
|
130
148
|
seoTitle?: string;
|
|
131
149
|
seoDescription?: string;
|
|
132
150
|
}
|
|
133
|
-
declare function StoreBrowsePage({ compatibleWith, onNavigate, productName, seoTitle, seoDescription, }: StoreBrowsePageProps): react_jsx_runtime.JSX.Element;
|
|
151
|
+
declare function StoreBrowsePage({ compatibleWith, onNavigate, terminology, productName, seoTitle, seoDescription, }: StoreBrowsePageProps): react_jsx_runtime.JSX.Element;
|
|
134
152
|
|
|
135
153
|
interface StoreProductDetailPageProps extends StorePageProps {
|
|
136
154
|
slug?: string;
|
|
@@ -154,4 +172,4 @@ interface ProductCardProps {
|
|
|
154
172
|
}
|
|
155
173
|
declare function ProductCard({ product, onClick, href }: ProductCardProps): react_jsx_runtime.JSX.Element;
|
|
156
174
|
|
|
157
|
-
export { type BrowseStoreResult as B, type GroupedStoreProducts as G, ProductCard as P, type RatingDistribution as R, type SearchSuggestion as S, TypeBadge as T, type ProductCategory as a, StarRating as b, StoreBrowsePage as c, type StoreBrowsePageProps as d, type StoreFacet as e, type StoreFacets as f, StoreHomePage as g, type StoreHomePageProps as h, type StorePageProps as i, type StoreProduct as j, StoreProductDetailPage as k, type StoreProductDetailPageProps as l, type StoreProductDetails as m, type StorePublisher as n, type StoreReview as o,
|
|
175
|
+
export { type BrowseStoreResult as B, type GroupedStoreProducts as G, ProductCard as P, type RatingDistribution as R, type SearchSuggestion as S, TypeBadge as T, type ProductCategory as a, StarRating as b, StoreBrowsePage as c, type StoreBrowsePageProps as d, type StoreFacet as e, type StoreFacets as f, StoreHomePage as g, type StoreHomePageProps as h, type StorePageProps as i, type StoreProduct as j, StoreProductDetailPage as k, type StoreProductDetailPageProps as l, type StoreProductDetails as m, type StorePublisher as n, type StoreReview as o, type StoreTerminology as p, type StoreTypeFilter as q, formatDownloads as r, formatPrice as s };
|
package/dist/store/index.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { B as BrowseStoreResult, G as GroupedStoreProducts, P as ProductCard, a as ProductCategory, R as RatingDistribution, S as SearchSuggestion, b as StarRating, c as StoreBrowsePage, d as StoreBrowsePageProps, e as StoreFacet, f as StoreFacets, g as StoreHomePage, h as StoreHomePageProps, i as StorePageProps, j as StoreProduct, k as StoreProductDetailPage, l as StoreProductDetailPageProps, m as StoreProductDetails, n as StorePublisher, o as StoreReview, T as TypeBadge,
|
|
1
|
+
export { B as BrowseStoreResult, G as GroupedStoreProducts, P as ProductCard, a as ProductCategory, R as RatingDistribution, S as SearchSuggestion, b as StarRating, c as StoreBrowsePage, d as StoreBrowsePageProps, e as StoreFacet, f as StoreFacets, g as StoreHomePage, h as StoreHomePageProps, i as StorePageProps, j as StoreProduct, k as StoreProductDetailPage, l as StoreProductDetailPageProps, m as StoreProductDetails, n as StorePublisher, o as StoreReview, p as StoreTerminology, q as StoreTypeFilter, T as TypeBadge, r as formatDownloads, s as formatPrice } from '../product-card-D2HQglaf.mjs';
|
|
2
2
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
3
3
|
|
|
4
4
|
/**
|
package/dist/store/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { B as BrowseStoreResult, G as GroupedStoreProducts, P as ProductCard, a as ProductCategory, R as RatingDistribution, S as SearchSuggestion, b as StarRating, c as StoreBrowsePage, d as StoreBrowsePageProps, e as StoreFacet, f as StoreFacets, g as StoreHomePage, h as StoreHomePageProps, i as StorePageProps, j as StoreProduct, k as StoreProductDetailPage, l as StoreProductDetailPageProps, m as StoreProductDetails, n as StorePublisher, o as StoreReview, T as TypeBadge,
|
|
1
|
+
export { B as BrowseStoreResult, G as GroupedStoreProducts, P as ProductCard, a as ProductCategory, R as RatingDistribution, S as SearchSuggestion, b as StarRating, c as StoreBrowsePage, d as StoreBrowsePageProps, e as StoreFacet, f as StoreFacets, g as StoreHomePage, h as StoreHomePageProps, i as StorePageProps, j as StoreProduct, k as StoreProductDetailPage, l as StoreProductDetailPageProps, m as StoreProductDetails, n as StorePublisher, o as StoreReview, p as StoreTerminology, q as StoreTypeFilter, T as TypeBadge, r as formatDownloads, s as formatPrice } from '../product-card-D2HQglaf.js';
|
|
2
2
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
3
3
|
|
|
4
4
|
/**
|
package/dist/store/index.js
CHANGED
|
@@ -730,7 +730,7 @@ function SectionHead({
|
|
|
730
730
|
)
|
|
731
731
|
] });
|
|
732
732
|
}
|
|
733
|
-
var
|
|
733
|
+
var DEFAULT_TYPE_FILTERS = [
|
|
734
734
|
{ type: "NODE", label: "Nodes" },
|
|
735
735
|
{ type: "WORKFLOW", label: "Workflows" },
|
|
736
736
|
{ type: "TEMPLATE", label: "Templates" },
|
|
@@ -740,9 +740,10 @@ var TYPE_FILTERS = [
|
|
|
740
740
|
];
|
|
741
741
|
function TypeFilters({
|
|
742
742
|
browsePath,
|
|
743
|
-
onNavigate
|
|
743
|
+
onNavigate,
|
|
744
|
+
typeFilters
|
|
744
745
|
}) {
|
|
745
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-2 justify-center", children:
|
|
746
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-2 justify-center", children: typeFilters.map((f) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
746
747
|
"button",
|
|
747
748
|
{
|
|
748
749
|
type: "button",
|
|
@@ -794,6 +795,7 @@ function StoreHomePage({
|
|
|
794
795
|
compatibleWith,
|
|
795
796
|
appLoginUrl,
|
|
796
797
|
onNavigate,
|
|
798
|
+
terminology,
|
|
797
799
|
productName,
|
|
798
800
|
heroTitle,
|
|
799
801
|
heroSubtitle,
|
|
@@ -848,6 +850,10 @@ function StoreHomePage({
|
|
|
848
850
|
const hasNoItems = !loading && !error && featuredItems.length === 0 && popularItems.length === 0 && freeItems.length === 0;
|
|
849
851
|
const resolvedTitle = heroTitle ?? `${productName ? `${productName} ` : ""}Store`;
|
|
850
852
|
const resolvedSubtitle = heroSubtitle ?? "Discover workflows, nodes, integrations, and templates built by the community.";
|
|
853
|
+
const typeFilters = terminology?.typeFilters ?? DEFAULT_TYPE_FILTERS;
|
|
854
|
+
const searchPlaceholder = terminology?.searchPlaceholder ?? "Search nodes, workflows, templates\u2026";
|
|
855
|
+
const emptyStateDescription = terminology?.emptyStateDescription ?? "As the community ships workflows, templates, and integrations, they will show up right here.";
|
|
856
|
+
const publisherCtaDescription = terminology?.publisherCtaDescription ?? `Share your workflows, nodes, and integrations with ${productName ? "the " : ""}community. Earn from your work or contribute for free.`;
|
|
851
857
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "w-full", children: [
|
|
852
858
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
853
859
|
PageHead,
|
|
@@ -939,7 +945,7 @@ function StoreHomePage({
|
|
|
939
945
|
{
|
|
940
946
|
name: "q",
|
|
941
947
|
type: "search",
|
|
942
|
-
placeholder:
|
|
948
|
+
placeholder: searchPlaceholder,
|
|
943
949
|
className: "flex-1 h-12 rounded-xl border border-border bg-background px-4 text-sm text-foreground placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-primary/40 shadow-sm"
|
|
944
950
|
}
|
|
945
951
|
),
|
|
@@ -954,7 +960,14 @@ function StoreHomePage({
|
|
|
954
960
|
]
|
|
955
961
|
}
|
|
956
962
|
),
|
|
957
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
963
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
964
|
+
TypeFilters,
|
|
965
|
+
{
|
|
966
|
+
browsePath,
|
|
967
|
+
onNavigate: navigate,
|
|
968
|
+
typeFilters
|
|
969
|
+
}
|
|
970
|
+
)
|
|
958
971
|
] })
|
|
959
972
|
] }),
|
|
960
973
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 pb-20 space-y-14 pt-4", children: [
|
|
@@ -1077,7 +1090,8 @@ function StoreHomePage({
|
|
|
1077
1090
|
"No items have been published for ",
|
|
1078
1091
|
productName ?? "this product",
|
|
1079
1092
|
" ",
|
|
1080
|
-
"yet.
|
|
1093
|
+
"yet. ",
|
|
1094
|
+
emptyStateDescription
|
|
1081
1095
|
] }),
|
|
1082
1096
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center justify-center gap-3", children: [
|
|
1083
1097
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -1129,12 +1143,7 @@ function StoreHomePage({
|
|
|
1129
1143
|
"Become a publisher"
|
|
1130
1144
|
] }),
|
|
1131
1145
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-2xl sm:text-3xl font-bold text-foreground mb-3", children: "Built something useful?" }),
|
|
1132
|
-
/* @__PURE__ */ jsxRuntime.
|
|
1133
|
-
"Share your workflows, nodes, and integrations with",
|
|
1134
|
-
" ",
|
|
1135
|
-
productName ?? "the",
|
|
1136
|
-
" community. Earn from your work or contribute for free."
|
|
1137
|
-
] }),
|
|
1146
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-muted-foreground mb-8 max-w-lg mx-auto leading-relaxed", children: publisherCtaDescription }),
|
|
1138
1147
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col sm:flex-row gap-3 justify-center", children: [
|
|
1139
1148
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1140
1149
|
"a",
|
|
@@ -1169,16 +1178,18 @@ var SORT_OPTIONS = [
|
|
|
1169
1178
|
{ value: "PRICE_HIGH", label: "Price: High to Low" },
|
|
1170
1179
|
{ value: "NAME_ASC", label: "Name A\u2013Z" }
|
|
1171
1180
|
];
|
|
1172
|
-
var
|
|
1173
|
-
{
|
|
1174
|
-
{
|
|
1175
|
-
{
|
|
1176
|
-
{
|
|
1177
|
-
{
|
|
1178
|
-
{
|
|
1179
|
-
{
|
|
1180
|
-
{ value: "THEME", label: "Themes" }
|
|
1181
|
+
var DEFAULT_TYPE_OPTIONS = [
|
|
1182
|
+
{ type: "APP", label: "Apps" },
|
|
1183
|
+
{ type: "NODE", label: "Nodes" },
|
|
1184
|
+
{ type: "WORKFLOW", label: "Workflows" },
|
|
1185
|
+
{ type: "TEMPLATE", label: "Templates" },
|
|
1186
|
+
{ type: "INTEGRATION", label: "Integrations" },
|
|
1187
|
+
{ type: "EXTENSION", label: "Extensions" },
|
|
1188
|
+
{ type: "THEME", label: "Themes" }
|
|
1181
1189
|
];
|
|
1190
|
+
function buildTypeOptions(typeFilters) {
|
|
1191
|
+
return [{ type: "", label: "All types" }, ...typeFilters];
|
|
1192
|
+
}
|
|
1182
1193
|
var PRICING_OPTIONS = [
|
|
1183
1194
|
{ value: "", label: "All pricing" },
|
|
1184
1195
|
{ value: "FREE", label: "Free" },
|
|
@@ -1231,11 +1242,15 @@ function FacetList({
|
|
|
1231
1242
|
function StoreBrowsePage({
|
|
1232
1243
|
compatibleWith,
|
|
1233
1244
|
onNavigate,
|
|
1245
|
+
terminology,
|
|
1234
1246
|
productName,
|
|
1235
1247
|
seoTitle,
|
|
1236
1248
|
seoDescription
|
|
1237
1249
|
}) {
|
|
1238
1250
|
const client = useWebSDK();
|
|
1251
|
+
const typeFilters = terminology?.typeFilters ?? DEFAULT_TYPE_OPTIONS;
|
|
1252
|
+
const typeOptions = buildTypeOptions(typeFilters);
|
|
1253
|
+
const browseDescription = terminology?.browseDescription ?? "Browse all apps, workflows, nodes, and templates.";
|
|
1239
1254
|
const initial = parseUrlParams();
|
|
1240
1255
|
const [search, setSearch] = react.useState(initial.q);
|
|
1241
1256
|
const [inputValue, setInputValue] = react.useState(initial.q);
|
|
@@ -1355,15 +1370,15 @@ function StoreBrowsePage({
|
|
|
1355
1370
|
const sidebarContent = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-6", children: [
|
|
1356
1371
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
1357
1372
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs font-semibold uppercase tracking-wider text-muted-foreground mb-2", children: "Type" }),
|
|
1358
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-1", children:
|
|
1373
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-1", children: typeOptions.map((opt) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1359
1374
|
"button",
|
|
1360
1375
|
{
|
|
1361
1376
|
type: "button",
|
|
1362
|
-
onClick: () => setType(opt.
|
|
1363
|
-
className: `w-full text-left text-sm px-2 py-1.5 rounded transition-colors ${type === opt.
|
|
1377
|
+
onClick: () => setType(opt.type),
|
|
1378
|
+
className: `w-full text-left text-sm px-2 py-1.5 rounded transition-colors ${type === opt.type ? "bg-primary/10 text-primary font-medium" : "text-muted-foreground hover:text-foreground hover:bg-muted/50"}`,
|
|
1364
1379
|
children: opt.label
|
|
1365
1380
|
},
|
|
1366
|
-
opt.
|
|
1381
|
+
opt.type
|
|
1367
1382
|
)) })
|
|
1368
1383
|
] }),
|
|
1369
1384
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
@@ -1433,7 +1448,7 @@ function StoreBrowsePage({
|
|
|
1433
1448
|
PageHead,
|
|
1434
1449
|
{
|
|
1435
1450
|
title: seoTitle ?? `Browse Store${productName ? ` \u2013 ${productName}` : ""}`,
|
|
1436
|
-
description: seoDescription ??
|
|
1451
|
+
description: seoDescription ?? browseDescription,
|
|
1437
1452
|
productName
|
|
1438
1453
|
}
|
|
1439
1454
|
),
|