@burdenoff/website-sdk 2026.720.10 → 2026.723.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/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +19 -12
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +19 -12
- package/dist/index.mjs.map +1 -1
- package/dist/{product-card-D2HQglaf.d.mts → product-card-DL9O3Ez9.d.mts} +3 -1
- package/dist/{product-card-D2HQglaf.d.ts → product-card-DL9O3Ez9.d.ts} +3 -1
- package/dist/store/index.d.mts +1 -1
- package/dist/store/index.d.ts +1 -1
- package/dist/store/index.js +19 -12
- package/dist/store/index.js.map +1 -1
- package/dist/store/index.mjs +19 -12
- package/dist/store/index.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -126,6 +126,8 @@ interface StorePageProps {
|
|
|
126
126
|
compatibleWith?: string;
|
|
127
127
|
/** URL for the authenticated app (install / purchase CTA) */
|
|
128
128
|
appLoginUrl: string;
|
|
129
|
+
/** When true, the per-product install CTA renders "Coming Soon" instead of "Install Free" / "Get for $X". */
|
|
130
|
+
waitlist?: boolean;
|
|
129
131
|
/** Called instead of <a href> for internal navigation — pass useNavigate() wrapper */
|
|
130
132
|
onNavigate?: (path: string) => void;
|
|
131
133
|
/** Product-specific labels/copy for the store UI. */
|
|
@@ -155,7 +157,7 @@ interface StoreProductDetailPageProps extends StorePageProps {
|
|
|
155
157
|
id?: string;
|
|
156
158
|
productName?: string;
|
|
157
159
|
}
|
|
158
|
-
declare function StoreProductDetailPage({ slug, id, appLoginUrl, onNavigate, productName, }: StoreProductDetailPageProps): react_jsx_runtime.JSX.Element;
|
|
160
|
+
declare function StoreProductDetailPage({ slug, id, appLoginUrl, onNavigate, productName, waitlist: waitlistProp, }: StoreProductDetailPageProps): react_jsx_runtime.JSX.Element;
|
|
159
161
|
|
|
160
162
|
declare function formatPrice(price: number | null | undefined, currency: string | null | undefined, pricingModel: string): string;
|
|
161
163
|
declare function formatDownloads(n: number | null | undefined): string;
|
|
@@ -126,6 +126,8 @@ interface StorePageProps {
|
|
|
126
126
|
compatibleWith?: string;
|
|
127
127
|
/** URL for the authenticated app (install / purchase CTA) */
|
|
128
128
|
appLoginUrl: string;
|
|
129
|
+
/** When true, the per-product install CTA renders "Coming Soon" instead of "Install Free" / "Get for $X". */
|
|
130
|
+
waitlist?: boolean;
|
|
129
131
|
/** Called instead of <a href> for internal navigation — pass useNavigate() wrapper */
|
|
130
132
|
onNavigate?: (path: string) => void;
|
|
131
133
|
/** Product-specific labels/copy for the store UI. */
|
|
@@ -155,7 +157,7 @@ interface StoreProductDetailPageProps extends StorePageProps {
|
|
|
155
157
|
id?: string;
|
|
156
158
|
productName?: string;
|
|
157
159
|
}
|
|
158
|
-
declare function StoreProductDetailPage({ slug, id, appLoginUrl, onNavigate, productName, }: StoreProductDetailPageProps): react_jsx_runtime.JSX.Element;
|
|
160
|
+
declare function StoreProductDetailPage({ slug, id, appLoginUrl, onNavigate, productName, waitlist: waitlistProp, }: StoreProductDetailPageProps): react_jsx_runtime.JSX.Element;
|
|
159
161
|
|
|
160
162
|
declare function formatPrice(price: number | null | undefined, currency: string | null | undefined, pricingModel: string): string;
|
|
161
163
|
declare function formatDownloads(n: number | null | undefined): string;
|
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, p as StoreTerminology, q as StoreTypeFilter, T as TypeBadge, r as formatDownloads, s as formatPrice } from '../product-card-
|
|
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-DL9O3Ez9.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, p as StoreTerminology, q as StoreTypeFilter, T as TypeBadge, r as formatDownloads, s as formatPrice } from '../product-card-
|
|
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-DL9O3Ez9.js';
|
|
2
2
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
3
3
|
|
|
4
4
|
/**
|
package/dist/store/index.js
CHANGED
|
@@ -1927,9 +1927,11 @@ function StoreProductDetailPage({
|
|
|
1927
1927
|
id,
|
|
1928
1928
|
appLoginUrl,
|
|
1929
1929
|
onNavigate,
|
|
1930
|
-
productName
|
|
1930
|
+
productName,
|
|
1931
|
+
waitlist: waitlistProp
|
|
1931
1932
|
}) {
|
|
1932
1933
|
const client = useWebSDK();
|
|
1934
|
+
const waitlist = waitlistProp ?? false;
|
|
1933
1935
|
const [details, setDetails] = React.useState(null);
|
|
1934
1936
|
const [loading, setLoading] = React.useState(true);
|
|
1935
1937
|
const [error, setError] = React.useState(null);
|
|
@@ -2013,6 +2015,9 @@ function StoreProductDetailPage({
|
|
|
2013
2015
|
product.currency,
|
|
2014
2016
|
product.pricingModel
|
|
2015
2017
|
);
|
|
2018
|
+
const ctaLabel = waitlist ? "Coming Soon" : priceLabel === "Free" ? "Install Free" : `Get for ${priceLabel}`;
|
|
2019
|
+
const ctaHref = waitlist ? "#" : appLoginUrl;
|
|
2020
|
+
const ctaAriaDisabled = waitlist || void 0;
|
|
2016
2021
|
const screenshots = product.screenshots ?? [];
|
|
2017
2022
|
const totalRatings = ratingDistribution ? ratingDistribution.fiveStars + ratingDistribution.fourStars + ratingDistribution.threeStars + ratingDistribution.twoStars + ratingDistribution.oneStar : 0;
|
|
2018
2023
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "w-full", children: [
|
|
@@ -2137,11 +2142,12 @@ function StoreProductDetailPage({
|
|
|
2137
2142
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2138
2143
|
"a",
|
|
2139
2144
|
{
|
|
2140
|
-
href:
|
|
2141
|
-
target: "_blank",
|
|
2142
|
-
rel: "noopener noreferrer",
|
|
2143
|
-
|
|
2144
|
-
|
|
2145
|
+
href: ctaHref,
|
|
2146
|
+
target: waitlist ? void 0 : "_blank",
|
|
2147
|
+
rel: waitlist ? void 0 : "noopener noreferrer",
|
|
2148
|
+
"aria-disabled": ctaAriaDisabled,
|
|
2149
|
+
className: "flex-1 h-11 rounded-lg bg-primary text-primary-foreground text-sm font-semibold flex items-center justify-center hover:opacity-90 transition-opacity aria-disabled:opacity-60 aria-disabled:cursor-not-allowed",
|
|
2150
|
+
children: ctaLabel
|
|
2145
2151
|
}
|
|
2146
2152
|
)
|
|
2147
2153
|
] }),
|
|
@@ -2314,14 +2320,15 @@ function StoreProductDetailPage({
|
|
|
2314
2320
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2315
2321
|
"a",
|
|
2316
2322
|
{
|
|
2317
|
-
href:
|
|
2318
|
-
target: "_blank",
|
|
2319
|
-
rel: "noopener noreferrer",
|
|
2320
|
-
|
|
2321
|
-
|
|
2323
|
+
href: ctaHref,
|
|
2324
|
+
target: waitlist ? void 0 : "_blank",
|
|
2325
|
+
rel: waitlist ? void 0 : "noopener noreferrer",
|
|
2326
|
+
"aria-disabled": ctaAriaDisabled,
|
|
2327
|
+
className: "flex items-center justify-center w-full h-11 rounded-lg bg-primary text-primary-foreground text-sm font-semibold hover:opacity-90 active:scale-[0.98] transition-all duration-150 aria-disabled:opacity-60 aria-disabled:cursor-not-allowed",
|
|
2328
|
+
children: ctaLabel
|
|
2322
2329
|
}
|
|
2323
2330
|
),
|
|
2324
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-muted-foreground text-center", children: "Login required to install" }),
|
|
2331
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-muted-foreground text-center", children: waitlist ? `Available when ${product?.name ?? "this product"} launches` : "Login required to install" }),
|
|
2325
2332
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "border-t border-border pt-4 space-y-2 text-xs text-muted-foreground", children: [
|
|
2326
2333
|
product.type && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between", children: [
|
|
2327
2334
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Type" }),
|