@burdenoff/website-sdk 2026.802.1 → 2026.7203.0

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.
@@ -80,7 +80,7 @@ function TypeBadge({ type }) {
80
80
  EXTENSION: "Extension",
81
81
  THEME: "Theme"
82
82
  };
83
- return /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-block text-xs px-2 py-0.5 rounded-full bg-primary/10 text-foreground font-medium", children: labels[type] ?? type });
83
+ return /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-block text-xs px-2 py-0.5 rounded-full bg-primary/10 text-primary font-medium", children: labels[type] ?? type });
84
84
  }
85
85
  function ProductCard({ product, onClick, href }) {
86
86
  const priceLabel = formatPrice(
@@ -154,7 +154,7 @@ function ProductCard({ product, onClick, href }) {
154
154
  /* @__PURE__ */ jsxRuntime.jsx(
155
155
  "span",
156
156
  {
157
- className: `text-xs font-semibold ${priceLabel === "Free" ? "text-emerald-700" : "text-foreground"}`,
157
+ className: `text-xs font-semibold ${priceLabel === "Free" ? "text-emerald-500" : "text-foreground"}`,
158
158
  children: priceLabel
159
159
  }
160
160
  )
@@ -593,7 +593,7 @@ function FeaturedHeroCard({
593
593
  }
594
594
  )
595
595
  ] }),
596
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute top-3 left-3 text-xs font-semibold px-2.5 py-1 rounded-full border border-primary/30 bg-primary/10 text-foreground shadow-sm", children: "Featured" }),
596
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute top-3 left-3 text-xs font-semibold px-2.5 py-1 rounded-full bg-primary text-primary-foreground shadow-sm", children: "Featured" }),
597
597
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute bottom-4 left-4 w-14 h-14 rounded-xl shadow-lg overflow-hidden border-2 border-background", children: product.icon ? /* @__PURE__ */ jsxRuntime.jsx(
598
598
  "img",
