{"version":3,"file":"SignupTracking.EPVfiLP4.mjs","names":["useSyncExternalStore","useMemo","useId"],"sources":["https:/framerusercontent.com/modules/8hAng43hIGn7o4jTuMcV/KLA5gFTORYAd82Tzk1wa/SignupTracking.js"],"sourcesContent":["/**\n * User request:\n * Create code override file SignupTracking.tsx with exports withSignupHeader, withSignupFooter, withSignupCustomerLogos.\n * Wrap existing canvas Button instances; preserve appearance refs props interactions.\n * Runtime page from window.location.pathname, home for /, otherwise last nonempty segment normalized lowercase hyphens (no underscores).\n * Set app_cta={page}_header/footer/customer_logos on signup links only (app.pitch.com URL having signup parameter), preserving other query/hash.\n * Existing Buttons receives link control likely props.link (canvas $control__link).\n * Handle string or link object href; inspect component props patterns as necessary.\n * Browser API must be guarded, stable SSR/canvas, update on client navigation (Framer route changes or pathname change listeners); ensure before click URL correct, do not prevent default or disrupt modified clicks.\n * No visual changes.\n * Return override ids.\n * Also read-only audit Pricing.tsx for signup URLs/report placements; do not change Pricing yet.\n */import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{forwardRef,useId,useLayoutEffect,useMemo,useSyncExternalStore}from\"react\";const trackingPageStore={value:\"home\",publishers:new Map,listeners:new Set};function emitTrackingPageStore(){trackingPageStore.listeners.forEach(listener=>listener());}function setTrackingPageStoreValue(value){const next=normalizePageSlug(value);if(trackingPageStore.value===next)return;trackingPageStore.value=next;emitTrackingPageStore();}function activateTrackingPagePublisher(publisherId,page){const normalizedPage=normalizePageSlug(page);if(trackingPageStore.publishers.has(publisherId)){trackingPageStore.publishers.delete(publisherId);}trackingPageStore.publishers.set(publisherId,normalizedPage);setTrackingPageStoreValue(normalizedPage);}function deactivateTrackingPagePublisher(publisherId){if(!trackingPageStore.publishers.has(publisherId))return;trackingPageStore.publishers.delete(publisherId);const remaining=Array.from(trackingPageStore.publishers.values());const next=remaining.length>0?remaining[remaining.length-1]:\"home\";setTrackingPageStoreValue(next);}export function subscribeTrackingPageStore(listener){trackingPageStore.listeners.add(listener);return()=>trackingPageStore.listeners.delete(listener);}export function getTrackingPageStoreSnapshot(){return trackingPageStore.value;}export function getTrackingPageStoreServerSnapshot(){return\"home\";}function normalizePageSlug(value){const normalized=(value||\"\").trim().toLowerCase().replace(/_/g,\"-\");return normalized||\"home\";}function hasBareSignupParam(rawUrl){return/(?:\\?|&)signup(?=&|#|$)/i.test(rawUrl);}function restoreBareSignupParam(serializedUrl){return serializedUrl.replace(/([?&])signup=(?=&|#|$)/gi,\"$1signup\");}function appendTrackingToSignupUrl(rawUrl,ctaValue){try{const hadBareSignup=hasBareSignupParam(rawUrl);const url=new URL(rawUrl);const isAppPitchDomain=url.hostname.toLowerCase()===\"app.pitch.com\";const hasSignupParam=url.searchParams.has(\"signup\");if(!isAppPitchDomain||!hasSignupParam)return rawUrl;url.searchParams.set(\"app_cta\",ctaValue.trim());const serialized=url.toString();return hadBareSignup?restoreBareSignupParam(serialized):serialized;}catch{return rawUrl;}}function mapLinkValue(link,ctaValue){if(typeof link===\"string\"){return appendTrackingToSignupUrl(link,ctaValue);}if(link&&typeof link===\"object\"&&typeof link.href===\"string\"){const nextHref=appendTrackingToSignupUrl(link.href,ctaValue);if(nextHref===link.href)return link;return{...link,href:nextHref};}return link;}function useTrackingPageStorePage(){return useSyncExternalStore(subscribeTrackingPageStore,getTrackingPageStoreSnapshot,getTrackingPageStoreServerSnapshot);}function mapTrackedLinkProps(props,ctaValue){const next={...props};if(props&&typeof props===\"object\"&&\"link\"in props){next.link=mapLinkValue(props?.link,ctaValue);}if(props&&typeof props===\"object\"&&\"href\"in props){next.href=mapLinkValue(props?.href,ctaValue);}if(props&&typeof props===\"object\"&&\"$control__link\"in props){next[\"$control__link\"]=mapLinkValue(props?.[\"$control__link\"],ctaValue);}if(props&&typeof props===\"object\"&&\"OkSHbhefE\"in props){next.OkSHbhefE=mapLinkValue(props?.OkSHbhefE,ctaValue);}return next;}function createManualSignupOverride(slot){return function withSignupTracking(Component){return /*#__PURE__*/forwardRef(function WithSignupTracking(props,ref){const page=useTrackingPageStorePage();const ctaValue=`${page}_${slot}`;const trackedProps=useMemo(()=>mapTrackedLinkProps(props,ctaValue),[props,ctaValue]);return /*#__PURE__*/_jsx(Component,{ref:ref,...trackedProps});});};}function createStoreSignupOverride(slot){return function withSignupTracking(Component){return /*#__PURE__*/forwardRef(function WithSignupTracking(props,ref){const page=useTrackingPageStorePage();const ctaValue=`${page}_${slot}`;const trackedProps=useMemo(()=>mapTrackedLinkProps(props,ctaValue),[props,ctaValue]);return /*#__PURE__*/_jsx(Component,{ref:ref,...trackedProps});});};}/**\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default function TrackingPageContext(props){const publisherId=useId();const rawPage=props.page??props.trackingPage??props[\"$control__trackingPage\"]??\"home\";const normalizedPage=normalizePageSlug(rawPage);useLayoutEffect(()=>{activateTrackingPagePublisher(publisherId,normalizedPage);return()=>{deactivateTrackingPagePublisher(publisherId);};},[normalizedPage]);return /*#__PURE__*/_jsx(\"div\",{\"aria-hidden\":\"true\",style:{position:\"relative\",width:0,height:0,overflow:\"hidden\",pointerEvents:\"none\"}});}export function withSignupHeader(Component){return createManualSignupOverride(\"header\")(Component);}export function withSignupFooter(Component){return createManualSignupOverride(\"footer\")(Component);}export function withSignupCustomerLogos(Component){return createStoreSignupOverride(\"customer_logos\")(Component);}addPropertyControls(TrackingPageContext,{page:{type:ControlType.String,title:\"Tracking Page\",defaultValue:\"home\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"subscribeTrackingPageStore\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getTrackingPageStoreServerSnapshot\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withSignupFooter\":{\"type\":\"reactHoc\",\"name\":\"withSignupFooter\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withSignupCustomerLogos\":{\"type\":\"reactHoc\",\"name\":\"withSignupCustomerLogos\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"TrackingPageContext\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"fixed\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"fixed\"}},\"getTrackingPageStoreSnapshot\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withSignupHeader\":{\"type\":\"reactHoc\",\"name\":\"withSignupHeader\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SignupTracking.map"],"mappings":"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"}