@flamingo-stack/openframe-frontend-core 0.0.482 → 0.0.483-snapshot.20260726220533

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.
Files changed (111) hide show
  1. package/dist/{chunk-6UGYBCEN.js → chunk-3MTN5XHZ.js} +2 -2
  2. package/dist/{chunk-U37UTLP7.cjs → chunk-3VZJHXPE.cjs} +15 -15
  3. package/dist/{chunk-U37UTLP7.cjs.map → chunk-3VZJHXPE.cjs.map} +1 -1
  4. package/dist/{chunk-WBL5Y4PS.js → chunk-4PVTF36S.js} +2 -2
  5. package/dist/{chunk-VCOL4C2W.cjs → chunk-A7IPON2V.cjs} +3 -2
  6. package/dist/chunk-A7IPON2V.cjs.map +1 -0
  7. package/dist/{chunk-MRGTMMJ3.cjs → chunk-AVN6WGIV.cjs} +29 -29
  8. package/dist/{chunk-MRGTMMJ3.cjs.map → chunk-AVN6WGIV.cjs.map} +1 -1
  9. package/dist/{chunk-PHTSSHIQ.cjs → chunk-CGEC7YIX.cjs} +73 -73
  10. package/dist/{chunk-PHTSSHIQ.cjs.map → chunk-CGEC7YIX.cjs.map} +1 -1
  11. package/dist/{chunk-AGX565ZT.js → chunk-CWQACI4Z.js} +2 -2
  12. package/dist/{chunk-WPYPSIY2.js → chunk-DVYTY2GK.js} +3 -3
  13. package/dist/{chunk-UPN6EFOM.js → chunk-F3UM6ZPO.js} +6 -6
  14. package/dist/{chunk-JJE5TUZK.js → chunk-G2L46BDG.js} +4 -4
  15. package/dist/{chunk-7LWXWXEY.js → chunk-HSVQ7W5M.js} +6 -6
  16. package/dist/{chunk-RUA3OXSJ.cjs → chunk-HTHR7KWB.cjs} +32 -32
  17. package/dist/{chunk-RUA3OXSJ.cjs.map → chunk-HTHR7KWB.cjs.map} +1 -1
  18. package/dist/{chunk-ACOU5YJI.cjs → chunk-IB4YMANE.cjs} +40 -40
  19. package/dist/{chunk-ACOU5YJI.cjs.map → chunk-IB4YMANE.cjs.map} +1 -1
  20. package/dist/{chunk-XTWKDMCG.js → chunk-KHDLNPAM.js} +3 -3
  21. package/dist/{chunk-ZPUZPJDV.js → chunk-KLYHZRAD.js} +2 -1
  22. package/dist/{chunk-X5X43HFV.js → chunk-KN7MUVNB.js} +5 -5
  23. package/dist/{chunk-CKC3EAYT.js → chunk-OTJMDYZ5.js} +3 -3
  24. package/dist/{chunk-22AED5IC.cjs → chunk-P3Q7KMPQ.cjs} +73 -73
  25. package/dist/{chunk-22AED5IC.cjs.map → chunk-P3Q7KMPQ.cjs.map} +1 -1
  26. package/dist/{chunk-FM5KWLKU.cjs → chunk-PECGZWQR.cjs} +3 -3
  27. package/dist/{chunk-FM5KWLKU.cjs.map → chunk-PECGZWQR.cjs.map} +1 -1
  28. package/dist/{chunk-4HL6UENH.cjs → chunk-SAVJIRUK.cjs} +5 -5
  29. package/dist/{chunk-4HL6UENH.cjs.map → chunk-SAVJIRUK.cjs.map} +1 -1
  30. package/dist/{chunk-AHGSN4AT.cjs → chunk-SGUKPH7Z.cjs} +7 -7
  31. package/dist/{chunk-AHGSN4AT.cjs.map → chunk-SGUKPH7Z.cjs.map} +1 -1
  32. package/dist/{chunk-7I5B5PQ4.js → chunk-SSMNDK3Z.js} +99 -3
  33. package/dist/chunk-SSMNDK3Z.js.map +1 -0
  34. package/dist/{chunk-VPVOJD5X.cjs → chunk-UFPGVLHZ.cjs} +223 -127
  35. package/dist/chunk-UFPGVLHZ.cjs.map +1 -0
  36. package/dist/{chunk-RZPF7MJ2.cjs → chunk-V36NQIAO.cjs} +12 -12
  37. package/dist/{chunk-RZPF7MJ2.cjs.map → chunk-V36NQIAO.cjs.map} +1 -1
  38. package/dist/{chunk-3WCARCI4.js → chunk-WZ3YAIQQ.js} +2 -2
  39. package/dist/{chunk-JQIUBFHL.js → chunk-X3KQ3B35.js} +5 -5
  40. package/dist/{chunk-NWVKG7QC.cjs → chunk-YSA7KE2P.cjs} +40 -40
  41. package/dist/{chunk-NWVKG7QC.cjs.map → chunk-YSA7KE2P.cjs.map} +1 -1
  42. package/dist/{chunk-KUBJHB6I.cjs → chunk-ZQXNTV66.cjs} +18 -18
  43. package/dist/{chunk-KUBJHB6I.cjs.map → chunk-ZQXNTV66.cjs.map} +1 -1
  44. package/dist/components/case-studies/index.cjs +9 -9
  45. package/dist/components/case-studies/index.js +3 -3
  46. package/dist/components/chat/index.cjs +3 -3
  47. package/dist/components/chat/index.js +2 -2
  48. package/dist/components/contact/index.cjs +4 -4
  49. package/dist/components/contact/index.js +3 -3
  50. package/dist/components/docs/index.cjs +6 -6
  51. package/dist/components/docs/index.js +5 -5
  52. package/dist/components/embeds/index.cjs +4 -4
  53. package/dist/components/embeds/index.js +3 -3
  54. package/dist/components/faq/index.cjs +5 -5
  55. package/dist/components/faq/index.js +4 -4
  56. package/dist/components/features/index.cjs +3 -3
  57. package/dist/components/features/index.js +2 -2
  58. package/dist/components/help-center-pages/index.cjs +22 -22
  59. package/dist/components/help-center-pages/index.js +13 -13
  60. package/dist/components/index.cjs +136 -136
  61. package/dist/components/index.js +11 -11
  62. package/dist/components/navigation/index.cjs +3 -3
  63. package/dist/components/navigation/index.js +2 -2
  64. package/dist/components/onboarding-guides/index.cjs +7 -7
  65. package/dist/components/onboarding-guides/index.js +6 -6
  66. package/dist/components/related-content/index.cjs +5 -5
  67. package/dist/components/related-content/index.js +4 -4
  68. package/dist/components/tickets/index.cjs +6 -6
  69. package/dist/components/tickets/index.js +5 -5
  70. package/dist/components/ui/index.cjs +3 -3
  71. package/dist/components/ui/index.js +2 -2
  72. package/dist/hooks/index.cjs +2 -2
  73. package/dist/hooks/index.js +1 -1
  74. package/dist/index.cjs +17 -3
  75. package/dist/index.cjs.map +1 -1
  76. package/dist/index.js +16 -2
  77. package/dist/types/marketing.d.ts +11 -1
  78. package/dist/types/marketing.d.ts.map +1 -1
  79. package/dist/utils/dismissal-storage.d.ts +9 -3
  80. package/dist/utils/dismissal-storage.d.ts.map +1 -1
  81. package/dist/utils/first-touch-attribution.d.ts +97 -0
  82. package/dist/utils/first-touch-attribution.d.ts.map +1 -0
  83. package/dist/utils/index.cjs +97 -2
  84. package/dist/utils/index.cjs.map +1 -1
  85. package/dist/utils/index.d.ts +1 -0
  86. package/dist/utils/index.d.ts.map +1 -1
  87. package/dist/utils/index.js +91 -3
  88. package/dist/utils/index.js.map +1 -1
  89. package/package.json +1 -1
  90. package/src/types/marketing.ts +11 -0
  91. package/src/utils/__tests__/first-touch-attribution-persistence.test.ts +58 -0
  92. package/src/utils/__tests__/first-touch-attribution.test.ts +185 -0
  93. package/src/utils/dismissal-storage.ts +10 -4
  94. package/src/utils/first-touch-attribution.ts +200 -0
  95. package/src/utils/index.ts +1 -0
  96. package/dist/chunk-7I5B5PQ4.js.map +0 -1
  97. package/dist/chunk-VCOL4C2W.cjs.map +0 -1
  98. package/dist/chunk-VPVOJD5X.cjs.map +0 -1
  99. /package/dist/{chunk-6UGYBCEN.js.map → chunk-3MTN5XHZ.js.map} +0 -0
  100. /package/dist/{chunk-WBL5Y4PS.js.map → chunk-4PVTF36S.js.map} +0 -0
  101. /package/dist/{chunk-AGX565ZT.js.map → chunk-CWQACI4Z.js.map} +0 -0
  102. /package/dist/{chunk-WPYPSIY2.js.map → chunk-DVYTY2GK.js.map} +0 -0
  103. /package/dist/{chunk-UPN6EFOM.js.map → chunk-F3UM6ZPO.js.map} +0 -0
  104. /package/dist/{chunk-JJE5TUZK.js.map → chunk-G2L46BDG.js.map} +0 -0
  105. /package/dist/{chunk-7LWXWXEY.js.map → chunk-HSVQ7W5M.js.map} +0 -0
  106. /package/dist/{chunk-XTWKDMCG.js.map → chunk-KHDLNPAM.js.map} +0 -0
  107. /package/dist/{chunk-ZPUZPJDV.js.map → chunk-KLYHZRAD.js.map} +0 -0
  108. /package/dist/{chunk-X5X43HFV.js.map → chunk-KN7MUVNB.js.map} +0 -0
  109. /package/dist/{chunk-CKC3EAYT.js.map → chunk-OTJMDYZ5.js.map} +0 -0
  110. /package/dist/{chunk-3WCARCI4.js.map → chunk-WZ3YAIQQ.js.map} +0 -0
  111. /package/dist/{chunk-JQIUBFHL.js.map → chunk-X3KQ3B35.js.map} +0 -0
