@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.
- package/dist/components/pricing.d.mts +1 -91
- package/dist/components/pricing.d.ts +1 -91
- package/dist/components/pricing.js +19 -72
- package/dist/components/pricing.js.map +1 -1
- package/dist/components/pricing.mjs +20 -70
- package/dist/components/pricing.mjs.map +1 -1
- package/dist/content/index.js +7 -190
- package/dist/content/index.js.map +1 -1
- package/dist/content/index.mjs +7 -190
- package/dist/content/index.mjs.map +1 -1
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +38 -302
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +38 -302
- package/dist/index.mjs.map +1 -1
- package/dist/store/index.js +12 -219
- package/dist/store/index.js.map +1 -1
- package/dist/store/index.mjs +12 -219
- package/dist/store/index.mjs.map +1 -1
- package/package.json +3 -5
package/dist/index.d.mts
CHANGED
|
@@ -55,8 +55,8 @@ interface CareersApplyFormProps {
|
|
|
55
55
|
declare function CareersApplyForm({ productName, recaptchaSiteKey, positions, heroTitle, heroDescription, headingLevel, maxResumeBytes, className, seo, }: CareersApplyFormProps): react_jsx_runtime.JSX.Element;
|
|
56
56
|
|
|
57
57
|
declare const buttonVariants: (props?: ({
|
|
58
|
-
variant?: "
|
|
59
|
-
size?: "
|
|
58
|
+
variant?: "default" | "link" | "destructive" | "outline" | "secondary" | "ghost" | null | undefined;
|
|
59
|
+
size?: "default" | "sm" | "lg" | "icon" | null | undefined;
|
|
60
60
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
61
61
|
interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
|
|
62
62
|
asChild?: boolean;
|
package/dist/index.d.ts
CHANGED
|
@@ -55,8 +55,8 @@ interface CareersApplyFormProps {
|
|
|
55
55
|
declare function CareersApplyForm({ productName, recaptchaSiteKey, positions, heroTitle, heroDescription, headingLevel, maxResumeBytes, className, seo, }: CareersApplyFormProps): react_jsx_runtime.JSX.Element;
|
|
56
56
|
|
|
57
57
|
declare const buttonVariants: (props?: ({
|
|
58
|
-
variant?: "
|
|
59
|
-
size?: "
|
|
58
|
+
variant?: "default" | "link" | "destructive" | "outline" | "secondary" | "ghost" | null | undefined;
|
|
59
|
+
size?: "default" | "sm" | "lg" | "icon" | null | undefined;
|
|
60
60
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
61
61
|
interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
|
|
62
62
|
asChild?: boolean;
|
package/dist/index.js
CHANGED
|
@@ -2514,7 +2514,6 @@ var GET_PLANS_QUERY = `
|
|
|
2514
2514
|
features {
|
|
2515
2515
|
id
|
|
2516
2516
|
quotaId
|
|
2517
|
-
context
|
|
2518
2517
|
quota {
|
|
2519
2518
|
id
|
|
2520
2519
|
name
|
|
@@ -2554,35 +2553,6 @@ function isEnterprisePlan(planName) {
|
|
|
2554
2553
|
const name = planName.toLowerCase();
|
|
2555
2554
|
return name.includes("team") || name.includes("business") || name.includes("enterprise");
|
|
2556
2555
|
}
|
|
2557
|
-
function isEnterpriseAudiencePlan(plan) {
|
|
2558
|
-
if (!isEnterprisePlan(plan.name)) {
|
|
2559
|
-
return false;
|
|
2560
|
-
}
|
|
2561
|
-
if (typeof plan.priceRaw === "number") {
|
|
2562
|
-
return plan.priceRaw === 0;
|
|
2563
|
-
}
|
|
2564
|
-
return true;
|
|
2565
|
-
}
|
|
2566
|
-
function splitPlansByAudience(plans, showAudienceTabs) {
|
|
2567
|
-
if (!showAudienceTabs) {
|
|
2568
|
-
return { individualPlans: plans, enterprisePlans: [] };
|
|
2569
|
-
}
|
|
2570
|
-
return {
|
|
2571
|
-
individualPlans: plans.filter((p) => !isEnterpriseAudiencePlan(p)),
|
|
2572
|
-
enterprisePlans: plans.filter((p) => isEnterpriseAudiencePlan(p))
|
|
2573
|
-
};
|
|
2574
|
-
}
|
|
2575
|
-
function resolveEnterprisePlans(apiEnterprisePlans, staticEnterprisePlans, defaultEnterpriseCard) {
|
|
2576
|
-
const staticPlans = staticEnterprisePlans || [];
|
|
2577
|
-
if (apiEnterprisePlans.length === 0 && staticPlans.length === 0) {
|
|
2578
|
-
return [defaultEnterpriseCard];
|
|
2579
|
-
}
|
|
2580
|
-
const apiNames = new Set(apiEnterprisePlans.map((p) => p.name.toLowerCase()));
|
|
2581
|
-
const dedupedStaticPlans = staticPlans.filter(
|
|
2582
|
-
(p) => !apiNames.has(p.name.toLowerCase())
|
|
2583
|
-
);
|
|
2584
|
-
return [...apiEnterprisePlans, ...dedupedStaticPlans];
|
|
2585
|
-
}
|
|
2586
2556
|
function detectPlanTier(planName) {
|
|
2587
2557
|
const name = planName.toLowerCase();
|
|
2588
2558
|
if (name.includes("free") || name.includes("basic") || name.includes("starter") || name.includes("hobby")) {
|
|
@@ -2597,7 +2567,7 @@ function detectPlanTier(planName) {
|
|
|
2597
2567
|
function getFallbackFeaturesForTier(tier, fallbackFeatures) {
|
|
2598
2568
|
return [...fallbackFeatures?.[tier] || []];
|
|
2599
2569
|
}
|
|
2600
|
-
function getMetadataForPlan(planName,
|
|
2570
|
+
function getMetadataForPlan(planName, planMetadata) {
|
|
2601
2571
|
const normalizedName = planName.toLowerCase();
|
|
2602
2572
|
if (planMetadata?.[normalizedName]) {
|
|
2603
2573
|
const meta = planMetadata[normalizedName];
|
|
@@ -2613,17 +2583,6 @@ function getMetadataForPlan(planName, priceRaw, planMetadata) {
|
|
|
2613
2583
|
}
|
|
2614
2584
|
const tier = detectPlanTier(planName);
|
|
2615
2585
|
if (tier) {
|
|
2616
|
-
const isPaidEnterpriseName = tier === "enterprise" && typeof priceRaw === "number" && priceRaw > 0;
|
|
2617
|
-
if (isPaidEnterpriseName) {
|
|
2618
|
-
return {
|
|
2619
|
-
tier: "professional",
|
|
2620
|
-
displayName: planName,
|
|
2621
|
-
defaultDescription: "Choose this plan",
|
|
2622
|
-
popular: false,
|
|
2623
|
-
ctaText: "Get Started",
|
|
2624
|
-
ctaType: "signup"
|
|
2625
|
-
};
|
|
2626
|
-
}
|
|
2627
2586
|
return {
|
|
2628
2587
|
tier,
|
|
2629
2588
|
displayName: planName,
|
|
@@ -2647,27 +2606,27 @@ function humanizeQuotaName(name) {
|
|
|
2647
2606
|
const resource = parts.length >= 3 ? parts[parts.length - 2] : parts[parts.length - 1];
|
|
2648
2607
|
return resource.replace(/[-_]/g, " ").replace(/\b\w/g, (c) => c.toUpperCase());
|
|
2649
2608
|
}
|
|
2650
|
-
function
|
|
2651
|
-
const quota = feature.quota;
|
|
2652
|
-
if (!quota) return "";
|
|
2609
|
+
function transformQuotaToFeature(quota) {
|
|
2653
2610
|
const { name, limits } = quota;
|
|
2654
|
-
|
|
2655
|
-
|
|
2656
|
-
|
|
2657
|
-
const
|
|
2658
|
-
const
|
|
2659
|
-
const
|
|
2660
|
-
|
|
2611
|
+
if (!limits || typeof limits !== "object") {
|
|
2612
|
+
return humanizeQuotaName(name);
|
|
2613
|
+
}
|
|
2614
|
+
const limitsObj = limits;
|
|
2615
|
+
const value = limitsObj.value;
|
|
2616
|
+
const unit = limitsObj.unit;
|
|
2617
|
+
const type = limitsObj.type;
|
|
2618
|
+
const description = limitsObj.description;
|
|
2619
|
+
if (typeof description === "string" && description) {
|
|
2661
2620
|
if (type === "number" && typeof value === "number") {
|
|
2662
2621
|
return `${value.toLocaleString()} ${description}`;
|
|
2663
2622
|
}
|
|
2664
2623
|
return description;
|
|
2665
2624
|
}
|
|
2666
|
-
if (unit) {
|
|
2625
|
+
if (typeof unit === "string" && unit) {
|
|
2667
2626
|
if (typeof value === "number") {
|
|
2668
2627
|
return `${value.toLocaleString()} ${unit}`;
|
|
2669
2628
|
}
|
|
2670
|
-
return unit
|
|
2629
|
+
return `${unit}`;
|
|
2671
2630
|
}
|
|
2672
2631
|
const label = humanizeQuotaName(name);
|
|
2673
2632
|
if (type === "boolean") {
|
|
@@ -2686,18 +2645,14 @@ function extractDisplayFeatures(features, planName, fallbackFeatures) {
|
|
|
2686
2645
|
return tierFeatures;
|
|
2687
2646
|
}
|
|
2688
2647
|
}
|
|
2689
|
-
const quotaFeatures = features.filter((f) => f.quota).map((f) =>
|
|
2648
|
+
const quotaFeatures = features.filter((f) => f.quota).map((f) => transformQuotaToFeature(f.quota));
|
|
2690
2649
|
if (quotaFeatures.length > 0) {
|
|
2691
2650
|
return quotaFeatures;
|
|
2692
2651
|
}
|
|
2693
2652
|
return [];
|
|
2694
2653
|
}
|
|
2695
2654
|
function transformToDisplayCard(plan, props) {
|
|
2696
|
-
const metadata = getMetadataForPlan(
|
|
2697
|
-
plan.name,
|
|
2698
|
-
plan.price,
|
|
2699
|
-
props.planMetadata
|
|
2700
|
-
);
|
|
2655
|
+
const metadata = getMetadataForPlan(plan.name, props.planMetadata);
|
|
2701
2656
|
const formattedPrice = formatPrice(
|
|
2702
2657
|
plan.price,
|
|
2703
2658
|
plan.currency,
|
|
@@ -2778,10 +2733,8 @@ function PricingSection(props) {
|
|
|
2778
2733
|
cancelled = true;
|
|
2779
2734
|
};
|
|
2780
2735
|
}, [client, resolvedProductId]);
|
|
2781
|
-
const
|
|
2782
|
-
|
|
2783
|
-
enterprisePlans: enterpriseApiPlans
|
|
2784
|
-
} = splitPlansByAudience(allPlans, props.showAudienceTabs);
|
|
2736
|
+
const individualAllPlans = allPlans.filter((p) => !isEnterprisePlan(p.name));
|
|
2737
|
+
const enterpriseApiPlans = allPlans.filter((p) => isEnterprisePlan(p.name));
|
|
2785
2738
|
const individualPlans = individualAllPlans.filter(
|
|
2786
2739
|
(plan) => billingCycle === "monthly" ? plan.duration === "monthly" : plan.duration === "yearly"
|
|
2787
2740
|
);
|
|
@@ -2797,6 +2750,7 @@ function PricingSection(props) {
|
|
|
2797
2750
|
}
|
|
2798
2751
|
return p;
|
|
2799
2752
|
});
|
|
2753
|
+
const hasApiEnterprisePlans = enterpriseCards.length > 0;
|
|
2800
2754
|
const defaultEnterpriseCard = {
|
|
2801
2755
|
name: "Enterprise",
|
|
2802
2756
|
subtitle: "For organizations that need more",
|
|
@@ -2817,11 +2771,7 @@ function PricingSection(props) {
|
|
|
2817
2771
|
"Self-hosted option"
|
|
2818
2772
|
]
|
|
2819
2773
|
};
|
|
2820
|
-
const resolvedEnterprisePlans =
|
|
2821
|
-
enterpriseCards,
|
|
2822
|
-
props.enterprisePlans,
|
|
2823
|
-
defaultEnterpriseCard
|
|
2824
|
-
);
|
|
2774
|
+
const resolvedEnterprisePlans = hasApiEnterprisePlans ? enterpriseCards : props.enterprisePlans ? props.enterprisePlans : [defaultEnterpriseCard];
|
|
2825
2775
|
const plans = props.showAudienceTabs && audience === "enterprise" ? [] : individualPlans;
|
|
2826
2776
|
if (loading) {
|
|
2827
2777
|
return /* @__PURE__ */ jsxRuntime.jsx("section", { id, className: `py-12 sm:py-16 md:py-20 ${className}`, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "container mx-auto px-4 sm:px-6", children: [
|
|
@@ -4402,182 +4352,6 @@ function RybbitAnalytics({
|
|
|
4402
4352
|
}, [siteId, scriptUrl, enabled]);
|
|
4403
4353
|
return null;
|
|
4404
4354
|
}
|
|
4405
|
-
var PROSE_CSS = `
|
|
4406
|
-
.boff-prose {
|
|
4407
|
-
max-width: none;
|
|
4408
|
-
}
|
|
4409
|
-
|
|
4410
|
-
.boff-prose h1 {
|
|
4411
|
-
font-size: 2.25rem;
|
|
4412
|
-
font-weight: 800;
|
|
4413
|
-
line-height: 1.2;
|
|
4414
|
-
margin-top: 0;
|
|
4415
|
-
margin-bottom: 1rem;
|
|
4416
|
-
color: hsl(var(--foreground));
|
|
4417
|
-
}
|
|
4418
|
-
|
|
4419
|
-
.boff-prose h2 {
|
|
4420
|
-
font-size: 1.75rem;
|
|
4421
|
-
font-weight: 700;
|
|
4422
|
-
line-height: 1.3;
|
|
4423
|
-
margin-top: 2rem;
|
|
4424
|
-
margin-bottom: 1rem;
|
|
4425
|
-
color: hsl(var(--foreground));
|
|
4426
|
-
}
|
|
4427
|
-
|
|
4428
|
-
.boff-prose h3 {
|
|
4429
|
-
font-size: 1.5rem;
|
|
4430
|
-
font-weight: 600;
|
|
4431
|
-
line-height: 1.4;
|
|
4432
|
-
margin-top: 1.5rem;
|
|
4433
|
-
margin-bottom: 0.75rem;
|
|
4434
|
-
color: hsl(var(--foreground));
|
|
4435
|
-
}
|
|
4436
|
-
|
|
4437
|
-
.boff-prose h4 {
|
|
4438
|
-
font-size: 1.25rem;
|
|
4439
|
-
font-weight: 600;
|
|
4440
|
-
line-height: 1.5;
|
|
4441
|
-
margin-top: 1.25rem;
|
|
4442
|
-
margin-bottom: 0.5rem;
|
|
4443
|
-
color: hsl(var(--foreground));
|
|
4444
|
-
}
|
|
4445
|
-
|
|
4446
|
-
.boff-prose p {
|
|
4447
|
-
margin-bottom: 1rem;
|
|
4448
|
-
line-height: 1.75;
|
|
4449
|
-
color: hsl(var(--foreground));
|
|
4450
|
-
}
|
|
4451
|
-
|
|
4452
|
-
.boff-prose ul,
|
|
4453
|
-
.boff-prose ol {
|
|
4454
|
-
margin-bottom: 1rem;
|
|
4455
|
-
padding-left: 1.5rem;
|
|
4456
|
-
}
|
|
4457
|
-
|
|
4458
|
-
.boff-prose ul {
|
|
4459
|
-
list-style-type: disc;
|
|
4460
|
-
}
|
|
4461
|
-
|
|
4462
|
-
.boff-prose ol {
|
|
4463
|
-
list-style-type: decimal;
|
|
4464
|
-
}
|
|
4465
|
-
|
|
4466
|
-
.boff-prose li {
|
|
4467
|
-
margin-bottom: 0.25rem;
|
|
4468
|
-
line-height: 1.75;
|
|
4469
|
-
color: hsl(var(--foreground));
|
|
4470
|
-
}
|
|
4471
|
-
|
|
4472
|
-
.boff-prose li > ul,
|
|
4473
|
-
.boff-prose li > ol {
|
|
4474
|
-
margin-top: 0.25rem;
|
|
4475
|
-
margin-bottom: 0.25rem;
|
|
4476
|
-
}
|
|
4477
|
-
|
|
4478
|
-
.boff-prose a {
|
|
4479
|
-
color: hsl(var(--primary));
|
|
4480
|
-
text-decoration: underline;
|
|
4481
|
-
text-underline-offset: 2px;
|
|
4482
|
-
}
|
|
4483
|
-
|
|
4484
|
-
.boff-prose a:hover {
|
|
4485
|
-
opacity: 0.8;
|
|
4486
|
-
}
|
|
4487
|
-
|
|
4488
|
-
.boff-prose hr {
|
|
4489
|
-
border: none;
|
|
4490
|
-
height: 1px;
|
|
4491
|
-
background-color: hsl(var(--border));
|
|
4492
|
-
margin: 2rem 0;
|
|
4493
|
-
}
|
|
4494
|
-
|
|
4495
|
-
.boff-prose blockquote {
|
|
4496
|
-
border-left: 4px solid hsl(var(--border));
|
|
4497
|
-
padding-left: 1rem;
|
|
4498
|
-
margin: 1.5rem 0;
|
|
4499
|
-
font-style: italic;
|
|
4500
|
-
color: hsl(var(--muted-foreground));
|
|
4501
|
-
}
|
|
4502
|
-
|
|
4503
|
-
.boff-prose strong {
|
|
4504
|
-
font-weight: 700;
|
|
4505
|
-
color: hsl(var(--foreground));
|
|
4506
|
-
}
|
|
4507
|
-
|
|
4508
|
-
.boff-prose code {
|
|
4509
|
-
background-color: hsl(var(--muted));
|
|
4510
|
-
padding: 0.125rem 0.25rem;
|
|
4511
|
-
border-radius: 0.25rem;
|
|
4512
|
-
font-size: 0.875em;
|
|
4513
|
-
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
|
4514
|
-
}
|
|
4515
|
-
|
|
4516
|
-
.boff-prose pre {
|
|
4517
|
-
background-color: hsl(var(--muted));
|
|
4518
|
-
padding: 1rem;
|
|
4519
|
-
border-radius: 0.5rem;
|
|
4520
|
-
overflow-x: auto;
|
|
4521
|
-
margin-bottom: 1rem;
|
|
4522
|
-
}
|
|
4523
|
-
|
|
4524
|
-
.boff-prose pre code {
|
|
4525
|
-
background-color: transparent;
|
|
4526
|
-
padding: 0;
|
|
4527
|
-
}
|
|
4528
|
-
|
|
4529
|
-
.boff-prose img {
|
|
4530
|
-
max-width: 100%;
|
|
4531
|
-
height: auto;
|
|
4532
|
-
}
|
|
4533
|
-
|
|
4534
|
-
.boff-prose table {
|
|
4535
|
-
width: 100%;
|
|
4536
|
-
border-collapse: collapse;
|
|
4537
|
-
margin-bottom: 1rem;
|
|
4538
|
-
}
|
|
4539
|
-
|
|
4540
|
-
.boff-prose th,
|
|
4541
|
-
.boff-prose td {
|
|
4542
|
-
border: 1px solid hsl(var(--border));
|
|
4543
|
-
padding: 0.5rem;
|
|
4544
|
-
text-align: left;
|
|
4545
|
-
}
|
|
4546
|
-
|
|
4547
|
-
.boff-prose th {
|
|
4548
|
-
font-weight: 600;
|
|
4549
|
-
background-color: hsl(var(--muted));
|
|
4550
|
-
}
|
|
4551
|
-
|
|
4552
|
-
/* Smaller variant used inside cards and compact panels */
|
|
4553
|
-
.boff-prose-sm {
|
|
4554
|
-
font-size: 0.875rem;
|
|
4555
|
-
}
|
|
4556
|
-
|
|
4557
|
-
.boff-prose-sm h1 {
|
|
4558
|
-
font-size: 1.75rem;
|
|
4559
|
-
}
|
|
4560
|
-
|
|
4561
|
-
.boff-prose-sm h2 {
|
|
4562
|
-
font-size: 1.5rem;
|
|
4563
|
-
}
|
|
4564
|
-
|
|
4565
|
-
.boff-prose-sm h3 {
|
|
4566
|
-
font-size: 1.25rem;
|
|
4567
|
-
}
|
|
4568
|
-
|
|
4569
|
-
.boff-prose-sm h4 {
|
|
4570
|
-
font-size: 1.125rem;
|
|
4571
|
-
}
|
|
4572
|
-
|
|
4573
|
-
.boff-prose-sm p,
|
|
4574
|
-
.boff-prose-sm li {
|
|
4575
|
-
line-height: 1.625;
|
|
4576
|
-
}
|
|
4577
|
-
`;
|
|
4578
|
-
function ProseStyles() {
|
|
4579
|
-
return /* @__PURE__ */ jsxRuntime.jsx("style", { dangerouslySetInnerHTML: { __html: PROSE_CSS } });
|
|
4580
|
-
}
|
|
4581
4355
|
var BLOG_POSTS_QUERY = `
|
|
4582
4356
|
query BlogPosts($productId: String!, $limit: Int, $offset: Int) {
|
|
4583
4357
|
publicContentPages(productId: $productId, limit: $limit, offset: $offset) {
|
|
@@ -4747,8 +4521,7 @@ function BlogListPage(props) {
|
|
|
4747
4521
|
title: seoTitle,
|
|
4748
4522
|
description: seoDescription || heroSubtitle,
|
|
4749
4523
|
productName,
|
|
4750
|
-
keywords: seoKeywords
|
|
4751
|
-
url: typeof window !== "undefined" ? window.location.origin + window.location.pathname : void 0
|
|
4524
|
+
keywords: seoKeywords
|
|
4752
4525
|
}
|
|
4753
4526
|
),
|
|
4754
4527
|
/* @__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: [
|
|
@@ -4880,16 +4653,13 @@ function BlogPostPage(props) {
|
|
|
4880
4653
|
day: "numeric"
|
|
4881
4654
|
}) : "";
|
|
4882
4655
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `w-full ${className}`, children: [
|
|
4883
|
-
/* @__PURE__ */ jsxRuntime.jsx(ProseStyles, {}),
|
|
4884
4656
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4885
4657
|
PageHead,
|
|
4886
4658
|
{
|
|
4887
4659
|
title: post.seoTitle || post.title,
|
|
4888
4660
|
description: post.seoDescription || post.excerpt || "",
|
|
4889
4661
|
productName,
|
|
4890
|
-
keywords: post.seoKeywords || ""
|
|
4891
|
-
image: post.thumbnail || void 0,
|
|
4892
|
-
url: typeof window !== "undefined" ? window.location.origin + window.location.pathname : void 0
|
|
4662
|
+
keywords: post.seoKeywords || ""
|
|
4893
4663
|
}
|
|
4894
4664
|
),
|
|
4895
4665
|
/* @__PURE__ */ jsxRuntime.jsxs("article", { className: "max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 py-16 sm:py-20", children: [
|
|
@@ -4926,7 +4696,7 @@ function BlogPostPage(props) {
|
|
|
4926
4696
|
className: "w-full h-full object-cover"
|
|
4927
4697
|
}
|
|
4928
4698
|
) }),
|
|
4929
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "
|
|
4699
|
+
/* @__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 }) })
|
|
4930
4700
|
] })
|
|
4931
4701
|
] });
|
|
4932
4702
|
}
|
|
@@ -5387,7 +5157,6 @@ function CaseStudiesListPage(props) {
|
|
|
5387
5157
|
const resolvedEmptyTitle = emptyTitle ?? "Case studies are on the way";
|
|
5388
5158
|
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.`;
|
|
5389
5159
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `w-full ${className}`, "data-cs": "case-studies-v2", children: [
|
|
5390
|
-
/* @__PURE__ */ jsxRuntime.jsx(ProseStyles, {}),
|
|
5391
5160
|
/* @__PURE__ */ jsxRuntime.jsx(AnimationStyles, {}),
|
|
5392
5161
|
seoTitle && /* @__PURE__ */ jsxRuntime.jsx(
|
|
5393
5162
|
PageHead,
|
|
@@ -5609,7 +5378,6 @@ function CaseStudyPage(props) {
|
|
|
5609
5378
|
}
|
|
5610
5379
|
const formattedDate = formatDate(post.publishedAt || post.lastUpdated);
|
|
5611
5380
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `w-full ${className}`, children: [
|
|
5612
|
-
/* @__PURE__ */ jsxRuntime.jsx(ProseStyles, {}),
|
|
5613
5381
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5614
5382
|
PageHead,
|
|
5615
5383
|
{
|
|
@@ -5653,7 +5421,7 @@ function CaseStudyPage(props) {
|
|
|
5653
5421
|
className: "h-full w-full object-cover"
|
|
5654
5422
|
}
|
|
5655
5423
|
) }),
|
|
5656
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "
|
|
5424
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "prose prose-gray max-w-none dark:prose-invert", children: /* @__PURE__ */ jsxRuntime.jsx(ContentRenderer, { content: post.content, format: post.contentFormat }) }),
|
|
5657
5425
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-14 rounded-2xl border bg-gradient-to-br from-primary/10 via-card to-card p-8 text-center", children: [
|
|
5658
5426
|
/* @__PURE__ */ jsxRuntime.jsxs("h2", { className: "text-xl font-bold text-foreground", children: [
|
|
5659
5427
|
"Curious what ",
|
|
@@ -5834,7 +5602,7 @@ function CmsTimeline(props) {
|
|
|
5834
5602
|
] })
|
|
5835
5603
|
] }),
|
|
5836
5604
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-xl sm:text-2xl font-bold text-foreground mb-4", children: entry.title }),
|
|
5837
|
-
entry.content ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "
|
|
5605
|
+
entry.content ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "prose prose-sm prose-gray dark:prose-invert max-w-none", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
5838
5606
|
ContentRenderer,
|
|
5839
5607
|
{
|
|
5840
5608
|
content: entry.content,
|
|
@@ -5849,9 +5617,9 @@ function CmsTimeline(props) {
|
|
|
5849
5617
|
}
|
|
5850
5618
|
function EntryContent({ content }) {
|
|
5851
5619
|
if (typeof content === "string") {
|
|
5852
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "
|
|
5620
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "prose prose-sm prose-gray dark:prose-invert max-w-none", children: /* @__PURE__ */ jsxRuntime.jsx(ContentRenderer, { content, format: "markdown" }) });
|
|
5853
5621
|
}
|
|
5854
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "
|
|
5622
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "prose prose-sm max-w-none", children: content });
|
|
5855
5623
|
}
|
|
5856
5624
|
function EntriesTimeline(props) {
|
|
5857
5625
|
const { entries, pageSize, productName } = props;
|
|
@@ -6064,7 +5832,6 @@ function ChangelogPage(props) {
|
|
|
6064
5832
|
const showCta = Boolean(ctaHref && ctaLabel);
|
|
6065
5833
|
const isPropDriven = entries != null;
|
|
6066
5834
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `w-full ${className}`, children: [
|
|
6067
|
-
/* @__PURE__ */ jsxRuntime.jsx(ProseStyles, {}),
|
|
6068
5835
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6069
5836
|
PageHead,
|
|
6070
5837
|
{
|
|
@@ -6949,7 +6716,7 @@ function TypeBadge({ type }) {
|
|
|
6949
6716
|
EXTENSION: "Extension",
|
|
6950
6717
|
THEME: "Theme"
|
|
6951
6718
|
};
|
|
6952
|
-
return /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-block text-xs px-2 py-0.5 rounded-full bg-primary/10 text-
|
|
6719
|
+
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 });
|
|
6953
6720
|
}
|
|
6954
6721
|
function ProductCard({ product, onClick, href }) {
|
|
6955
6722
|
const priceLabel = formatPrice2(
|
|
@@ -7023,7 +6790,7 @@ function ProductCard({ product, onClick, href }) {
|
|
|
7023
6790
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7024
6791
|
"span",
|
|
7025
6792
|
{
|
|
7026
|
-
className: `text-xs font-semibold ${priceLabel === "Free" ? "text-emerald-
|
|
6793
|
+
className: `text-xs font-semibold ${priceLabel === "Free" ? "text-emerald-500" : "text-foreground"}`,
|
|
7027
6794
|
children: priceLabel
|
|
7028
6795
|
}
|
|
7029
6796
|
)
|
|
@@ -7217,7 +6984,7 @@ function FeaturedHeroCard({
|
|
|
7217
6984
|
}
|
|
7218
6985
|
)
|
|
7219
6986
|
] }),
|
|
7220
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute top-3 left-3 text-xs font-semibold px-2.5 py-1 rounded-full
|
|
6987
|
+
/* @__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" }),
|
|
7221
6988
|
/* @__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(
|
|
7222
6989
|
"img",
|
|
7223
6990
|
{
|
|
@@ -7275,7 +7042,7 @@ function FeaturedHeroCard({
|
|
|
7275
7042
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7276
7043
|
"span",
|
|
7277
7044
|
{
|
|
7278
|
-
className: `text-sm font-bold flex-shrink-0 ${priceLabel === "Free" ? "text-emerald-
|
|
7045
|
+
className: `text-sm font-bold flex-shrink-0 ${priceLabel === "Free" ? "text-emerald-500" : "text-foreground"}`,
|
|
7279
7046
|
children: priceLabel
|
|
7280
7047
|
}
|
|
7281
7048
|
)
|
|
@@ -7466,10 +7233,8 @@ function StoreHomePage({
|
|
|
7466
7233
|
const [grouped, setGrouped] = React.useState(null);
|
|
7467
7234
|
const [loading, setLoading] = React.useState(true);
|
|
7468
7235
|
const [error, setError] = React.useState(null);
|
|
7469
|
-
const [retryKey, setRetryKey] = React.useState(0);
|
|
7470
7236
|
React.useEffect(() => {
|
|
7471
7237
|
let cancelled = false;
|
|
7472
|
-
let autoRetryTimer = null;
|
|
7473
7238
|
async function load() {
|
|
7474
7239
|
setLoading(true);
|
|
7475
7240
|
try {
|
|
@@ -7483,15 +7248,7 @@ function StoreHomePage({
|
|
|
7483
7248
|
setGrouped(res.data.homeGroupedProducts);
|
|
7484
7249
|
setError(null);
|
|
7485
7250
|
} catch {
|
|
7486
|
-
if (!cancelled)
|
|
7487
|
-
if (retryKey < 1) {
|
|
7488
|
-
autoRetryTimer = setTimeout(() => {
|
|
7489
|
-
if (!cancelled) setRetryKey(1);
|
|
7490
|
-
}, 2e3);
|
|
7491
|
-
} else {
|
|
7492
|
-
setError("Failed to load store. Please try again.");
|
|
7493
|
-
}
|
|
7494
|
-
}
|
|
7251
|
+
if (!cancelled) setError("Failed to load store. Please try again.");
|
|
7495
7252
|
} finally {
|
|
7496
7253
|
if (!cancelled) setLoading(false);
|
|
7497
7254
|
}
|
|
@@ -7499,9 +7256,8 @@ function StoreHomePage({
|
|
|
7499
7256
|
load();
|
|
7500
7257
|
return () => {
|
|
7501
7258
|
cancelled = true;
|
|
7502
|
-
if (autoRetryTimer) clearTimeout(autoRetryTimer);
|
|
7503
7259
|
};
|
|
7504
|
-
}, [client, compatibleWith
|
|
7260
|
+
}, [client, compatibleWith]);
|
|
7505
7261
|
function navigate(path) {
|
|
7506
7262
|
if (onNavigate) {
|
|
7507
7263
|
onNavigate(path);
|
|
@@ -7585,7 +7341,7 @@ function StoreHomePage({
|
|
|
7585
7341
|
}
|
|
7586
7342
|
),
|
|
7587
7343
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 text-center", children: [
|
|
7588
|
-
/* @__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-
|
|
7344
|
+
/* @__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: [
|
|
7589
7345
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7590
7346
|
"span",
|
|
7591
7347
|
{
|
|
@@ -7659,7 +7415,7 @@ function StoreHomePage({
|
|
|
7659
7415
|
"button",
|
|
7660
7416
|
{
|
|
7661
7417
|
type: "button",
|
|
7662
|
-
onClick: () =>
|
|
7418
|
+
onClick: () => window.location.reload(),
|
|
7663
7419
|
className: "text-sm text-primary hover:underline",
|
|
7664
7420
|
children: "Retry"
|
|
7665
7421
|
}
|
|
@@ -7801,7 +7557,7 @@ function StoreHomePage({
|
|
|
7801
7557
|
}
|
|
7802
7558
|
),
|
|
7803
7559
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative max-w-2xl mx-auto px-4 py-16 text-center", children: [
|
|
7804
|
-
/* @__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-
|
|
7560
|
+
/* @__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: [
|
|
7805
7561
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7806
7562
|
"span",
|
|
7807
7563
|
{
|
|
@@ -7833,21 +7589,6 @@ function StoreHomePage({
|
|
|
7833
7589
|
children: "Browse the store"
|
|
7834
7590
|
}
|
|
7835
7591
|
)
|
|
7836
|
-
] }),
|
|
7837
|
-
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "mt-4 text-xs text-muted-foreground", children: [
|
|
7838
|
-
"By submitting a listing you agree to the",
|
|
7839
|
-
" ",
|
|
7840
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7841
|
-
"a",
|
|
7842
|
-
{
|
|
7843
|
-
href: "https://burdenoff.com/developer-agreement",
|
|
7844
|
-
target: "_blank",
|
|
7845
|
-
rel: "noopener noreferrer",
|
|
7846
|
-
className: "underline hover:text-foreground",
|
|
7847
|
-
children: "Marketplace & Developer Agreement"
|
|
7848
|
-
}
|
|
7849
|
-
),
|
|
7850
|
-
"."
|
|
7851
7592
|
] })
|
|
7852
7593
|
] })
|
|
7853
7594
|
] })
|
|
@@ -8137,10 +7878,6 @@ function StoreBrowsePage({
|
|
|
8137
7878
|
}
|
|
8138
7879
|
),
|
|
8139
7880
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8", children: [
|
|
8140
|
-
/* @__PURE__ */ jsxRuntime.jsxs("header", { className: "mb-6", children: [
|
|
8141
|
-
/* @__PURE__ */ jsxRuntime.jsx("h1", { className: "text-3xl font-bold tracking-tight", children: productName ? `Browse the ${productName} Store` : "Browse the Store" }),
|
|
8142
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-muted-foreground", children: browseDescription })
|
|
8143
|
-
] }),
|
|
8144
7881
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col sm:flex-row gap-3 mb-6", children: [
|
|
8145
7882
|
/* @__PURE__ */ jsxRuntime.jsxs("form", { className: "flex-1 flex gap-2", onSubmit: handleSearchSubmit, children: [
|
|
8146
7883
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -8574,7 +8311,6 @@ function StoreProductDetailPage({
|
|
|
8574
8311
|
const totalRatings = ratingDistribution ? ratingDistribution.fiveStars + ratingDistribution.fourStars + ratingDistribution.threeStars + ratingDistribution.twoStars + ratingDistribution.oneStar : 0;
|
|
8575
8312
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "w-full", children: [
|
|
8576
8313
|
/* @__PURE__ */ jsxRuntime.jsx("style", { dangerouslySetInnerHTML: { __html: ANIM_STYLES } }),
|
|
8577
|
-
/* @__PURE__ */ jsxRuntime.jsx(ProseStyles, {}),
|
|
8578
8314
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
8579
8315
|
PageHead,
|
|
8580
8316
|
{
|
|
@@ -8742,7 +8478,7 @@ function StoreProductDetailPage({
|
|
|
8742
8478
|
] }),
|
|
8743
8479
|
product.longDescription && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "sd-fu sd-d4 mb-8", children: [
|
|
8744
8480
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-lg font-bold text-foreground mb-3", children: "About" }),
|
|
8745
|
-
/* @__PURE__ */ jsxRuntime.jsx(Markdown, { className: "
|
|
8481
|
+
/* @__PURE__ */ jsxRuntime.jsx(Markdown, { className: "prose prose-sm max-w-none text-muted-foreground leading-relaxed", children: product.longDescription })
|
|
8746
8482
|
] }),
|
|
8747
8483
|
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: [
|
|
8748
8484
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-sm font-semibold text-foreground mb-3", children: "Publisher" }),
|
|
@@ -8830,7 +8566,7 @@ function StoreProductDetailPage({
|
|
|
8830
8566
|
children: [
|
|
8831
8567
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between gap-2 mb-2", children: [
|
|
8832
8568
|
/* @__PURE__ */ jsxRuntime.jsx(StarRating, { rating: review.rating }),
|
|
8833
|
-
review.verifiedPurchase && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-emerald-
|
|
8569
|
+
review.verifiedPurchase && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-emerald-500 font-medium", children: "Verified" })
|
|
8834
8570
|
] }),
|
|
8835
8571
|
review.title && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-semibold text-sm text-foreground mb-1", children: review.title }),
|
|
8836
8572
|
review.comment && /* @__PURE__ */ jsxRuntime.jsx(Markdown, { className: "text-sm text-muted-foreground leading-relaxed", children: review.comment }),
|
|
@@ -8864,7 +8600,7 @@ function StoreProductDetailPage({
|
|
|
8864
8600
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
8865
8601
|
"div",
|
|
8866
8602
|
{
|
|
8867
|
-
className: `text-3xl font-extrabold ${priceLabel === "Free" ? "text-emerald-
|
|
8603
|
+
className: `text-3xl font-extrabold ${priceLabel === "Free" ? "text-emerald-500" : "text-foreground"}`,
|
|
8868
8604
|
children: priceLabel
|
|
8869
8605
|
}
|
|
8870
8606
|
),
|