@burdenoff/website-sdk 2026.1031.2 → 2026.1101.1
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/analytics/index.d.mts +41 -1
- package/dist/analytics/index.d.ts +41 -1
- package/dist/analytics/index.js +40 -0
- package/dist/analytics/index.js.map +1 -1
- package/dist/analytics/index.mjs +38 -1
- package/dist/analytics/index.mjs.map +1 -1
- package/dist/components/contact.js +12 -12
- package/dist/components/contact.js.map +1 -1
- package/dist/components/contact.mjs +12 -12
- package/dist/components/contact.mjs.map +1 -1
- package/dist/components/explore.js +12 -12
- package/dist/components/explore.js.map +1 -1
- package/dist/components/explore.mjs +12 -12
- package/dist/components/explore.mjs.map +1 -1
- package/dist/components/newsletter.js +12 -12
- package/dist/components/newsletter.js.map +1 -1
- package/dist/components/newsletter.mjs +12 -12
- package/dist/components/newsletter.mjs.map +1 -1
- package/dist/components/partners.js +12 -12
- package/dist/components/partners.js.map +1 -1
- package/dist/components/partners.mjs +12 -12
- package/dist/components/partners.mjs.map +1 -1
- package/dist/components/pricing.js +12 -12
- package/dist/components/pricing.js.map +1 -1
- package/dist/components/pricing.mjs +12 -12
- package/dist/components/pricing.mjs.map +1 -1
- package/dist/components/unsubscribe.js +12 -12
- package/dist/components/unsubscribe.js.map +1 -1
- package/dist/components/unsubscribe.mjs +12 -12
- package/dist/components/unsubscribe.mjs.map +1 -1
- package/dist/components/waitlist.js +51 -12
- package/dist/components/waitlist.js.map +1 -1
- package/dist/components/waitlist.mjs +51 -12
- package/dist/components/waitlist.mjs.map +1 -1
- package/dist/content/index.js +12 -12
- package/dist/content/index.js.map +1 -1
- package/dist/content/index.mjs +12 -12
- 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 +52 -12
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +52 -13
- package/dist/index.mjs.map +1 -1
- package/dist/seo/index.js +12 -12
- package/dist/seo/index.js.map +1 -1
- package/dist/seo/index.mjs +12 -12
- package/dist/seo/index.mjs.map +1 -1
- package/dist/store/index.js +12 -12
- package/dist/store/index.js.map +1 -1
- package/dist/store/index.mjs +12 -12
- package/dist/store/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -568,24 +568,24 @@ function PageHead({
|
|
|
568
568
|
return /* @__PURE__ */ jsxs(Helmet, { children: [
|
|
569
569
|
/* @__PURE__ */ jsx("title", { children: fullTitle }),
|
|
570
570
|
/* @__PURE__ */ jsx("meta", { name: "title", content: fullTitle }),
|
|
571
|
-
description
|
|
572
|
-
keywords
|
|
573
|
-
author
|
|
571
|
+
description ? /* @__PURE__ */ jsx("meta", { name: "description", content: description }) : null,
|
|
572
|
+
keywords ? /* @__PURE__ */ jsx("meta", { name: "keywords", content: keywords }) : null,
|
|
573
|
+
author ? /* @__PURE__ */ jsx("meta", { name: "author", content: author }) : null,
|
|
574
574
|
/* @__PURE__ */ jsx("meta", { name: "robots", content: robots }),
|
|
575
|
-
resolvedUrl
|
|
576
|
-
favicon
|
|
575
|
+
resolvedUrl ? /* @__PURE__ */ jsx("link", { rel: "canonical", href: resolvedUrl }) : null,
|
|
576
|
+
favicon ? /* @__PURE__ */ jsx("link", { rel: "icon", href: favicon }) : null,
|
|
577
577
|
/* @__PURE__ */ jsx("meta", { property: "og:type", content: "website" }),
|
|
578
578
|
/* @__PURE__ */ jsx("meta", { property: "og:title", content: fullTitle }),
|
|
579
|
-
description
|
|
580
|
-
fullImageUrl
|
|
581
|
-
resolvedUrl
|
|
579
|
+
description ? /* @__PURE__ */ jsx("meta", { property: "og:description", content: description }) : null,
|
|
580
|
+
fullImageUrl ? /* @__PURE__ */ jsx("meta", { property: "og:image", content: fullImageUrl }) : null,
|
|
581
|
+
resolvedUrl ? /* @__PURE__ */ jsx("meta", { property: "og:url", content: resolvedUrl }) : null,
|
|
582
582
|
/* @__PURE__ */ jsx("meta", { property: "og:locale", content: locale }),
|
|
583
|
-
productName
|
|
583
|
+
productName ? /* @__PURE__ */ jsx("meta", { property: "og:site_name", content: productName }) : null,
|
|
584
584
|
/* @__PURE__ */ jsx("meta", { name: "twitter:card", content: "summary_large_image" }),
|
|
585
585
|
/* @__PURE__ */ jsx("meta", { name: "twitter:title", content: fullTitle }),
|
|
586
|
-
description
|
|
587
|
-
fullImageUrl
|
|
588
|
-
twitterHandle
|
|
586
|
+
description ? /* @__PURE__ */ jsx("meta", { name: "twitter:description", content: description }) : null,
|
|
587
|
+
fullImageUrl ? /* @__PURE__ */ jsx("meta", { name: "twitter:image", content: fullImageUrl }) : null,
|
|
588
|
+
twitterHandle ? /* @__PURE__ */ jsx("meta", { name: "twitter:creator", content: twitterHandle }) : null,
|
|
589
589
|
/* @__PURE__ */ jsx("meta", { name: "theme-color", content: themeColor }),
|
|
590
590
|
structuredDataItems.map((data, index) => /* @__PURE__ */ jsx("script", { type: "application/ld+json", children: serializeJsonLd(data) }, `ld-${index}`)),
|
|
591
591
|
additionalMeta?.map((meta, index) => /* @__PURE__ */ jsx(
|
|
@@ -3827,6 +3827,43 @@ function PricingPage(props) {
|
|
|
3827
3827
|
/* @__PURE__ */ jsx(PricingSection, { ...props })
|
|
3828
3828
|
] });
|
|
3829
3829
|
}
|
|
3830
|
+
|
|
3831
|
+
// src/analytics/events.ts
|
|
3832
|
+
var MAX_PROPERTY_LENGTH = 64;
|
|
3833
|
+
var EMAIL_LIKE = /[^\s@]+@[^\s@]+/;
|
|
3834
|
+
function sanitizeWebsiteEventProperties(properties) {
|
|
3835
|
+
const safe = {};
|
|
3836
|
+
if (!properties) return safe;
|
|
3837
|
+
for (const [key, value] of Object.entries(properties)) {
|
|
3838
|
+
if (typeof value === "boolean") {
|
|
3839
|
+
safe[key] = value;
|
|
3840
|
+
} else if (typeof value === "number") {
|
|
3841
|
+
if (Number.isFinite(value)) safe[key] = value;
|
|
3842
|
+
} else if (typeof value === "string") {
|
|
3843
|
+
const trimmed = value.trim();
|
|
3844
|
+
if (trimmed.length > 0 && trimmed.length <= MAX_PROPERTY_LENGTH && !EMAIL_LIKE.test(trimmed)) {
|
|
3845
|
+
safe[key] = trimmed;
|
|
3846
|
+
}
|
|
3847
|
+
}
|
|
3848
|
+
}
|
|
3849
|
+
return safe;
|
|
3850
|
+
}
|
|
3851
|
+
function trackWebsiteEvent(name, properties) {
|
|
3852
|
+
if (typeof window === "undefined") return false;
|
|
3853
|
+
try {
|
|
3854
|
+
const rybbit = window.rybbit;
|
|
3855
|
+
if (typeof rybbit?.event !== "function") return false;
|
|
3856
|
+
const safe = sanitizeWebsiteEventProperties(properties);
|
|
3857
|
+
if (Object.keys(safe).length > 0) {
|
|
3858
|
+
rybbit.event(name, safe);
|
|
3859
|
+
} else {
|
|
3860
|
+
rybbit.event(name);
|
|
3861
|
+
}
|
|
3862
|
+
return true;
|
|
3863
|
+
} catch {
|
|
3864
|
+
return false;
|
|
3865
|
+
}
|
|
3866
|
+
}
|
|
3830
3867
|
var waitlistPageSchema = z.object({
|
|
3831
3868
|
name: z.string().min(1, "Name is required"),
|
|
3832
3869
|
email: z.string().email("Please enter a valid email address"),
|
|
@@ -4098,6 +4135,7 @@ function WaitlistPage({
|
|
|
4098
4135
|
product?.id || config.productId
|
|
4099
4136
|
);
|
|
4100
4137
|
if (result.success) {
|
|
4138
|
+
trackWebsiteEvent("waitlist.signed_up", { form: "page" });
|
|
4101
4139
|
toast.success(result.message ?? successMessage);
|
|
4102
4140
|
reset();
|
|
4103
4141
|
} else {
|
|
@@ -4248,6 +4286,7 @@ function WaitlistForm({
|
|
|
4248
4286
|
product?.id || config.productId
|
|
4249
4287
|
);
|
|
4250
4288
|
if (result.success) {
|
|
4289
|
+
trackWebsiteEvent("waitlist.signed_up", { form: "inline" });
|
|
4251
4290
|
toast.success(result.message ?? "You have been added to the waitlist!");
|
|
4252
4291
|
setEmail("");
|
|
4253
4292
|
setName("");
|
|
@@ -20924,6 +20963,6 @@ function formatFreshnessReport(issues) {
|
|
|
20924
20963
|
].join("\n");
|
|
20925
20964
|
}
|
|
20926
20965
|
|
|
20927
|
-
export { ANSWERS_PATH, ANSWER_HEADING_SHIFT, ANSWER_PATH_PREFIX, AnswerDetailPage, AnswersPage, BlogListPage, BlogPostPage, Button, CONCEPTS_PATH, CONCEPT_ILLUSTRATION_NOTICE, CONCEPT_PATH_PREFIX, CONCEPT_WORKFLOW_NOTICE, CareersApplyForm, CareersSubmissionForm, CaseStudiesListPage, CaseStudyPage, ChangelogPage, ConceptDetailPage, ConceptsPage, ContactPage, ContentRenderer, ContractsPage, DEFAULT_COMPARISON_MAX_AGE_DAYS, DEFAULT_CONTACT_CATEGORIES, DEFAULT_EXPLORE_EXAMPLE_PROMPTS, DOMAINS_URL, ECOSYSTEM_PRODUCTS, ESCALATE_EXPLORE_CONVERSATION_MUTATION, EXPLORE_CATALOG_QUERY, EXPLORE_CATALOG_QUERY_WITHOUT_HIGHLIGHTS, EXPLORE_ESCALATION_NOTE_SOFT_MAX, EXPLORE_LOCALES, EXPLORE_MESSAGE_QUERY, EXPLORE_PREFILL_MAX_LENGTH, EXPLORE_RECAPTCHA_ACTION, ElectronDownloadLink, ExploreAnswerBody, ExploreAnswerStyles, ExploreChatProvider, ExploreCta, ExplorePage, ExplorePanel, FALLBACK_EXPLORE_LIMITS, FOOTERLESS_ROUTES, Input, LEGAL_DOCUMENTS, LEGAL_DOCUMENT_KEYS, Label, LaunchCountdown, LegalPage, Markdown, NewsletterForm, NewsletterPage, PRODUCT_SLUG_ALIASES, PRODUCT_SLUG_EMIT, PRODUCT_SLUG_RENAMES, PUBLISHED_ANSWER_FIELDS, PageHead, PartnersPage, PressKitPage, PricingPage, PricingProductKeyError, PricingSection, ProblemsSolvedSection, ProductCard, ProductProvider, ResourceLinks, RybbitAnalytics, SEND_EXPLORE_MESSAGE_MUTATION, Select, SocialLinks, StarRating, StoreBrowsePage, StoreHomePage, StoreProductDetailPage, Textarea, TypeBadge, UnsubscribePage, WaitlistForm, WaitlistPage, WebSDKClient, WebSDKProvider, WebsiteSwitcher, answerPath, answerPlainText, answerSourceHost, answerSpeechText, answerStrings, availablePlanCurrencies, buttonVariants, checkComparisonFreshness, classifyExploreError, cleanPlanDisplayName, cn, conceptPath, detectElectronPlatform, emitProductSlug, exploreQuestionHref, fetchLegalContent, fetchLegalContentPage, fetchPublicJobPosting, fetchPublicJobPostings, fetchPublicJobPostingsForSubmission, fetchPublicProduct, findLegalDocument, formatAnswerDate, formatDownloads, formatFreshnessReport, formatLegalDate, formatPrice2 as formatPrice, getAnswerBySlug, getConceptBySlug, getRecaptchaV3Token, hasCustomerSignOff, inlineImageOrigins, isFooterlessPath, isInlineImageAllowed, isInlineVideoAllowed, isPublishedSourceUrl, isSameProductSlug, isUuidLike, isValidUrl, latestVerification, legacyProductSlug, loadRecaptchaV3, looksLikeDeliverableEmail, normalizeProductSlug, normalizeRoutePath, oldestVerification, parseVerifiedAt, planPriceIn, productSlugVariants, productSlugsByOrigin, resolvePricingProductKey, shouldRenderSiteFooter, speechLocaleOf, splitLeadingHeading, stopSpeaking, useContentPage, useContentPages, useExploreChat, useExploreConversation, useProduct, useProductConfig, useProgressiveReveal, usePublicJobPosting, usePublicJobPostings, usePublicJobPostingsForSubmission, useSpeechOutput, useWebSDK, useWebSDKConfig };
|
|
20966
|
+
export { ANSWERS_PATH, ANSWER_HEADING_SHIFT, ANSWER_PATH_PREFIX, AnswerDetailPage, AnswersPage, BlogListPage, BlogPostPage, Button, CONCEPTS_PATH, CONCEPT_ILLUSTRATION_NOTICE, CONCEPT_PATH_PREFIX, CONCEPT_WORKFLOW_NOTICE, CareersApplyForm, CareersSubmissionForm, CaseStudiesListPage, CaseStudyPage, ChangelogPage, ConceptDetailPage, ConceptsPage, ContactPage, ContentRenderer, ContractsPage, DEFAULT_COMPARISON_MAX_AGE_DAYS, DEFAULT_CONTACT_CATEGORIES, DEFAULT_EXPLORE_EXAMPLE_PROMPTS, DOMAINS_URL, ECOSYSTEM_PRODUCTS, ESCALATE_EXPLORE_CONVERSATION_MUTATION, EXPLORE_CATALOG_QUERY, EXPLORE_CATALOG_QUERY_WITHOUT_HIGHLIGHTS, EXPLORE_ESCALATION_NOTE_SOFT_MAX, EXPLORE_LOCALES, EXPLORE_MESSAGE_QUERY, EXPLORE_PREFILL_MAX_LENGTH, EXPLORE_RECAPTCHA_ACTION, ElectronDownloadLink, ExploreAnswerBody, ExploreAnswerStyles, ExploreChatProvider, ExploreCta, ExplorePage, ExplorePanel, FALLBACK_EXPLORE_LIMITS, FOOTERLESS_ROUTES, Input, LEGAL_DOCUMENTS, LEGAL_DOCUMENT_KEYS, Label, LaunchCountdown, LegalPage, Markdown, NewsletterForm, NewsletterPage, PRODUCT_SLUG_ALIASES, PRODUCT_SLUG_EMIT, PRODUCT_SLUG_RENAMES, PUBLISHED_ANSWER_FIELDS, PageHead, PartnersPage, PressKitPage, PricingPage, PricingProductKeyError, PricingSection, ProblemsSolvedSection, ProductCard, ProductProvider, ResourceLinks, RybbitAnalytics, SEND_EXPLORE_MESSAGE_MUTATION, Select, SocialLinks, StarRating, StoreBrowsePage, StoreHomePage, StoreProductDetailPage, Textarea, TypeBadge, UnsubscribePage, WaitlistForm, WaitlistPage, WebSDKClient, WebSDKProvider, WebsiteSwitcher, answerPath, answerPlainText, answerSourceHost, answerSpeechText, answerStrings, availablePlanCurrencies, buttonVariants, checkComparisonFreshness, classifyExploreError, cleanPlanDisplayName, cn, conceptPath, detectElectronPlatform, emitProductSlug, exploreQuestionHref, fetchLegalContent, fetchLegalContentPage, fetchPublicJobPosting, fetchPublicJobPostings, fetchPublicJobPostingsForSubmission, fetchPublicProduct, findLegalDocument, formatAnswerDate, formatDownloads, formatFreshnessReport, formatLegalDate, formatPrice2 as formatPrice, getAnswerBySlug, getConceptBySlug, getRecaptchaV3Token, hasCustomerSignOff, inlineImageOrigins, isFooterlessPath, isInlineImageAllowed, isInlineVideoAllowed, isPublishedSourceUrl, isSameProductSlug, isUuidLike, isValidUrl, latestVerification, legacyProductSlug, loadRecaptchaV3, looksLikeDeliverableEmail, normalizeProductSlug, normalizeRoutePath, oldestVerification, parseVerifiedAt, planPriceIn, productSlugVariants, productSlugsByOrigin, resolvePricingProductKey, shouldRenderSiteFooter, speechLocaleOf, splitLeadingHeading, stopSpeaking, trackWebsiteEvent, useContentPage, useContentPages, useExploreChat, useExploreConversation, useProduct, useProductConfig, useProgressiveReveal, usePublicJobPosting, usePublicJobPostings, usePublicJobPostingsForSubmission, useSpeechOutput, useWebSDK, useWebSDKConfig };
|
|
20928
20967
|
//# sourceMappingURL=index.mjs.map
|
|
20929
20968
|
//# sourceMappingURL=index.mjs.map
|