@@ -265,7 +265,7 @@ export interface CampaignWithDetails {
265
265
  content: AIContent[];
266
266
  media: AIMedia[];
267
267
  }
268
- export type ContentSourceType = 'product_release' | 'blog_post_seed' | 'blog_post_existing' | 'case_study' | 'customer_interview' | 'event' | 'podcast' | 'webinar' | 'investor_update' | 'onboarding_guide' | 'what_i_shipped' | 'faq' | 'from_scratch';
268
+ export type ContentSourceType = 'product_release' | 'blog_post_seed' | 'blog_post_existing' | 'case_study' | 'customer_interview' | 'event' | 'podcast' | 'webinar' | 'investor_update' | 'onboarding_guide' | 'walkthrough_video' | 'what_i_shipped' | 'faq' | 'from_scratch';
269
269
  export type URLInjectionPreference = 'none' | 'in_post' | 'as_comment';
270
270
  export interface ContentSourceOption {
271
271
  id: number | string;
@@ -276,5 +276,15 @@ export interface ContentSourceOption {
276
276
  published_at?: string;
277
277
  /** Featured image or cover image URL from the source entity */
278
278
  image_url?: string;
279
+ /**
280
+ * Display name of the platform that OWNS this row ("Flamingo", "OpenMSP", …).
281
+ *
282
+ * The content picker is deliberately unscoped, so every list mixes rows from
283
+ * different platforms and the owning platform is often the only thing telling
284
+ * two rows apart — per-platform walkthrough videos share a title AND a summary,
285
+ * differing only by platform. The URL cannot stand in for this: in dev every
286
+ * platform resolves to the same localhost origin.
287
+ */
288
+ platform_display_name?: string;
279
289
  }
280
290
  //# sourceMappingURL=marketing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"marketing.d.ts","sourceRoot":"","sources":["../../src/types/marketing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"marketing.d.ts","sourceRoot":"","sources":["../../src/types/marketing.ts"],"names":[],"mappings":"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"}
@@ -5,9 +5,15 @@
5
5
  */
6
6
  /** Cookie-name stem. */
7
7
  export declare const WALKTHROUGH_VIDEO_DISMISS_KEY = "walkthrough-video-dismissed";
8
- /** THE per-platform cookie name — the ONE home for the encoding, mirroring
9
- * `announcementDismissCookieName`. Hosts must not rebuild it inline, or an SSR
10
- * reader added later will restate the separator. */
8
+ /** THE per-platform cookie name — the ONE home for the encoding. Shaped exactly
9
+ * like `announcementDismissCookieName` (`<platform>-<name>-dismissed`): `:` is
10
+ * not a `token` character under RFC 6265, so the old `…-dismissed:<platform>`
11
+ * form was only working on browser leniency. Hosts must not rebuild this
12
+ * inline, or an SSR reader added later will restate the separator.
13
+ *
14
+ * Renaming orphans existing cookies, so anyone who had dismissed the card sees
15
+ * it once more. Deliberate and one-time: the alternative is reading both names
16
+ * forever to save a single re-dismissal. */
11
17
  export declare function walkthroughDismissCookieName(platform: string): string;
12
18
  /** Client-side dismissal check (id-match). Reads a cookie, so call it from an
13
19
  * effect, never during render. */
@@ -1 +1 @@
1
- {"version":3,"file":"dismissal-storage.d.ts","sourceRoot":"","sources":["../../src/utils/dismissal-storage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,wBAAwB;AACxB,eAAO,MAAM,6BAA6B,gCAAgC,CAAC;AAE3E;;qDAEqD;AACrD,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAErE;AAED;mCACmC;AACnC,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEnF;AAED,6CAA6C;AAC7C,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAEhE;AAED,4DAA4D;AAC5D,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAE3D"}
1
+ {"version":3,"file":"dismissal-storage.d.ts","sourceRoot":"","sources":["../../src/utils/dismissal-storage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,wBAAwB;AACxB,eAAO,MAAM,6BAA6B,gCAAgC,CAAC;AAE3E;;;;;;;;6CAQ6C;AAC7C,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAErE;AAED;mCACmC;AACnC,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEnF;AAED,6CAA6C;AAC7C,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAEhE;AAED,4DAA4D;AAC5D,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAE3D"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * First-touch attribution capture.
3
+ *
4
+ * THE PROBLEM. Server-side UTM extraction reads the request body and, failing that, UTM
5
+ * params on the `referer` header. But `referer` is the page the form was submitted FROM, and
6
+ * a visitor who lands on `/?utm_source=reddit` and then navigates before converting arrives
7
+ * with a clean referer. Measured on the live DB: waitlist rows from the last 90 days have
8
+ * `ip_address` on 350/350 and `utm_source` on **0/350**. The parameters are not being lost in
9
+ * transit; they are gone by submit time.
10
+ *
11
+ * THE FIX. Capture the landing URL's attribution ONCE, on first page view, and replay it into
12
+ * every submit body from then on. The server already prefers body-supplied UTMs over the
13
+ * referer, so nothing changes server-side.
14
+ *
15
+ * FIRST touch, not last: `capture()` never overwrites an existing record, so a visitor who
16
+ * lands on an ad and later arrives via a bookmark keeps the ad attribution.
17
+ *
18
+ * Built on `createLocalStorageAdapter` so there is no hand-rolled Web Storage access and no
19
+ * module-scope `window` — `./utils` is imported by server-safe consumers, so touching
20
+ * `window` at module scope would break SSR.
21
+ *
22
+ * SESSION-SCOPED, deliberately and without an opt-out. Three reasons:
23
+ * - first-touch attribution for a single visit is the useful signal;
24
+ * - a session record does not persist an identifier across visits, which keeps this out of
25
+ * consent-banner territory;
26
+ * - `sessionStorage` is per-tab, so `load()`-then-`save()` cannot race another tab.
27
+ * `localStorage` is shared, so two tabs opening simultaneously could both observe no
28
+ * record and the second write would silently replace the first — breaking the one
29
+ * invariant this module exists to hold. Web Storage has no compare-and-swap, so that race
30
+ * cannot be closed reliably; the option is therefore not offered rather than offered with
31
+ * a caveat. If cross-session persistence is ever needed it belongs in a server-side
32
+ * cookie, where it can be written atomically.
33
+ *
34
+ * NEVER STORES A RAW URL. See `sanitizeLandingUrl`.
35
+ */
36
+ /** Attribution parameters worth carrying from the landing URL to the submit body. */
37
+ export interface FirstTouchAttribution {
38
+ utm_source?: string;
39
+ utm_medium?: string;
40
+ utm_campaign?: string;
41
+ utm_content?: string;
42
+ utm_term?: string;
43
+ /** Reddit Ads click id. */
44
+ rdt_cid?: string;
45
+ /**
46
+ * The landing PAGE — `origin + pathname` only. Never the query string or fragment.
47
+ * See `sanitizeLandingUrl` for why.
48
+ */
49
+ landing_url?: string;
50
+ /** ISO timestamp of first capture, for debugging stale records. */
51
+ captured_at?: string;
52
+ }
53
+ export declare const FIRST_TOUCH_ATTRIBUTION_KEY = "of.first_touch_attribution";
54
+ /**
55
+ * Reduce a URL to `origin + pathname`.
56
+ *
57
+ * The raw `window.location.href` must NEVER be stored or replayed. It routinely carries
58
+ * things that have nothing to do with attribution and everything to do with security: OAuth
59
+ * `code`/`state`, magic-link and password-reset tokens, `access_token` in the fragment,
60
+ * email addresses and other PII in query params. This value is spread into every submit body,
61
+ * so anything kept here would be POSTed to our API and forwarded on to HubSpot — a token in
62
+ * a CRM record is a token in every integration downstream of it.
63
+ *
64
+ * The path alone answers the only question worth asking ("which page did they land on"), so
65
+ * the query and fragment are dropped wholesale rather than filtered. An allowlist of "safe"
66
+ * params would need updating every time a new auth flow adds one; dropping everything cannot
67
+ * go stale.
68
+ */
69
+ export declare function sanitizeLandingUrl(url: string): string | undefined;
70
+ /** Parse the tracked parameters out of a URL. Returns `{}` when none are present. */
71
+ export declare function parseAttributionFromUrl(url: string): FirstTouchAttribution;
72
+ /**
73
+ * Record the landing URL's attribution if nothing is stored yet.
74
+ *
75
+ * Idempotent and first-touch-preserving: a later call with different parameters is ignored.
76
+ * Safe to call on every page view, and a no-op during SSR.
77
+ *
78
+ * @returns what is VERIFIABLY stored after the call — a pre-existing record, the new record
79
+ * read back from storage, or `{}` when nothing was captured or the write did not stick.
80
+ */
81
+ export declare function captureFirstTouchAttribution(options?: {
82
+ url?: string;
83
+ }): FirstTouchAttribution;
84
+ /** Read the stored attribution. `{}` when nothing was captured or during SSR. */
85
+ export declare function getFirstTouchAttribution(): FirstTouchAttribution;
86
+ /**
87
+ * Merge stored attribution into a submit body.
88
+ *
89
+ * Values already on the body WIN — a form that collected a real value explicitly should not
90
+ * be overwritten by a stored one. Spread this into every submit payload:
91
+ *
92
+ * body: JSON.stringify(withFirstTouchAttribution({ email, name }))
93
+ */
94
+ export declare function withFirstTouchAttribution<T extends Record<string, any>>(body: T): T & FirstTouchAttribution;
95
+ /** Clear the stored record. Exposed for tests and for a consent-withdrawal path. */
96
+ export declare function clearFirstTouchAttribution(): void;
97
+ //# sourceMappingURL=first-touch-attribution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"first-touch-attribution.d.ts","sourceRoot":"","sources":["../../src/utils/first-touch-attribution.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAIH,qFAAqF;AACrF,MAAM,WAAW,qBAAqB;IACpC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,2BAA2B;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,mEAAmE;IACnE,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,eAAO,MAAM,2BAA2B,+BAA+B,CAAA;AAkBvE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CASlE;AAoBD,qFAAqF;AACrF,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,qBAAqB,CAY1E;AAED;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,qBAAqB,CA0BlG;AAED,iFAAiF;AACjF,wBAAgB,wBAAwB,IAAI,qBAAqB,CAGhE;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACrE,IAAI,EAAE,CAAC,GACN,CAAC,GAAG,qBAAqB,CAO3B;AAED,oFAAoF;AACpF,wBAAgB,0BAA0B,IAAI,IAAI,CAGjD"}
@@ -2589,7 +2589,7 @@ function clearLegacyAnnouncementCache(platform) {
2589
2589
  // src/utils/dismissal-storage.ts
2590
2590
  var WALKTHROUGH_VIDEO_DISMISS_KEY = "walkthrough-video-dismissed";
2591
2591
  function walkthroughDismissCookieName(platform) {
2592
- return `${WALKTHROUGH_VIDEO_DISMISS_KEY}:${platform}`;
2592
+ return `${platform}-${WALKTHROUGH_VIDEO_DISMISS_KEY}`;
2593
2593
  }
2594
2594
  function isWalkthroughDismissed(key, id) {
2595
2595
  return isDismissedCookieValue(readDismissCookie(key), id);
@@ -2874,7 +2874,7 @@ function getStorage(backend) {
2874
2874
  }
2875
2875
  function createLocalStorageAdapter(options) {
2876
2876
  const tag = options.logTag ?? "[local-storage]";
2877
- const backend = options.backend;
2877
+ const backend = options.backend ?? "local";
2878
2878
  const resolveKey = () => {
2879
2879
  const ns = options.namespace?.();
2880
2880
  return ns ? `${ns}.${options.key}` : options.key;
@@ -4127,6 +4127,94 @@ function toFigmaOriginalUrl(url) {
4127
4127
  // src/utils/page-header-constants.ts
4128
4128
  var SECTION_HERO_ICON_CLASS = "h-10 w-10 text-ods-accent";
4129
4129
 
4130
+ // src/utils/first-touch-attribution.ts
4131
+ var FIRST_TOUCH_ATTRIBUTION_KEY = "of.first_touch_attribution";
4132
+ var TRACKED_PARAMS = [
4133
+ "utm_source",
4134
+ "utm_medium",
4135
+ "utm_campaign",
4136
+ "utm_content",
4137
+ "utm_term",
4138
+ "rdt_cid"
4139
+ ];
4140
+ var ALLOWED_KEYS = /* @__PURE__ */ new Set([
4141
+ ...TRACKED_PARAMS,
4142
+ "landing_url",
4143
+ "captured_at"
4144
+ ]);
4145
+ function sanitizeLandingUrl(url) {
4146
+ try {
4147
+ const parsed = new URL(url);
4148
+ if (parsed.protocol !== "http:" && parsed.protocol !== "https:") return void 0;
4149
+ return `${parsed.origin}${parsed.pathname}`;
4150
+ } catch {
4151
+ return void 0;
4152
+ }
4153
+ }
4154
+ function makeAdapter() {
4155
+ return createLocalStorageAdapter({
4156
+ key: FIRST_TOUCH_ATTRIBUTION_KEY,
4157
+ backend: "session",
4158
+ logTag: "[first-touch-attribution]",
4159
+ // Anything running on this origin can write to sessionStorage, and whatever `load()`
4160
+ // returns is spread into submit bodies. So the stored shape is validated, not assumed:
4161
+ // allowlisted keys only, string values only. Without this a malformed or planted record
4162
+ // would inject arbitrary keys into an API payload.
4163
+ validate: (parsed) => {
4164
+ if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) return false;
4165
+ return Object.entries(parsed).every(
4166
+ ([key, value]) => ALLOWED_KEYS.has(key) && typeof value === "string"
4167
+ );
4168
+ }
4169
+ });
4170
+ }
4171
+ function parseAttributionFromUrl(url) {
4172
+ const out = {};
4173
+ try {
4174
+ const parsed = new URL(url);
4175
+ for (const param of TRACKED_PARAMS) {
4176
+ const value = parsed.searchParams.get(param);
4177
+ if (value && value.trim()) out[param] = value.trim();
4178
+ }
4179
+ } catch {
4180
+ return {};
4181
+ }
4182
+ return out;
4183
+ }
4184
+ function captureFirstTouchAttribution(options = {}) {
4185
+ if (typeof window === "undefined") return {};
4186
+ const adapter2 = makeAdapter();
4187
+ const existing = adapter2.load();
4188
+ if (existing && Object.keys(existing).length > 0) return existing;
4189
+ const href = options.url ?? window.location.href;
4190
+ const parsed = parseAttributionFromUrl(href);
4191
+ if (Object.keys(parsed).length === 0) return {};
4192
+ const landingUrl = sanitizeLandingUrl(href);
4193
+ const record = {
4194
+ ...parsed,
4195
+ ...landingUrl ? { landing_url: landingUrl } : {},
4196
+ captured_at: (/* @__PURE__ */ new Date()).toISOString()
4197
+ };
4198
+ adapter2.save(record);
4199
+ return adapter2.load() ?? {};
4200
+ }
4201
+ function getFirstTouchAttribution() {
4202
+ if (typeof window === "undefined") return {};
4203
+ return makeAdapter().load() ?? {};
4204
+ }
4205
+ function withFirstTouchAttribution(body) {
4206
+ const stored = getFirstTouchAttribution();
4207
+ const merged = { ...stored, ...body };
4208
+ for (const [k, v] of Object.entries(merged)) {
4209
+ if (v === void 0 || v === null || v === "") delete merged[k];
4210
+ }
4211
+ return merged;
4212
+ }
4213
+ function clearFirstTouchAttribution() {
4214
+ if (typeof window === "undefined") return;
4215
+ makeAdapter().clear();
4216
+ }
4217
+
4130
4218
  exports.ANTHROPIC_SUPPORTED_IMAGE_MIME = ANTHROPIC_SUPPORTED_IMAGE_MIME;
4131
4219
  exports.AUTO_CONTINUATION_DIRECTIVE_PREFIX = AUTO_CONTINUATION_DIRECTIVE_PREFIX;
4132
4220
  exports.BITE_ID_RE = BITE_ID_RE;
@@ -4145,6 +4233,7 @@ exports.DELIVERY_TASK_TYPE_OPTIONS = DELIVERY_TASK_TYPE_OPTIONS;
4145
4233
  exports.DESIGN_PALETTE = DESIGN_PALETTE;
4146
4234
  exports.DEV_SECTION_PARAM_KEYS = DEV_SECTION_PARAM_KEYS;
4147
4235
  exports.ELAPSED_MS_FIELD = ELAPSED_MS_FIELD;
4236
+ exports.FIRST_TOUCH_ATTRIBUTION_KEY = FIRST_TOUCH_ATTRIBUTION_KEY;
4148
4237
  exports.GENERIC_EMAIL_DOMAINS = GENERIC_EMAIL_DOMAINS;
4149
4238
  exports.HEX_PATTERN = HEX_PATTERN;
4150
4239
  exports.HONEYPOT_FIELD = HONEYPOT_FIELD;
@@ -4177,10 +4266,12 @@ exports.buildListUrl = buildListUrl;
4177
4266
  exports.buildOgPlaceholderUrl = buildOgPlaceholderUrl;
4178
4267
  exports.buildSuggestionUrl = buildSuggestionUrl;
4179
4268
  exports.canonicalContentRefType = canonicalContentRefType;
4269
+ exports.captureFirstTouchAttribution = captureFirstTouchAttribution;
4180
4270
  exports.cleanEmailDomain = cleanEmailDomain;
4181
4271
  exports.clearAnnouncementDismissals = clearAnnouncementDismissals;
4182
4272
  exports.clearDismissCookie = clearDismissCookie;
4183
4273
  exports.clearEmbedProxyAuth = clearEmbedProxyAuth;
4274
+ exports.clearFirstTouchAttribution = clearFirstTouchAttribution;
4184
4275
  exports.clearLegacyAnnouncementCache = clearLegacyAnnouncementCache;
4185
4276
  exports.clearWalkthroughDismissal = clearWalkthroughDismissal;
4186
4277
  exports.clickupTaskUrl = clickupTaskUrl;
@@ -4276,6 +4367,7 @@ exports.getDocSourceDefaultPath = getDocSourceDefaultPath;
4276
4367
  exports.getDynamicIcon = getDynamicIcon;
4277
4368
  exports.getEmbedProxyAuth = getEmbedProxyAuth;
4278
4369
  exports.getFirstLastInitials = getFirstLastInitials;
4370
+ exports.getFirstTouchAttribution = getFirstTouchAttribution;
4279
4371
  exports.getIconComponent = getIconComponent;
4280
4372
  exports.getInitialExpandedNodeIds = getInitialExpandedNodeIds;
4281
4373
  exports.getOSIcon = getOSIcon;
@@ -4332,6 +4424,7 @@ exports.normalizeOSType = normalizeOSType;
4332
4424
  exports.normalizeToolType = normalizeToolType;
4333
4425
  exports.normalizeToolTypeWithFallback = normalizeToolTypeWithFallback;
4334
4426
  exports.orderContentRefTypes = orderContentRefTypes;
4427
+ exports.parseAttributionFromUrl = parseAttributionFromUrl;
4335
4428
  exports.parseFaqHash = parseFaqHash;
4336
4429
  exports.parseScrollAnchor = parseScrollAnchor;
4337
4430
  exports.parseWireCommandOverride = parseWireCommandOverride;
@@ -4350,6 +4443,7 @@ exports.releaseTypeToBadgeColor = releaseTypeToBadgeColor;
4350
4443
  exports.resolveContentFetchPath = resolveContentFetchPath;
4351
4444
  exports.resolveReleaseCover = resolveReleaseCover;
4352
4445
  exports.rgbToHex = rgbToHex;
4446
+ exports.sanitizeLandingUrl = sanitizeLandingUrl;
4353
4447
  exports.sanitizeTitleForChat = sanitizeTitleForChat;
4354
4448
  exports.scrollElementIntoView = scrollElementIntoView;
4355
4449
  exports.serializeJsonLd = serializeJsonLd;
@@ -4377,6 +4471,7 @@ exports.validateEmailDomain = validateEmailDomain;
4377
4471
  exports.validateEmailDomainList = validateEmailDomainList;
4378
4472
  exports.validatePhoneNumber = validatePhoneNumber;
4379
4473
  exports.walkthroughDismissCookieName = walkthroughDismissCookieName;
4474
+ exports.withFirstTouchAttribution = withFirstTouchAttribution;
4380
4475
  exports.writeDismissCookie = writeDismissCookie;
4381
4476
  //# sourceMappingURL=index.cjs.map
4382
4477
  //# sourceMappingURL=index.cjs.map