599
599
  {
@@ -651,7 +651,7 @@ function FeaturedHeroCard({
651
651
  /* @__PURE__ */ jsxRuntime.jsx(
652
652
  "span",
653
653
  {
654
- className: `text-sm font-bold flex-shrink-0 ${priceLabel === "Free" ? "text-emerald-700" : "text-foreground"}`,
654
+ className: `text-sm font-bold flex-shrink-0 ${priceLabel === "Free" ? "text-emerald-500" : "text-foreground"}`,
655
655
  children: priceLabel
656
656
  }
657
657
  )
@@ -842,10 +842,8 @@ function StoreHomePage({
842
842
  const [grouped, setGrouped] = React.useState(null);
843
843
  const [loading, setLoading] = React.useState(true);
844
844
  const [error, setError] = React.useState(null);
845
- const [retryKey, setRetryKey] = React.useState(0);
846
845
  React.useEffect(() => {
847
846
  let cancelled = false;
848
- let autoRetryTimer = null;
849
847
  async function load() {
850
848
  setLoading(true);
851
849
  try {
@@ -859,15 +857,7 @@ function StoreHomePage({
859
857
  setGrouped(res.data.homeGroupedProducts);
860
858
  setError(null);
861
859
  } catch {
862
- if (!cancelled) {
863
- if (retryKey < 1) {
864
- autoRetryTimer = setTimeout(() => {
865
- if (!cancelled) setRetryKey(1);
866
- }, 2e3);
867
- } else {
868
- setError("Failed to load store. Please try again.");
869
- }
870
- }
860
+ if (!cancelled) setError("Failed to load store. Please try again.");
871
861
  } finally {
872
862
  if (!cancelled) setLoading(false);
873
863
  }
@@ -875,9 +865,8 @@ function StoreHomePage({
875
865
  load();
876
866
  return () => {
877
867
  cancelled = true;
878
- if (autoRetryTimer) clearTimeout(autoRetryTimer);
879
868
  };
880
- }, [client, compatibleWith, retryKey]);
869
+ }, [client, compatibleWith]);
881
870
  function navigate(path) {
882
871
  if (onNavigate) {
883
872
  onNavigate(path);
@@ -961,7 +950,7 @@ function StoreHomePage({
961
950
  }
962
951
  ),
963
952
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 text-center", children: [
964
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "inline-flex items-center gap-2 px-3 py-1 rounded-full border border-primary/30 bg-primary/10 text-xs font-semibold text-foreground mb-5", children: [
953
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "inline-flex items-center gap-2 px-3 py-1 rounded-full border border-primary/30 bg-primary/10 text-xs font-semibold text-primary mb-5", children: [
965
954
  /* @__PURE__ */ jsxRuntime.jsx(
966
955
  "span",
967
956
  {
@@ -1035,7 +1024,7 @@ function StoreHomePage({
1035
1024
  "button",
1036
1025
  {
1037
1026
  type: "button",
1038
- onClick: () => setRetryKey((k) => k + 1),
1027
+ onClick: () => window.location.reload(),
1039
1028
  className: "text-sm text-primary hover:underline",
1040
1029
  children: "Retry"
1041
1030
  }
@@ -1177,7 +1166,7 @@ function StoreHomePage({
1177
1166
  }
1178
1167
  ),
1179
1168
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative max-w-2xl mx-auto px-4 py-16 text-center", children: [
1180
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "inline-flex items-center gap-2 px-3 py-1 rounded-full border border-primary/30 bg-primary/10 text-xs font-semibold text-foreground mb-5", children: [
1169
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "inline-flex items-center gap-2 px-3 py-1 rounded-full border border-primary/30 bg-primary/10 text-xs font-semibold text-primary mb-5", children: [
1181
1170
  /* @__PURE__ */ jsxRuntime.jsx(
1182
1171
  "span",
1183
1172
  {
@@ -1209,21 +1198,6 @@ function StoreHomePage({
1209
1198
  children: "Browse the store"
1210
1199
  }
1211
1200
  )
1212
- ] }),
1213
- /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "mt-4 text-xs text-muted-foreground", children: [
1214
- "By submitting a listing you agree to the",
1215
- " ",
1216
- /* @__PURE__ */ jsxRuntime.jsx(
1217
- "a",
1218
- {
1219
- href: "https://burdenoff.com/developer-agreement",
1220
- target: "_blank",
1221
- rel: "noopener noreferrer",
1222
- className: "underline hover:text-foreground",
1223
- children: "Marketplace & Developer Agreement"
1224
- }
1225
- ),
1226
- "."
1227
1201
  ] })
1228
1202
  ] })
1229
1203
  ] })
@@ -1513,10 +1487,6 @@ function StoreBrowsePage({
1513
1487
  }
1514
1488
  ),
1515
1489
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8", children: [
1516
- /* @__PURE__ */ jsxRuntime.jsxs("header", { className: "mb-6", children: [
1517
- /* @__PURE__ */ jsxRuntime.jsx("h1", { className: "text-3xl font-bold tracking-tight", children: productName ? `Browse the ${productName} Store` : "Browse the Store" }),
1518
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-muted-foreground", children: browseDescription })
1519
- ] }),
1520
1490
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col sm:flex-row gap-3 mb-6", children: [
1521
1491
  /* @__PURE__ */ jsxRuntime.jsxs("form", { className: "flex-1 flex gap-2", onSubmit: handleSearchSubmit, children: [
1522
1492
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -1782,182 +1752,6 @@ React.createContext({
1782
1752
  refetch: () => {
1783
1753
  }
1784
1754
  });
1785
- var PROSE_CSS = `
1786
- .boff-prose {
1787
- max-width: none;
1788
- }
1789
-
1790
- .boff-prose h1 {
1791
- font-size: 2.25rem;
1792
- font-weight: 800;
1793
- line-height: 1.2;
1794
- margin-top: 0;
1795
- margin-bottom: 1rem;
1796
- color: hsl(var(--foreground));
1797
- }
1798
-
1799
- .boff-prose h2 {
1800
- font-size: 1.75rem;
1801
- font-weight: 700;
1802
- line-height: 1.3;
1803
- margin-top: 2rem;
1804
- margin-bottom: 1rem;
1805
- color: hsl(var(--foreground));
1806
- }
1807
-
1808
- .boff-prose h3 {
1809
- font-size: 1.5rem;
1810
- font-weight: 600;
1811
- line-height: 1.4;
1812
- margin-top: 1.5rem;
1813
- margin-bottom: 0.75rem;
1814
- color: hsl(var(--foreground));
1815
- }
1816
-
1817
- .boff-prose h4 {
1818
- font-size: 1.25rem;
1819
- font-weight: 600;
1820
- line-height: 1.5;
1821
- margin-top: 1.25rem;
1822
- margin-bottom: 0.5rem;
1823
- color: hsl(var(--foreground));
1824
- }
1825
-
1826
- .boff-prose p {
1827
- margin-bottom: 1rem;
1828
- line-height: 1.75;
1829
- color: hsl(var(--foreground));
1830
- }
1831
-
1832
- .boff-prose ul,
1833
- .boff-prose ol {
1834
- margin-bottom: 1rem;
1835
- padding-left: 1.5rem;
1836
- }
1837
-
1838
- .boff-prose ul {
1839
- list-style-type: disc;
1840
- }
1841
-
1842
- .boff-prose ol {
1843
- list-style-type: decimal;
1844
- }
1845
-
1846
- .boff-prose li {
1847
- margin-bottom: 0.25rem;
1848
- line-height: 1.75;
1849
- color: hsl(var(--foreground));
1850
- }
1851
-
1852
- .boff-prose li > ul,
1853
- .boff-prose li > ol {
1854
- margin-top: 0.25rem;
1855
- margin-bottom: 0.25rem;
1856
- }
1857
-
1858
- .boff-prose a {
1859
- color: hsl(var(--primary));
1860
- text-decoration: underline;
1861
- text-underline-offset: 2px;
1862
- }
1863
-
1864
- .boff-prose a:hover {
1865
- opacity: 0.8;
1866
- }
1867
-
1868
- .boff-prose hr {
1869
- border: none;
1870
- height: 1px;
1871
- background-color: hsl(var(--border));
1872
- margin: 2rem 0;
1873
- }
1874
-
1875
- .boff-prose blockquote {
1876
- border-left: 4px solid hsl(var(--border));
1877
- padding-left: 1rem;
1878
- margin: 1.5rem 0;
1879
- font-style: italic;
1880
- color: hsl(var(--muted-foreground));
1881
- }
1882
-
1883
- .boff-prose strong {
1884
- font-weight: 700;
1885
- color: hsl(var(--foreground));
1886
- }
1887
-
1888
- .boff-prose code {
1889
- background-color: hsl(var(--muted));
1890
- padding: 0.125rem 0.25rem;
1891
- border-radius: 0.25rem;
1892
- font-size: 0.875em;
1893
- font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
1894
- }
1895
-
1896
- .boff-prose pre {
1897
- background-color: hsl(var(--muted));
1898
- padding: 1rem;
1899
- border-radius: 0.5rem;
1900
- overflow-x: auto;
1901
- margin-bottom: 1rem;
1902
- }
1903
-
1904
- .boff-prose pre code {
1905
- background-color: transparent;
1906
- padding: 0;
1907
- }
1908
-
1909
- .boff-prose img {
1910
- max-width: 100%;
1911
- height: auto;
1912
- }
1913
-
1914
- .boff-prose table {
1915
- width: 100%;
1916
- border-collapse: collapse;
1917
- margin-bottom: 1rem;
1918
- }
1919
-
1920
- .boff-prose th,
1921
- .boff-prose td {
1922
- border: 1px solid hsl(var(--border));
1923
- padding: 0.5rem;
1924
- text-align: left;
1925
- }
1926
-
1927
- .boff-prose th {
1928
- font-weight: 600;
1929
- background-color: hsl(var(--muted));
1930
- }
1931
-
1932
- /* Smaller variant used inside cards and compact panels */
1933
- .boff-prose-sm {
1934
- font-size: 0.875rem;
1935
- }
1936
-
1937
- .boff-prose-sm h1 {
1938
- font-size: 1.75rem;
1939
- }
1940
-
1941
- .boff-prose-sm h2 {
1942
- font-size: 1.5rem;
1943
- }
1944
-
1945
- .boff-prose-sm h3 {
1946
- font-size: 1.25rem;
1947
- }
1948
-
1949
- .boff-prose-sm h4 {
1950
- font-size: 1.125rem;
1951
- }
1952
-
1953
- .boff-prose-sm p,
1954
- .boff-prose-sm li {
1955
- line-height: 1.625;
1956
- }
1957
- `;
1958
- function ProseStyles() {
1959
- return /* @__PURE__ */ jsxRuntime.jsx("style", { dangerouslySetInnerHTML: { __html: PROSE_CSS } });
1960
- }
1961
1755
  function cn(...inputs) {
1962
1756
  return tailwindMerge.twMerge(clsx.clsx(inputs));
1963
1757
  }
@@ -2228,7 +2022,6 @@ function StoreProductDetailPage({
2228
2022
  const totalRatings = ratingDistribution ? ratingDistribution.fiveStars + ratingDistribution.fourStars + ratingDistribution.threeStars + ratingDistribution.twoStars + ratingDistribution.oneStar : 0;
2229
2023
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "w-full", children: [
2230
2024
  /* @__PURE__ */ jsxRuntime.jsx("style", { dangerouslySetInnerHTML: { __html: ANIM_STYLES } }),
2231
- /* @__PURE__ */ jsxRuntime.jsx(ProseStyles, {}),
2232
2025
  /* @__PURE__ */ jsxRuntime.jsx(
2233
2026
  PageHead,
2234
2027
  {
@@ -2396,7 +2189,7 @@ function StoreProductDetailPage({
2396
2189
  ] }),
2397
2190
  product.longDescription && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "sd-fu sd-d4 mb-8", children: [
2398
2191
  /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-lg font-bold text-foreground mb-3", children: "About" }),
2399
- /* @__PURE__ */ jsxRuntime.jsx(Markdown, { className: "boff-prose boff-prose-sm max-w-none text-muted-foreground leading-relaxed", children: product.longDescription })
2192
+ /* @__PURE__ */ jsxRuntime.jsx(Markdown, { className: "prose prose-sm max-w-none text-muted-foreground leading-relaxed", children: product.longDescription })
2400
2193
  ] }),
2401
2194
  publisher && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "sd-fu sd-d5 mb-8 p-4 rounded-xl border border-border bg-card hover:border-primary/30 transition-colors duration-300", children: [
2402
2195
  /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-sm font-semibold text-foreground mb-3", children: "Publisher" }),
@@ -2484,7 +2277,7 @@ function StoreProductDetailPage({
2484
2277
  children: [
2485
2278
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between gap-2 mb-2", children: [
2486
2279
  /* @__PURE__ */ jsxRuntime.jsx(StarRating, { rating: review.rating }),
2487
- review.verifiedPurchase && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-emerald-700 font-medium", children: "Verified" })
2280
+ review.verifiedPurchase && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-emerald-500 font-medium", children: "Verified" })
2488
2281
  ] }),
2489
2282
  review.title && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-semibold text-sm text-foreground mb-1", children: review.title }),
2490
2283
  review.comment && /* @__PURE__ */ jsxRuntime.jsx(Markdown, { className: "text-sm text-muted-foreground leading-relaxed", children: review.comment }),
@@ -2518,7 +2311,7 @@ function StoreProductDetailPage({
2518
2311
  /* @__PURE__ */ jsxRuntime.jsx(
2519
2312
  "div",
2520
2313
  {
2521
- className: `text-3xl font-extrabold ${priceLabel === "Free" ? "text-emerald-700" : "text-foreground"}`,
2314
+ className: `text-3xl font-extrabold ${priceLabel === "Free" ? "text-emerald-500" : "text-foreground"}`,
2522
2315
  children: priceLabel
2523
2316
  }
2524
2317
  ),