@neowhale/storefront 0.2.61 → 0.2.63

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.
@@ -2315,6 +2315,7 @@ function HeroSection({ section, theme, tracking, onEvent, data }) {
2315
2315
  "a",
2316
2316
  {
2317
2317
  href: c.cta_url,
2318
+ rel: "nofollow noopener noreferrer",
2318
2319
  onClick: () => {
2319
2320
  trackClick(tracking, c.cta_text, c.cta_url);
2320
2321
  onEvent?.("cta_click", { label: c.cta_text, url: c.cta_url });
@@ -2648,6 +2649,7 @@ function GalleryLocationCard({ loc, theme, onEvent }) {
2648
2649
  "a",
2649
2650
  {
2650
2651
  href: loc.shop_url,
2652
+ rel: "nofollow noopener noreferrer",
2651
2653
  onClick: () => onEvent?.("cta_click", { label: "shop", location: loc.name }),
2652
2654
  style: { flex: 1, display: "flex", alignItems: "center", justifyContent: "center", gap: "0.25rem", padding: "0.5rem", border: "1px solid rgba(255,255,255,0.15)", color: "rgba(255,255,255,0.8)", fontSize: "0.65rem", fontWeight: 700, letterSpacing: "0.1em", textTransform: "uppercase", textDecoration: "none" },
2653
2655
  children: "shop"
@@ -2729,6 +2731,7 @@ function CTASection({ section, theme, tracking, onEvent }) {
2729
2731
  "a",
2730
2732
  {
2731
2733
  href: btn.url,
2734
+ rel: "nofollow noopener noreferrer",
2732
2735
  onClick: () => {
2733
2736
  trackClick(tracking, btn.text, btn.url, i);
2734
2737
  onEvent?.("cta_click", { label: btn.text, url: btn.url });
@@ -2807,6 +2810,7 @@ function ProductCardSection({ section, data, theme, tracking }) {
2807
2810
  "a",
2808
2811
  {
2809
2812
  href: url,
2813
+ rel: "nofollow noopener noreferrer",
2810
2814
  onClick: () => trackClick(tracking, "View Product", url),
2811
2815
  style: {
2812
2816
  display: "block",
@@ -2997,6 +3001,7 @@ function LeadCaptureSection({ section, data, theme, onEvent }) {
2997
3001
  });
2998
3002
  }
2999
3003
  setStatus("success");
3004
+ onEvent?.("cta_click", { label: buttonText, source: c.source || "landing_page", landing_page_slug: slug || void 0 });
3000
3005
  onEvent?.("lead", { email, first_name: firstName || void 0, source: c.source || "landing_page", landing_page_slug: slug || void 0 });
3001
3006
  } catch (err) {
3002
3007
  setErrorMsg(err instanceof Error ? err.message : "Something went wrong. Please try again.");
@@ -3145,7 +3150,15 @@ function SuccessState({ theme, heading, message, couponCode, ctaText, ctaUrl })
3145
3150
  "button",
3146
3151
  {
3147
3152
  onClick: () => {
3148
- window.location.href = ctaUrl || "/shop";
3153
+ const dest = new URL(ctaUrl || "/shop", window.location.origin);
3154
+ const current = new URLSearchParams(window.location.search);
3155
+ for (const key of ["utm_source", "utm_medium", "utm_campaign", "utm_content", "utm_term", "fbclid", "gclid"]) {
3156
+ const val = current.get(key);
3157
+ if (val && !dest.searchParams.has(key)) dest.searchParams.set(key, val);
3158
+ }
3159
+ const vid = typeof localStorage !== "undefined" && localStorage.getItem("wt_vid");
3160
+ if (vid) dest.searchParams.set("wt_vid", vid);
3161
+ window.location.href = dest.toString();
3149
3162
  },
3150
3163
  style: {
3151
3164
  marginTop: "1.5rem",
@@ -3709,6 +3722,7 @@ function LocationCardSection({ section, theme, onEvent }) {
3709
3722
  "a",
3710
3723
  {
3711
3724
  href: loc.shop_url,
3725
+ rel: "nofollow noopener noreferrer",
3712
3726
  onClick: () => onEvent?.("cta_click", { label: "shop", location: loc.name }),
3713
3727
  style: {
3714
3728
  flex: 1,